diff --git a/.cproject b/.cproject
deleted file mode 100644
index 315cf1f32..000000000
--- a/.cproject
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.github/.cmake-options b/.github/.cmake-options
index 05fc1f6c2..13779380b 100644
--- a/.github/.cmake-options
+++ b/.github/.cmake-options
@@ -1 +1 @@
--DENABLE_EXTRA_TESTS=1 -DECCODES_INSTALL_EXTRA_TOOLS=1
+-DENABLE_EXTRA_TESTS=1 -DECCODES_INSTALL_EXTRA_TOOLS=1 -DENABLE_PNG=1
diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml
index 801481f83..3ae75ea37 100644
--- a/.github/ci-hpc-config.yml
+++ b/.github/ci-hpc-config.yml
@@ -3,7 +3,7 @@ build:
- ecbuild
- ninja
- aec
- - netcdf4/new
+ - netcdf4
parallel: 64
cmake_options:
- -DENABLE_EXTRA_TESTS=1
diff --git a/.github/ci-nightly-test.sh b/.github/ci-nightly-test.sh
index 3ee9b739f..4eb4a54a9 100644
--- a/.github/ci-nightly-test.sh
+++ b/.github/ci-nightly-test.sh
@@ -8,12 +8,14 @@ module unload ecmwf-toolbox
module load cdo/new
module load numdiff
module load nccmp
-module load netcdf4/new
+module load netcdf4
module load gnuparallel/new
module load python3
+version=$(cat $TMPDIR/eccodes/VERSION)
+
cd ~masn/REGRESSION_TESTING/ecCodes
-./par-suite.sh -w $TMPDIR/install/eccodes
+./par-suite.sh -w $TMPDIR/install/eccodes/$version
# For debugging specific test(s)
-# ./seq-suite.sh -w $TMPDIR/install/eccodes -d -t py_
+# ./seq-suite.sh -w $TMPDIR/install/eccodes/$version -d -t py_
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f11896b00..16c400bec 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -27,6 +27,7 @@ jobs:
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
with:
eccodes: ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}
+ codecov_upload: true
secrets: inherit
# Run CI of private downstream packages on self-hosted runners
@@ -74,15 +75,6 @@ jobs:
event_type: downstream-ci-hpc
payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}"}'
- codecov:
- name: code-coverage
- if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
- uses: ./.github/workflows/reusable-ci.yml
- with:
- eccodes: ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}
- codecov: true
- secrets: inherit
-
notify:
runs-on: ubuntu-latest
needs:
@@ -90,7 +82,6 @@ jobs:
- private-downstream-ci
- downstream-ci-hpc
- private-downstream-ci-hpc
- - codecov
if: always() && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
steps:
- name: Trigger Teams notification
diff --git a/.github/workflows/reusable-ci-hpc.yml b/.github/workflows/reusable-ci-hpc.yml
index 793f26ebe..1176afc9d 100644
--- a/.github/workflows/reusable-ci-hpc.yml
+++ b/.github/workflows/reusable-ci-hpc.yml
@@ -23,7 +23,7 @@ jobs:
ecbuild
ninja
aec
- netcdf4/new
+ netcdf4
--parallel: 64
--cmake-options: |
-DENABLE_EXTRA_TESTS=1
diff --git a/.project b/.project
deleted file mode 100644
index 52854bf56..000000000
--- a/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- eccodes
-
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
- full,incremental,
-
-
-
-
-
- org.eclipse.cdt.core.cnature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
-
-
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
deleted file mode 100644
index 4ca67c20d..000000000
--- a/.settings/language.settings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AUTHORS b/AUTHORS
index 13606179a..c0f36b955 100755
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,7 @@
-Enrico Fucile
Shahram Najm
+Eugen Betke
+Enrico Fucile
+Pedro Maciel
Sandor Kertesz
Sebastien Villaume
Florian Rathgeber
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0cf89afc7..2da7bf145 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,11 +73,11 @@ endif()
###############################################################################
# some variables/options of this project
-if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
- ecbuild_add_cxx_flags("-Wno-write-strings -Wno-deprecated")
-elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
- ecbuild_add_cxx_flags("-Wno-write-strings -Wno-deprecated")
-elseif( CMAKE_CXX_COMPILER_ID STREQUAL "Cray" )
+# ecbuild_add_cxx_flags("-Wno-write-strings" NO_FAIL)
+# ecbuild_add_cxx_flags("-Wno-writable-strings" NO_FAIL)
+# ecbuild_add_cxx_flags("-Wno-deprecated" NO_FAIL)
+
+if( CMAKE_CXX_COMPILER_ID STREQUAL "Cray" )
set(CMAKE_CXX_FLAGS "-hstd=c++11 ${CMAKE_CXX_FLAGS}")
endif()
@@ -142,9 +142,8 @@ ecbuild_add_option( FEATURE AEC
DEFAULT ON
CONDITION AEC_FOUND )
-ecbuild_find_python( VERSION 2.6 NO_LIBS )
-find_package( NumPy )
-set( HAVE_PYTHON 0 )
+ecbuild_find_python( VERSION 3.6 NO_LIBS )
+# find_package( NumPy )
## TODO REQUIRED_LANGUAGES Fortran
ecbuild_add_option( FEATURE FORTRAN
@@ -165,7 +164,7 @@ endif()
ecbuild_add_option( FEATURE MEMFS
DESCRIPTION "Memory based access to definitions/samples"
DEFAULT OFF
- REQUIRED_PACKAGES PythonInterp )
+ REQUIRED_PACKAGES Python3 )
#if( HAVE_MEMFS AND "${CMAKE_C_COMPILER_ID}" STREQUAL "Cray")
# set( HAVE_MEMFS OFF )
@@ -196,8 +195,8 @@ ecbuild_add_option( FEATURE INSTALL_ECCODES_SAMPLES
ecbuild_add_option( FEATURE MEMORY_MANAGEMENT DESCRIPTION "Enable memory management" DEFAULT OFF ADVANCED )
ecbuild_add_option( FEATURE ALIGN_MEMORY DESCRIPTION "Enable memory alignment" DEFAULT OFF ADVANCED )
ecbuild_add_option( FEATURE TIMER DESCRIPTION "Enable timer" DEFAULT OFF ADVANCED )
-ecbuild_add_option( FEATURE ECCODES_THREADS DESCRIPTION "Enable POSIX threads" DEFAULT OFF ADVANCED )
-ecbuild_add_option( FEATURE ECCODES_OMP_THREADS DESCRIPTION "Enable OpenMP threads" DEFAULT OFF ADVANCED )
+ecbuild_add_option( FEATURE ECCODES_THREADS DESCRIPTION "Enable thread-safety using POSIX threads" DEFAULT OFF ADVANCED )
+ecbuild_add_option( FEATURE ECCODES_OMP_THREADS DESCRIPTION "Enable thread-safety using OpenMP threads" DEFAULT OFF ADVANCED )
ecbuild_add_option( FEATURE EXTRA_TESTS DESCRIPTION "Enable extended regression testing" DEFAULT OFF ADVANCED )
###############################################################################
@@ -478,10 +477,10 @@ endif()
###############################################################################
# Debugging aid. Print all known CMake variables
-# get_cmake_property(_variableNames VARIABLES)
-# foreach( _variableName ${_variableNames} )
+#get_cmake_property(_variableNames VARIABLES)
+#foreach( _variableName ${_variableNames} )
# ecbuild_info(" ${_variableName}=${${_variableName}}")
-# endforeach()
+#endforeach()
###############################################################################
# finalize
diff --git a/INSTALL b/INSTALL
index b75d5b2b5..bccdbc3fb 100644
--- a/INSTALL
+++ b/INSTALL
@@ -33,8 +33,6 @@ However it requires that cmake be installed on your system.
To add the Python3 bindings, use pip3 install from PyPI as follows:
> pip3 install eccodes
- or
- > pip3 install --install-option="--prefix=/path/to/where/you/install/eccodes" eccodes
You can also pass options to the cmake command above. Some typical examples are:
diff --git a/README.md b/README.md
index f63d65384..05d59c9f1 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ INSTALLATION
```
cmake ../eccodes-x.y.z-Source -DCMAKE_INSTALL_PREFIX=/path/to/where/you/install/eccodes
```
-
+
It is strongly recommended that you install into a clean directory
5. Compile, test and install:
@@ -60,11 +60,6 @@ To add the Python3 bindings, use pip3 install from PyPI as follows:
```
pip3 install eccodes
```
- or
- ```
- pip3 install --install-option="--prefix=/path/to/where/you/install/eccodes" eccodes
- ```
-
For more details, please see:
https://confluence.ecmwf.int/display/ECC/ecCodes+installation
diff --git a/VERSION b/VERSION
index 3afbaeb2b..3a05135cd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.33.0
+2.36.0
diff --git a/bamboo/flags.cmake b/bamboo/flags.cmake
index 2c5a809e2..b434036aa 100644
--- a/bamboo/flags.cmake
+++ b/bamboo/flags.cmake
@@ -1,3 +1,5 @@
-SET(ENABLE_EXTRA_TESTS ON CACHE BOOL "Enable extra tests")
-SET(ENABLE_ECCODES_THREADS ON CACHE BOOL "Enable POSIX threads")
-SET(ENABLE_MEMFS ON CACHE BOOL "Enable MEMFS")
+SET(ENABLE_EXTRA_TESTS ON CACHE BOOL "Enable extra tests")
+SET(ECCODES_INSTALL_EXTRA_TOOLS ON CACHE BOOL "Install extra tools")
+SET(ENABLE_ECCODES_THREADS ON CACHE BOOL "Enable POSIX threads")
+SET(ENABLE_MEMFS ON CACHE BOOL "Enable MEMFS")
+# SET(ENABLE_JPG_LIBOPENJPEG OFF CACHE BOOL "Disable OpenJPEG")
diff --git a/data/grib_data_files.txt b/data/grib_data_files.txt
index 0647dc142..f6d3a9124 100644
--- a/data/grib_data_files.txt
+++ b/data/grib_data_files.txt
@@ -90,3 +90,5 @@ gfs.complex.mvmu.grib2
mercator.grib2
run_length_packing.grib2
boustrophedonic.grib1
+reduced_gaussian_sub_area.legacy.grib1
+
diff --git a/data/julian.out.good b/data/julian.out.good
index c1321285c..c897c9476 100644
--- a/data/julian.out.good
+++ b/data/julian.out.good
@@ -62,4 +62,6 @@ Test2...
- -47120001 -> 6
Test3...
+Test4...
+Test5...
All OK
diff --git a/definitions/boot.def b/definitions/boot.def
index 61a7b7be0..bb8991382 100644
--- a/definitions/boot.def
+++ b/definitions/boot.def
@@ -18,12 +18,12 @@ constant defaultTypeOfLevel="unknown" : hidden;
gribDataQualityChecks = getenv("ECCODES_GRIB_DATA_QUALITY_CHECKS","0") : hidden;
if (gribDataQualityChecks) {
- template LIMITS "param_limits.def";
+ template LIMITS "param_limits.def";
}
# GRIBEX special boustrophedonic mode. See GRIB-472
# If the environment variable is not defined, the key will be 0
-GRIBEX_boustrophedonic = getenv("ECCODES_GRIBEX_BOUSTROPHEDONIC","0") :hidden;
+GRIBEX_boustrophedonic = getenv("ECCODES_GRIBEX_BOUSTROPHEDONIC","0") :hidden;
constant zero=0 : hidden;
constant one=1 : hidden;
@@ -61,65 +61,65 @@ transient produceLargeConstantFields = 0 : hidden;
meta libraryVersion library_version() : hidden;
-lookup[4] kindOfProduct (0,identifier) : hidden;
+lookup[4] kindOfProduct (0,identifier) : hidden;
# grib templates
# `ABCD` is a number, each letter being a byte
if(kindOfProduct == `GRIB`){
- lookup[1] GRIBEditionNumber (7,editionNumber) : edition_specific ;
- template GRIB "grib[GRIBEditionNumber:l]/boot.def" ;
+ lookup[1] GRIBEditionNumber (7,editionNumber) : edition_specific;
+ template GRIB "grib[GRIBEditionNumber:l]/boot.def" ;
}
if(kindOfProduct == `BUDG` ){
- template BUDG "budg/boot.def" ;
+ template BUDG "budg/boot.def" ;
}
if(kindOfProduct == `DIAG`){
- template DIAG "diag/boot.def" ;
+ template DIAG "diag/boot.def" ;
}
if(kindOfProduct == `TIDE`){
- template TIDE "tide/boot.def" ;
+ template TIDE "tide/boot.def" ;
}
if(kindOfProduct == `BUFR`){
- template BUFR "bufr/boot.def" ;
- #constant BUFRstr="BUFR"; #ECC-742
+ template BUFR "bufr/boot.def" ;
+ #constant BUFRstr="BUFR"; #ECC-742
#alias identifier=BUFRstr;
}
if(kindOfProduct == `CDFX`){
- template CDF "cdf/boot.def" ;
- constant CDFstr="netCDF";
+ template CDF "cdf/boot.def" ;
+ constant CDFstr="netCDF";
alias ls.identifier=CDFstr;
}
if(kindOfProduct == 17632522 ){
- template GTS "gts/boot.def" ;
+ template GTS "gts/boot.def" ;
constant GTSstr="GTS";
alias ls.identifier=GTSstr;
}
if(kindOfProduct == `META` ){
- template METAR "metar/boot.def" ;
+ template METAR "metar/boot.def" ;
constant METARstr="METAR";
alias identifier=METARstr;
}
if(kindOfProduct == `TAF ` ){
- template TAF "taf/boot.def" ;
+ template TAF "taf/boot.def" ;
constant TAFstr="TAF";
alias ls.identifier=TAFstr;
}
if(kindOfProduct == 2303214662){
- template HDF5 "hdf5/boot.def" ;
- constant HDF5str="HDF5";
+ template HDF5 "hdf5/boot.def" ;
+ constant HDF5str="HDF5";
alias ls.identifier=HDF5str;
}
if(kindOfProduct == `WRAP`){
- template WRAP "wrap/boot.def" ;
- constant WRAPstr="WRAP";
+ template WRAP "wrap/boot.def" ;
+ constant WRAPstr="WRAP";
alias ls.identifier=WRAPstr;
}
diff --git a/definitions/bufr/boot.def b/definitions/bufr/boot.def
index 8954a5d0a..0ee5addcb 100644
--- a/definitions/bufr/boot.def
+++ b/definitions/bufr/boot.def
@@ -13,7 +13,7 @@ transient setToMissingIfOutOfRange=0 : hidden;
# This gets updated twice a year by WMO.
# See https://community.wmo.int/activity-areas/wmo-codes/manual-codes/latest-version
-constant masterTablesVersionNumberLatest = 40;
+constant masterTablesVersionNumberLatest = 41;
#negative value=not used
transient inputDelayedDescriptorReplicationFactor={-1} : hidden;
diff --git a/definitions/bufr/section.3.def b/definitions/bufr/section.3.def
index 1d9d8c7f9..d223bbbb2 100644
--- a/definitions/bufr/section.3.def
+++ b/definitions/bufr/section.3.def
@@ -51,7 +51,7 @@ unsigned[2] numberOfSubsets : dump;
alias ls.numberOfSubsets=numberOfSubsets;
if (section2Present && bufrHeaderCentre==98 && section2Length==52) {
- if ( rdbType == 2 || rdbType == 3 || rdbType == 8 || rdbType == 12 ) {
+ if ( rdbType == 2 || rdbType == 3 || rdbType == 8 || rdbType == 12 || rdbType == 30 ) {
transient isSatelliteType=1;
} else {
transient isSatelliteType=0;
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1003.table b/definitions/bufr/tables/0/wmo/41/codetables/1003.table
new file mode 100644
index 000000000..a0c90ee0f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1003.table
@@ -0,0 +1,8 @@
+0 0 ANTARCTICA
+1 1 REGION I
+2 2 REGION II
+3 3 REGION III
+4 4 REGION IV
+5 5 REGION V
+6 6 REGION VI
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/10063.table b/definitions/bufr/tables/0/wmo/41/codetables/10063.table
new file mode 100644
index 000000000..50978740b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/10063.table
@@ -0,0 +1,10 @@
+0 0 INCREASING, THEN DECREASING; ATMOSPHERIC PRESSURE THE SAME OR HIGHER THAN THREE HOURS AGO
+1 1 INCREASING, THEN STEADY; OR INCREASING, THEN INCREASING MORE SLOWLY
+2 2 INCREASING (STEADILY OR UNSTEADILY)
+3 3 DECREASING OR STEADY, THEN INCREASING; OR INCREASING, THEN INCREASING MORE RAPIDLY
+4 4 STEADY; ATMOSPHERIC PRESSURE THE SAME AS THREE HOURS AGO
+5 5 DECREASING, THEN INCREASING; ATMOSPHERIC PRESSURE THE SAME OR LOWER THAN THREE HOURS AGO
+6 6 DECREASING, THEN STEADY; OR DECREASING, THEN DECREASING MORE SLOWLY
+7 7 DECREASING (STEADILY OR UNSTEADILY)
+8 8 STEADY OR INCREASING, THEN DECREASING; OR DECREASING, THEN DECREASING MORE RAPIDLY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/10064.table b/definitions/bufr/tables/0/wmo/41/codetables/10064.table
new file mode 100644
index 000000000..88ba38a95
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/10064.table
@@ -0,0 +1,4 @@
+0 0 SUBSONIC
+1 1 TRANSONIC
+2 2 SUPERSONIC
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1007.table b/definitions/bufr/tables/0/wmo/41/codetables/1007.table
new file mode 100644
index 000000000..038175ee3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1007.table
@@ -0,0 +1,259 @@
+0 0 RESERVED
+1 1 ERS 1
+2 2 ERS 2
+3 3 METOP-1 (METOP-B)
+4 4 METOP-2 (METOP-A)
+5 5 METOP-3 (METOP-C)
+20 20 SPOT1
+21 21 SPOT2
+22 22 SPOT3
+23 23 SPOT4
+24 24 METOP-D
+25 25 METOP-E
+26 26 METOP-F
+27 27 METOP-G
+28 28 METOP-H
+29 29 METOP-I
+40 40 OERSTED
+41 41 CHAMP
+42 42 TERRASAR-X
+43 43 TANDEM-X
+44 44 PAZ
+45 45 ALTIUS
+46 46 SMOS
+47 47 CRYOSAT-2
+48 48 AEOLUS
+49 49 EARTHCARE
+50 50 METEOSAT 3
+51 51 METEOSAT 4
+52 52 METEOSAT 5
+53 53 METEOSAT 6
+54 54 METEOSAT 7
+55 55 METEOSAT 8
+56 56 METEOSAT 9
+57 57 METEOSAT 10
+58 58 METEOSAT 1
+59 59 METEOSAT 2
+60 60 ENVISAT
+61 61 SENTINEL 3A
+62 62 SENTINEL 1A
+63 63 SENTINEL 1B
+64 64 SENTINEL 5P
+65 65 SENTINEL 3B
+66 66 SENTINEL-6A
+67 67 SENTINEL-6B
+68 68 SENTINEL-1C
+69 69 SENTINEL-1D
+70 70 METEOSAT 11
+71 71 METEOSAT 12
+72 72 METEOSAT 13
+73 73 METEOSAT 14
+74 74 METEOSAT 15
+75 75 METEOSAT 16
+76 76 METEOSAT 17
+120 120 ADEOS
+121 121 ADEOS II
+122 122 GCOM-W1
+140 140 GOSAT
+150 150 GMS 3
+151 151 GMS 4
+152 152 GMS 5
+153 153 GMS
+154 154 GMS 2
+171 171 MTSAT-1R
+172 172 MTSAT-2
+173 173 HIMAWARI-8
+174 174 HIMAWARI-9
+200 200 NOAA 8
+201 201 NOAA 9
+202 202 NOAA 10
+203 203 NOAA 11
+204 204 NOAA 12
+205 205 NOAA 14
+206 206 NOAA 15
+207 207 NOAA 16
+208 208 NOAA 17
+209 209 NOAA 18
+220 220 LANDSAT 5
+221 221 LANDSAT 4
+222 222 LANDSAT 7
+223 223 NOAA 19
+224 224 NPP
+225 225 NOAA 20
+226 226 NOAA 21
+227 227 TROPICS-02
+228 228 TROPICS-03
+229 229 TROPICS-04
+240 240 DMSP 7
+241 241 DMSP 8
+242 242 DMSP 9
+243 243 DMSP 10
+244 244 DMSP 11
+245 245 DMSP 12
+246 246 DMSP 13
+247 247 DMSP 14
+248 248 DMSP 15
+249 249 DMSP 16
+250 250 GOES 6
+251 251 GOES 7
+252 252 GOES 8
+253 253 GOES 9
+254 254 GOES 10
+255 255 GOES 11
+256 256 GOES 12
+257 257 GOES 13
+258 258 GOES 14
+259 259 GOES 15
+260 260 JASON 1
+261 261 JASON 2
+262 262 JASON 3
+263 263 TROPICS-05
+264 264 TROPICS-06
+265 265 GEOOPTICS CICERO OP1
+266 266 GEOOPTICS CICERO OP2
+267 267 PLANETIQ GNOMES-A
+268 268 PLANETIQ GNOMES-B
+269 269 SPIRE LEMUR 3U CUBESAT
+270 270 GOES 16
+271 271 GOES 17
+272 272 GOES 18
+273 273 GOES 19
+281 281 QUIKSCAT
+282 282 TRMM
+283 283 CORIOLIS
+284 284 TROPICS-07
+285 285 DMSP 17
+286 286 DMSP 18
+287 287 DMSP 19
+288 288 GPM-CORE
+289 289 ORBITING CARBON OBSERVATORY - 2 (OCO-2, NASA)
+310 310 GOMS 1
+311 311 GOMS 2
+320 320 METEOR 2-21
+321 321 METEOR 3-5
+322 322 METEOR 3M-1
+323 323 METEOR 3M-2
+324 324 METEOR-M N2
+325 325 METEOR-M N2 2
+341 341 RESURS 01-4
+410 410 KALPANA-1
+421 421 OCEANSAT-2
+422 422 SCATSAT-1
+423 423 OCEANSAT-3
+430 430 INSAT 1B
+431 431 INSAT 1C
+432 432 INSAT 1D
+440 440 MEGHA-TROPIQUES
+441 441 SARAL
+450 450 INSAT 2A
+451 451 INSAT 2B
+452 452 INSAT 2E
+470 470 INSAT 3A
+471 471 INSAT 3D
+472 472 INSAT 3E
+473 473 INSAT 3DR
+474 474 INSAT 3DS
+500 500 FY-1C
+501 501 FY-1D
+502 502 HAI YANG 2A (HY-2A, SOA/NSOAS CHINA)
+503 503 HAI YANG 2B (HY-2B, SOA/NSOAS CHINA)
+504 504 HAI YANG 2C (HY-2C, SOA/NSOAS CHINA)
+505 505 HAI YANG 2D (HY-2D, SOA/NSOAS CHINA)
+510 510 FY-2
+512 512 FY-2B
+513 513 FY-2C
+514 514 FY-2D
+515 515 FY-2E
+516 516 FY-2F
+517 517 FY-2G
+518 518 FY-2H
+520 520 FY-3A
+521 521 FY-3B
+522 522 FY-3C
+523 523 FY-3D
+524 524 FY-3E
+525 525 FY-3F
+526 526 FY-3G
+530 530 FY-4A
+531 531 FY-4B
+700 700 TIROS M (ITOS 1)
+701 701 NOAA 1
+702 702 NOAA 2
+703 703 NOAA 3
+704 704 NOAA 4
+705 705 NOAA 5
+706 706 NOAA 6
+707 707 NOAA 7
+708 708 TIROS-N
+709 709 TROPICS-01 (PATHFINDER)
+710 710 GOES (SMS 1)
+711 711 GOES (SMS 2)
+720 720 TOPEX
+721 721 GFO (GEOSAT FOLLOW ON)
+722 722 GRACE A
+723 723 GRACE B
+724 724 COSMIC-2 P1
+725 725 COSMIC-2 P2
+726 726 COSMIC-2 P3
+727 727 COSMIC-2 P4
+728 728 COSMIC-2 P5
+729 729 COSMIC-2 P6
+731 731 GOES 1
+732 732 GOES 2
+733 733 GOES 3
+734 734 GOES 4
+735 735 GOES 5
+740 740 COSMIC-1
+741 741 COSMIC-2
+742 742 COSMIC-3
+743 743 COSMIC-4
+744 744 COSMIC-5
+745 745 COSMIC-6
+746 746 DMSP 1
+747 747 DMSP 2
+748 748 DMSP 3
+749 749 DMSP 4
+750 750 COSMIC-2 E1
+751 751 COSMIC-2 E2
+752 752 COSMIC-2 E3
+753 753 COSMIC-2 E4
+754 754 COSMIC-2 E5
+755 755 COSMIC-2 E6
+761 761 NIMBUS 1
+762 762 NIMBUS 2
+763 763 NIMBUS 3
+764 764 NIMBUS 4
+765 765 NIMBUS 5
+766 766 NIMBUS 6
+767 767 NIMBUS 7
+780 780 ERBS
+781 781 UARS
+782 782 EARTH PROBE
+783 783 TERRA
+784 784 AQUA
+785 785 AURA
+786 786 C/NOFS
+787 787 CALIPSO
+788 788 CLOUDSAT
+789 789 SMAP
+800 800 SUNSAT
+801 801 INTERNATIONAL SPACE STATION (ISS)
+802 802 CFOSAT
+803 803 GRACE C (GRACE-FO)
+804 804 GRACE D (GRACE-FO)
+810 810 COMS
+811 811 GEO-KOMPSAT-2A
+812 812 SCISAT-1
+813 813 ODIN
+814 814 GEO-KOMPSAT-2B
+820 820 SAC-C
+821 821 SAC-D
+825 825 KOMPSAT-5
+850 850 COMBINATION OF TERRA AND AQUA
+851 851 COMBINATION OF NOAA 16 TO NOAA 19
+852 852 COMBINATION OF METOP-1 TO METOP-3
+853 853 COMBINATION OF METEOSAT AND DMSP
+854 854 NON-SPECIFIC MIXTURE OF GEOSTATIONARY AND LOW EARTH-ORBITING SATELLITES
+855 855 COMBINATION OF INSAT 3D AND INSAT 3DR
+856 856 COMBINATION OF SENTINEL-3 SATELLITES
+1023 1023 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1024.table b/definitions/bufr/tables/0/wmo/41/codetables/1024.table
new file mode 100644
index 000000000..cdc9e2470
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1024.table
@@ -0,0 +1,9 @@
+0 0 NO WIND SPEED DATA AVAILABLE
+1 1 AMSR-E DATA
+2 2 TMI DATA
+3 3 NWP: ECMWF
+4 4 NWP: UK MET OFFICE
+5 5 NWP: NCEP
+6 6 REFERENCE CLIMATOLOGY
+7 7 ERS_SCATTEROMETER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1028.table b/definitions/bufr/tables/0/wmo/41/codetables/1028.table
new file mode 100644
index 000000000..18f82068b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1028.table
@@ -0,0 +1,7 @@
+0 0 NO AOD DATA AVAILABLE
+1 1 NESDIS
+2 2 NAVOCEANO
+3 3 NAAPS
+4 4 MERIS
+5 5 AATSR
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1029.table b/definitions/bufr/tables/0/wmo/41/codetables/1029.table
new file mode 100644
index 000000000..d63d07ef0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1029.table
@@ -0,0 +1,8 @@
+0 0 NO SSI DATA AVAILABLE
+1 1 MSG_SEVIRI
+2 2 GOES EAST
+3 3 GOES WEST
+4 4 ECMWF
+5 5 NCEP
+6 6 UK MET OFFICE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1033.table b/definitions/bufr/tables/0/wmo/41/codetables/1033.table
new file mode 100644
index 000000000..bec1b5c29
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1033.table
@@ -0,0 +1,240 @@
+0 0 WMO SECRETARIAT
+1 1 MELBOURNE
+2 2 MELBOURNE
+3 3 )
+4 4 MOSCOW
+5 5 MOSCOW
+6 6 )
+7 7 US NATIONAL WEATHER SERVICE - NATIONAL CENTRES FOR ENVIRONMENTAL PREDICTION (NCEP)
+8 8 US NATIONAL WEATHER SERVICE TELECOMMUNICATIONS GATEWAY (NWSTG)
+9 9 US NATIONAL WEATHER SERVICE - OTHER
+10 10 CAIRO (RSMC)
+11 11 )
+12 12 DAKAR (RSMC)
+13 13 )
+14 14 NAIROBI (RSMC)
+15 15 )
+16 16 CASABLANCA (RSMC)
+17 17 TUNIS (RSMC)
+18 18 TUNIS - CASABLANCA (RSMC)
+19 19 )
+20 20 LAS PALMAS
+21 21 ALGIERS (RSMC)
+22 22 ACMAD
+23 23 MOZAMBIQUE (NMC)
+24 24 PRETORIA (RSMC)
+25 25 LA REUNION (RSMC)
+26 26 KHABAROVSK (RSMC)
+27 27 )
+28 28 NEW DELHI (RSMC)
+29 29 )
+30 30 NOVOSIBIRSK (RSMC)
+31 31 )
+32 32 TASHKENT (RSMC)
+33 33 JEDDAH (RSMC)
+34 34 TOKYO (RSMC), JAPAN METEOROLOGICAL AGENCY
+35 35 )
+36 36 BANGKOK
+37 37 ULAANBAATAR
+38 38 BEIJING (RSMC)
+39 39 )
+40 40 SEOUL
+41 41 BUENOS AIRES (RSMC)
+42 42 )
+43 43 BRASILIA (RSMC)
+44 44 )
+45 45 SANTIAGO
+46 46 BRAZILIAN SPACE AGENCY INPE
+47 47 COLOMBIA (NMC)
+48 48 ECUADOR (NMC)
+49 49 PERU (NMC)
+50 50 VENEZUELA (BOLIVARIAN REPUBLIC OF) (NMC)
+51 51 MIAMI (RSMC)
+52 52 MIAMI (RSMC), NATIONAL HURRICANE CENTRE
+53 53 MSC MONITORING
+54 54 MONTREAL (RSMC)
+55 55 SAN FRANCISCO
+56 56 ARINC CENTRE
+57 57 US AIR FORCE - AIR FORCE GLOBAL WEATHER CENTRAL
+58 58 FLEET NUMERICAL METEOROLOGY AND OCEANOGRAPHY CENTER, MONTEREY, CA, UNITED STATES
+59 59 THE NOAA FORECAST SYSTEMS LABORATORY, BOULDER, CO, UNITED STATES
+60 60 UNITED STATES NATIONAL CENTER FOR ATMOSPHERIC RESEARCH (NCAR)
+61 61 SERVICE ARGOS - LANDOVER
+62 62 US NAVAL OCEANOGRAPHIC OFFICE
+63 63 INTERNATIONAL RESEARCH INSTITUTE FOR CLIMATE AND SOCIETY (IRI)
+64 64 HONOLULU (RSMC)
+65 65 DARWIN (RSMC)
+66 66 )
+67 67 MELBOURNE (RSMC)
+68 68 RESERVED
+69 69 WELLINGTON (RSMC)
+70 70 )
+71 71 NADI (RSMC)
+72 72 SINGAPORE
+73 73 MALAYSIA (NMC)
+74 74 UK METEOROLOGICAL OFFICE EXETER (RSMC)
+75 75 )
+76 76 MOSCOW (RSMC)
+77 77 RESERVED
+78 78 OFFENBACH (RSMC)
+79 79 )
+80 80 ROME (RSMC)
+81 81 )
+82 82 NORRKOPING
+83 83 )
+84 84 TOULOUSE (RSMC)
+85 85 TOULOUSE (RSMC)
+86 86 HELSINKI
+87 87 BELGRADE
+88 88 OSLO
+89 89 PRAGUE
+90 90 EPISKOPI
+91 91 ANKARA
+92 92 FRANKFURT/MAIN
+93 93 LONDON (WAFC)
+94 94 COPENHAGEN
+95 95 ROTA
+96 96 ATHENS
+97 97 EUROPEAN SPACE AGENCY (ESA)
+98 98 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS (ECMWF) (RSMC)
+99 99 DE BILT
+100 100 BRAZZAVILLE
+101 101 ABIDJAN
+102 102 LIBYA (NMC)
+103 103 MADAGASCAR (NMC)
+104 104 MAURITIUS (NMC)
+105 105 NIGER (NMC)
+106 106 SEYCHELLES (NMC)
+107 107 UGANDA (NMC)
+108 108 UNITED REPUBLIC OF TANZANIA (NMC)
+109 109 ZIMBABWE (NMC)
+110 110 HONG-KONG, CHINA
+111 111 AFGHANISTAN (NMC)
+112 112 BAHRAIN (NMC)
+113 113 BANGLADESH (NMC)
+114 114 BHUTAN (NMC)
+115 115 CAMBODIA (NMC)
+116 116 DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA (NMC)
+117 117 ISLAMIC REPUBLIC OF IRAN (NMC)
+118 118 IRAQ (NMC)
+119 119 KAZAKHSTAN (NMC)
+120 120 KUWAIT (NMC)
+121 121 KYRGYZSTAN (NMC)
+122 122 LAO PEOPLE'S DEMOCRATIC REPUBLIC (NMC)
+123 123 MACAO, CHINA
+124 124 MALDIVES (NMC)
+125 125 MYANMAR (NMC)
+126 126 NEPAL (NMC)
+127 127 OMAN (NMC)
+128 128 PAKISTAN (NMC)
+129 129 QATAR (NMC)
+130 130 YEMEN (NMC)
+131 131 SRI LANKA (NMC)
+132 132 TAJIKISTAN (NMC)
+133 133 TURKMENISTAN (NMC)
+134 134 UNITED ARAB EMIRATES (NMC)
+135 135 UZBEKISTAN (NMC)
+136 136 VIET NAM (NMC)
+140 140 BOLIVIA (PLURINATIONAL STATE OF) (NMC)
+141 141 GUYANA (NMC)
+142 142 PARAGUAY (NMC)
+143 143 SURINAME (NMC)
+144 144 URUGUAY (NMC)
+145 145 FRENCH GUIANA
+146 146 BRAZILIAN NAVY HYDROGRAPHIC CENTRE
+147 147 NATIONAL COMMISSION ON SPACE ACTIVITIES (CONAE) - ARGENTINA
+148 148 BRAZILIAN DEPARTMENT OF AIRSPACE CONTROL - DECEA
+149 149 RESERVED FOR OTHER CENTRES
+150 150 ANTIGUA AND BARBUDA (NMC)
+151 151 BAHAMAS (NMC)
+152 152 BARBADOS (NMC)
+153 153 BELIZE (NMC)
+154 154 BRITISH CARIBBEAN TERRITORIES CENTRE
+155 155 SAN JOSE
+156 156 CUBA (NMC)
+157 157 DOMINICA (NMC)
+158 158 DOMINICAN REPUBLIC (NMC)
+159 159 EL SALVADOR (NMC)
+160 160 US NOAA/NESDIS
+161 161 US NOAA OFFICE OF OCEANIC AND ATMOSPHERIC RESEARCH
+162 162 GUATEMALA (NMC)
+163 163 HAITI (NMC)
+164 164 HONDURAS (NMC)
+165 165 JAMAICA (NMC)
+166 166 MEXICO CITY
+167 167 CURACAO AND SINT MAARTEN (NMC)
+168 168 NICARAGUA (NMC)
+169 169 PANAMA (NMC)
+170 170 SAINT LUCIA (NMC)
+171 171 TRINIDAD AND TOBAGO (NMC)
+172 172 FRENCH DEPARTMENTS IN RA IV
+173 173 US NATIONAL AERONAUTICS AND SPACE ADMINISTRATION (NASA)
+174 174 INTEGRATED SCIENCE DATA MANAGEMENT/MARINE ENVIRONMENTAL DATA SERVICE (ISDM/MEDS) - CANADA
+175 175 UNIVERSITY CORPORATION FOR ATMOSPHERIC RESEARCH (UCAR) - UNITED STATES
+176 176 COOPERATIVE INSTITUTE FOR METEOROLOGICAL SATELLITE STUDIES (CIMSS) - UNITED STATES
+177 177 NOAA NATIONAL OCEAN SERVICE - UNITED STATES
+178 178 SPIRE GLOBAL, INC.
+179 179 GEOOPTICS, INC.
+180 180 PLANETIQ
+181 181 ATMOSPHERIC AND ENVIRONMENTAL RESEARCH (AER)
+190 190 COOK ISLANDS (NMC)
+191 191 FRENCH POLYNESIA (NMC)
+192 192 TONGA (NMC)
+193 193 VANUATU (NMC)
+194 194 BRUNEI DARUSSALAM (NMC)
+195 195 INDONESIA (NMC)
+196 196 KIRIBATI (NMC)
+197 197 FEDERATED STATES OF MICRONESIA (NMC)
+198 198 NEW CALEDONIA (NMC)
+199 199 NIUE
+200 200 PAPUA NEW GUINEA (NMC)
+201 201 PHILIPPINES (NMC)
+202 202 SAMOA (NMC)
+203 203 SOLOMON ISLANDS (NMC)
+204 204 NATIONAL INSTITUTE OF WATER AND ATMOSPHERIC RESEARCH (NIWA - NEW ZEALAND)
+210 210 FRASCATI (ESA/ESRIN)
+211 211 LANNION
+212 212 LISBON
+213 213 REYKJAVIK
+214 214 MADRID
+215 215 ZUERICH
+216 216 SERVICE ARGOS - TOULOUSE
+217 217 BRATISLAVA
+218 218 BUDAPEST
+219 219 LJUBLJANA
+220 220 WARSAW
+221 221 ZAGREB
+222 222 ALBANIA (NMC)
+223 223 ARMENIA (NMC)
+224 224 AUSTRIA (NMC)
+225 225 AZERBAIJAN (NMC)
+226 226 BELARUS (NMC)
+227 227 BELGIUM (NMC)
+228 228 BOSNIA AND HERZEGOVINA (NMC)
+229 229 BULGARIA (NMC)
+230 230 CYPRUS (NMC)
+231 231 ESTONIA (NMC)
+232 232 GEORGIA (NMC)
+233 233 DUBLIN
+234 234 ISRAEL (NMC)
+235 235 JORDAN (NMC)
+236 236 LATVIA (NMC)
+237 237 LEBANON (NMC)
+238 238 LITHUANIA (NMC)
+239 239 LUXEMBOURG
+240 240 MALTA (NMC)
+241 241 MONACO
+242 242 ROMANIA (NMC)
+243 243 SYRIAN ARAB REPUBLIC (NMC)
+244 244 THE FORMER YUGOSLAV REPUBLIC OF MACEDONIA (NMC)
+245 245 UKRAINE (NMC)
+246 246 REPUBLIC OF MOLDOVA (NMC)
+247 247 OPERATIONAL PROGRAMME FOR THE EXCHANGE OF WEATHER RADAR INFORMATION (OPERA) - EUMETNET
+248 248 MONTENEGRO (NMC)
+249 249 BARCELONA DUST FORECAST CENTER
+250 250 CONSORTIUM FOR SMALL SCALE MODELLING (COSMO)
+251 251 METEOROLOGICAL COOPERATION ON OPERATIONAL NWP (METCOOP)
+252 252 MAX PLANCK INSTITUTE FOR METEOROLOGY (MPI-M)
+253 253 RESERVED FOR OTHER CENTRES
+254 254 EUMETSAT OPERATION CENTRE
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1034.table b/definitions/bufr/tables/0/wmo/41/codetables/1034.table
new file mode 100644
index 000000000..fce0d85fd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1034.table
@@ -0,0 +1,104 @@
+0 0 NO SUB-CENTRE
+1 1 LUXEMBOURG (NMC)
+2 2 FUCINO
+3 3 GATINEAU
+4 4 MASPALOMAS (SPAIN)
+5 5 ESA ERS CENTRAL FACILITY
+6 6 PRINCE ALBERT
+7 7 WEST FREUGH
+8 8 LANGLEY RESEARCH CENTER
+9 9 MARSHALL SPACE FLIGHT CENTER
+10 10 TROMSO (NORWAY)
+11 11 MCMURDO (ANTARCTICA)
+12 12 SODANKYLA (FINLAND)
+13 13 TROMSO
+14 14 BARROW (UNITED STATES)
+15 15 ROTHERA (ANTARCTICA)
+16 16 SPACE WEATHER PREDICTION CENTER
+17 17 ESRL GLOBAL SYSTEMS DIVISION
+18 18 SIPAM-PORTO VELHO-RO
+19 19 SIPAM-BELEM-PA
+20 20 MASPALOMAS (SPAIN)
+21 21 AGENZIA SPAZIALE ITALIANA (ITALY)
+22 22 CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE (FRANCE)
+23 23 GEOFORSCHUNGS ZENTRUM (GERMANY)
+24 24 GEODETIC OBSERVATORY PECNY (CZECHIA)
+25 25 INSTITUT D'ESTUDIS ESPACIALS DE CATALUNYA (SPAIN)
+26 26 FEDERAL OFFICE OF TOPOGRAPHY (SWITZERLAND)
+27 27 NORDIC COMMISSION OF GEODESY (NORWAY)
+28 28 NORDIC COMMISSION OF GEODESY (SWEDEN)
+29 29 INSTITUTE GEOGRAPHIQUE NATIONAL (FRANCE) - SERVICE DE GEODESIE
+30 30 KANGERLUSSUAQ (GREENLAND)
+31 31 INSTITUTE OF ENGINEERING SATELLITE SURVEYING AND GEODESY (UNITED KINGDOM)
+32 32 JOINT OPERATIONAL METEOROLOGY AND OCEANOGRAPHY CENTRE (JOMOC)
+33 33 KONINKLIJK NEDERLANDS METEOROLOGISCH INSTITUT (NETHERLANDS)
+34 34 NORDIC GPS ATMOSPHERIC ANALYSIS CENTRE (SWEDEN)
+35 35 INSTITUTO GEOGRAFICO NACIONAL DE ESPANA (SPAIN)
+36 36 MET EIREANN (IRELAND)
+37 37 ROYAL OBSERVATORY OF BELGIUM (BELGIUM)
+40 40 EDMONTON (CANADA)
+50 50 BEDFORD (CANADA)
+60 60 GANDER (CANADA)
+64 64 BUNDESWEHR GEOINFORMATION OFFICE (BGIO)
+70 70 MONTEREY (UNITED STATES)
+76 76 ROSHYDROMET (RUSSIAN FEDERATION)
+78 78 DEUTSCHER WETTERDIENST (GERMANY)
+80 80 WALLOPS ISLAND (UNITED STATES)
+90 90 GILMOR CREEK (UNITED STATES)
+96 96 HELLENIC NATIONAL METEOROLOGICAL SERVICE (GREECE)
+100 100 ATHENS (GREECE)
+101 101 ALBANIA (NMC)
+102 102 NATIONAL RESEARCH COUNCIL/INSTITUTE OF ATMOSPHERIC SCIENCES AND CLIMATE (CNR-ISAC)
+110 110 NOWCAST MOBILE (LIGHTNING DATA)
+120 120 EWA BEACH, HAWAII
+125 125 FORD ISLAND, HAWAII
+130 130 MIAMI, FLORIDA
+140 140 LANNION (FRANCE)
+150 150 SVALBARD (NORWAY)
+170 170 SAINT-DENIS (LA REUNION)
+180 180 MOSCOW
+190 190 MUSCAT
+200 200 KHABAROVSK
+201 201 RHEINISCHES INSTITUT FUER UMWELTFORSCHUNG AN DER UNIVERSITAET ZU KOELN E.V. (GERMANY)
+202 202 INSTITUT FRANCAIS DE RECHERCHE POUR L'EXPLOITATION DE LA MER
+203 203 AARHUS UNIVERSITY (DENMARK)
+204 204 INSTITUTE OF ENVIRONMENTAL PROTECTION - NATIONAL RESEARCH INSTITUTE (POLAND)
+205 205 NIUE
+206 206 RAROTONGA (COOK ISLANDS)
+207 207 APIA (SAMOA)
+208 208 TONGA
+209 209 TUVALU
+210 210 NOVOSIBIRSK
+211 211 TOKELAU
+214 214 DARWIN
+215 215 METEOSWISS (SWITZERLAND)
+217 217 PERTH
+219 219 TOWNSVILLE
+220 220 NOAA SATELLITE OPERATIONS FACILITY (NSOF)
+221 221 SCHLESWIG-HOLSTEIN, TRAFFIC OPERATIONS COMPUTING CENTRE (TOCC) KIEL/NEUMUENSTER
+222 222 HAMBURG, TOCC HAMBURG
+223 223 NIEDERSACHSEN, TOCC HANNOVER
+224 224 AUSTRIA (NMC)
+225 225 NORDRHEIN-WESTFALEN, TOCC KAMEN LEVERKUSEN
+226 226 HESSEN, TOCC RUESSELSHEIM
+227 227 RHEINLAND-PFALZ, TOCC KOBLENZ
+228 228 BADEN-WUERTTEMBERG, TOCC LUDWIGSBURG
+229 229 BAYERN, TOCC FREIMANN
+230 230 SAARLAND, TOCC ROHRBACH
+231 231 BAYERN, AUTOBAHN DIRECTORATE NORDBAYERN
+232 232 BRANDENBURG, TOCC STOLPE
+233 233 MECKLENBURG-VORPOMMERN, TOCC MALCHOW
+234 234 SACHSEN, TOCC DRESDEN
+235 235 SACHSEN-ANHALT, TOCC HALLE
+236 236 THUERINGEN, TOCC ERFURT
+237 237 EASYWAY - METEOTRANS
+240 240 KIYOSE
+241 241 REANALYSIS PROJECT
+242 242 NATIONAL METEOROLOGICAL ADMINISTRATION (ROMANIA)
+243 243 KELBURN
+245 245 JINCHEON
+249 249 SINGAPORE
+250 250 VLADIVOSTOCK
+251 251 GUAM
+252 252 HONOLULU
+254 254 EUMETSAT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1035.table b/definitions/bufr/tables/0/wmo/41/codetables/1035.table
new file mode 100644
index 000000000..2b65c6537
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1035.table
@@ -0,0 +1,285 @@
+0 0 WMO SECRETARIAT
+1 1 MELBOURNE
+2 2 MELBOURNE
+3 3 )
+4 4 MOSCOW
+5 5 MOSCOW
+6 6 )
+7 7 US NATIONAL WEATHER SERVICE, NATIONAL CENTRES FOR ENVIRONMENTAL PREDICTION (NCEP)
+8 8 US NATIONAL WEATHER SERVICE TELECOMMUNICATIONS GATEWAY (NWSTG)
+9 9 US NATIONAL WEATHER SERVICE - OTHER
+10 10 CAIRO (RSMC)
+11 11 )
+12 12 DAKAR (RSMC)
+13 13 )
+14 14 NAIROBI (RSMC)
+15 15 )
+16 16 CASABLANCA (RSMC)
+17 17 TUNIS (RSMC)
+18 18 TUNIS-CASABLANCA (RSMC)
+19 19 )
+20 20 LAS PALMAS
+21 21 ALGIERS (RSMC)
+22 22 ACMAD
+23 23 MOZAMBIQUE (NMC)
+24 24 PRETORIA (RSMC)
+25 25 LA REUNION (RSMC)
+26 26 KHABAROVSK (RSMC)
+27 27 )
+28 28 NEW DELHI (RSMC)
+29 29 )
+30 30 NOVOSIBIRSK (RSMC)
+31 31 )
+32 32 TASHKENT (RSMC)
+33 33 JEDDAH (RSMC)
+34 34 TOKYO (RSMC), JAPAN METEOROLOGICAL AGENCY
+35 35 )
+36 36 BANGKOK
+37 37 ULAANBAATAR
+38 38 BEIJING (RSMC)
+39 39 )
+40 40 SEOUL
+41 41 BUENOS AIRES (RSMC)
+42 42 )
+43 43 BRASILIA (RSMC)
+44 44 )
+45 45 SANTIAGO
+46 46 BRAZILIAN SPACE AGENCY INPE
+47 47 COLOMBIA (NMC)
+48 48 ECUADOR (NMC)
+49 49 PERU (NMC)
+50 50 VENEZUELA (BOLIVARIAN REPUBLIC OF) (NMC)
+51 51 MIAMI (RSMC)
+52 52 MIAMI RSMC, NATIONAL HURRICANE CENTRE
+53 53 MSC MONITORING
+54 54 MONTREAL (RSMC)
+55 55 SAN FRANCISCO
+56 56 ARINC CENTRE
+57 57 US AIR FORCE - AIR FORCE GLOBAL WEATHER CENTRAL
+58 58 FLEET NUMERICAL METEOROLOGY AND OCEANOGRAPHY CENTER, MONTEREY, CA, UNITED STATES
+59 59 THE NOAA FORECAST SYSTEMS LABORATORY, BOULDER, CO, UNITED STATES
+60 60 UNITED STATES NATIONAL CENTER FOR ATMOSPHERIC RESEARCH (NCAR)
+61 61 SERVICE ARGOS - LANDOVER
+62 62 US NAVAL OCEANOGRAPHIC OFFICE
+63 63 INTERNATIONAL RESEARCH INSTITUTE FOR CLIMATE AND SOCIETY (IRI)
+64 64 HONOLULU (RSMC)
+65 65 DARWIN (RSMC)
+66 66 )
+67 67 MELBOURNE (RSMC)
+68 68 RESERVED
+69 69 WELLINGTON (RSMC)
+70 70 )
+71 71 NADI (RSMC)
+72 72 SINGAPORE
+73 73 MALAYSIA (NMC)
+74 74 UK METEOROLOGICAL OFFICE EXETER (RSMC)
+75 75 )
+76 76 MOSCOW (RSMC)
+77 77 RESERVED
+78 78 OFFENBACH (RSMC)
+79 79 )
+80 80 ROME (RSMC)
+81 81 )
+82 82 NORRKOPING
+83 83 )
+84 84 TOULOUSE (RSMC)
+85 85 TOULOUSE (RSMC)
+86 86 HELSINKI
+87 87 BELGRADE
+88 88 OSLO
+89 89 PRAGUE
+90 90 EPISKOPI
+91 91 ANKARA
+92 92 FRANKFURT/MAIN
+93 93 LONDON (WAFC)
+94 94 COPENHAGEN
+95 95 ROTA
+96 96 ATHENS
+97 97 EUROPEAN SPACE AGENCY (ESA)
+98 98 EUROPEAN CENTRE FOR MEDIUM RANGE WEATHER FORECASTS (ECMWF) (RSMC)
+99 99 DE BILT
+100 100 BRAZZAVILLE
+101 101 ABIDJAN
+102 102 LIBYA (NMC)
+103 103 MADAGASCAR (NMC)
+104 104 MAURITIUS (NMC)
+105 105 NIGER (NMC)
+106 106 SEYCHELLES (NMC)
+107 107 UGANDA (NMC)
+108 108 UNITED REPUBLIC OF TANZANIA (NMC)
+109 109 ZIMBABWE (NMC)
+110 110 HONG KONG, CHINA
+111 111 AFGHANISTAN (NMC)
+112 112 BAHRAIN (NMC)
+113 113 BANGLADESH (NMC)
+114 114 BHUTAN (NMC)
+115 115 CAMBODIA (NMC)
+116 116 DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA (NMC)
+117 117 ISLAMIC REPUBLIC OF IRAN (NMC)
+118 118 IRAQ (NMC)
+119 119 KAZAKHSTAN (NMC)
+120 120 KUWAIT (NMC)
+121 121 KYRGYZSTAN (NMC)
+122 122 LAO PEOPLE'S DEMOCRATIC REPUBLIC (NMC)
+123 123 MACAO, CHINA
+124 124 MALDIVES (NMC)
+125 125 MYANMAR (NMC)
+126 126 NEPAL (NMC)
+127 127 OMAN (NMC)
+128 128 PAKISTAN (NMC)
+129 129 QATAR (NMC)
+130 130 YEMEN (NMC)
+131 131 SRI LANKA (NMC)
+132 132 TAJIKISTAN (NMC)
+133 133 TURKMENISTAN (NMC)
+134 134 UNITED ARAB EMIRATES (NMC)
+135 135 UZBEKISTAN (NMC)
+136 136 VIET NAM (NMC)
+140 140 BOLIVIA (PLURINATIONAL STATE OF) (NMC)
+141 141 GUYANA (NMC)
+142 142 PARAGUAY (NMC)
+143 143 SURINAME (NMC)
+144 144 URUGUAY (NMC)
+145 145 FRENCH GUIANA
+146 146 BRAZILIAN NAVY HYDROGRAPHIC CENTRE
+147 147 NATIONAL COMMISSION ON SPACE ACTIVITIES (CONAE) - ARGENTINA
+148 148 BRAZILIAN DEPARTMENT OF AIRSPACE CONTROL - DECEA
+149 149 RESERVED FOR OTHER CENTRES
+150 150 ANTIGUA AND BARBUDA (NMC)
+151 151 BAHAMAS (NMC)
+152 152 BARBADOS (NMC)
+153 153 BELIZE (NMC)
+154 154 BRITISH CARIBBEAN TERRITORIES CENTRE
+155 155 SAN JOSE
+156 156 CUBA (NMC)
+157 157 DOMINICA (NMC)
+158 158 DOMINICAN REPUBLIC (NMC)
+159 159 EL SALVADOR (NMC)
+160 160 US NOAA/NESDIS
+161 161 US NOAA OFFICE OF OCEANIC AND ATMOSPHERIC RESEARCH
+162 162 GUATEMALA (NMC)
+163 163 HAITI (NMC)
+164 164 HONDURAS (NMC)
+165 165 JAMAICA (NMC)
+166 166 MEXICO
+167 167 CURACAO AND SINT MAARTEN (NMC)
+168 168 NICARAGUA (NMC)
+169 169 PANAMA (NMC)
+170 170 SAINT LUCIA (NMC)
+171 171 TRINIDAD AND TOBAGO (NMC)
+172 172 FRENCH DEPARTMENTS IN RA IV
+173 173 US NATIONAL AERONAUTICS AND SPACE ADMINISTRATION (NASA)
+174 174 INTEGRATED SCIENCE DATA MANAGEMENT/MARINE ENVIRONMENTAL DATA SERVICE (ISDM/MEDS - CANADA)
+175 175 UNIVERSITY CORPORATION FOR ATMOSPHERIC RESEARCH (UCAR) - UNITED STATES
+176 176 COOPERATIVE INSTITUTE FOR METEOROLOGICAL SATELLITE STUDIES (CIMSS) - UNITED STATES
+177 177 NOAA NATIONAL OCEAN SERVICE - UNITED STATES
+178 178 SPIRE GLOBAL, INC.
+179 179 GEOOPTICS, INC.
+180 180 PLANETIQ
+181 181 ATMOSPHERIC AND ENVIRONMENTAL RESEARCH (AER)
+190 190 COOK ISLANDS (NMC)
+191 191 FRENCH POLYNESIA (NMC)
+192 192 TONGA (NMC)
+193 193 VANUATU (NMC)
+194 194 BRUNEI DARUSSALAM (NMC)
+195 195 INDONESIA (NMC)
+196 196 KIRIBATI (NMC)
+197 197 FEDERATED STATES OF MICRONESIA (NMC)
+198 198 NEW CALEDONIA (NMC)
+199 199 NIUE
+200 200 PAPUA NEW GUINEA (NMC)
+201 201 PHILIPPINES (NMC)
+202 202 SAMOA (NMC)
+203 203 SOLOMON ISLANDS (NMC)
+204 204 NATIONAL INSTITUTE OF WATER AND ATMOSPHERIC RESEARCH (NIWA - NEW ZEALAND)
+210 210 FRASCATI (ESA/ESRIN)
+211 211 LANNION
+212 212 LISBOA
+213 213 REYKJAVIK
+214 214 MADRID
+215 215 ZUERICH
+216 216 SERVICE ARGOS TOULOUSE
+217 217 BRATISLAVA
+218 218 BUDAPEST
+219 219 LJUBLJANA
+220 220 WARSAW
+221 221 ZAGREB
+222 222 ALBANIA (NMC)
+223 223 ARMENIA (NMC)
+224 224 AUSTRIA (NMC)
+225 225 AZERBAIJAN (NMC)
+226 226 BELARUS (NMC)
+227 227 BELGIUM (NMC)
+228 228 BOSNIA AND HERZEGOVINA (NMC)
+229 229 BULGARIA (NMC)
+230 230 CYPRUS (NMC)
+231 231 ESTONIA (NMC)
+232 232 GEORGIA (NMC)
+233 233 DUBLIN
+234 234 ISRAEL (NMC)
+235 235 JORDAN (NMC)
+236 236 LATVIA (NMC)
+237 237 LEBANON (NMC)
+238 238 LITHUANIA (NMC)
+239 239 LUXEMBOURG
+240 240 MALTA (NMC)
+241 241 MONACO
+242 242 ROMANIA (NMC)
+243 243 SYRIAN ARAB REPUBLIC (NMC)
+244 244 THE FORMER YUGOSLAV REPUBLIC OF MACEDONIA (NMC)
+245 245 UKRAINE (NMC)
+246 246 REPUBLIC OF MOLDOVA (NMC)
+247 247 OPERATIONAL PROGRAMME FOR THE EXCHANGE OF WEATHER RADAR INFORMATION (OPERA) - EUMETNET
+248 248 MONTENEGRO (NMC)
+249 249 BARCELONA DUST FORECAST CENTER
+250 250 CONSORTIUM FOR SMALL SCALE MODELLING (COSMO)
+251 251 METEOROLOGICAL COOPERATION ON OPERATIONAL NWP (METCOOP)
+252 252 MAX PLANCK INSTITUTE FOR METEOROLOGY (MPI-M)
+253 253 RESERVED FOR OTHER CENTRES
+254 254 EUMETSAT OPERATION CENTRE
+255 255 NOT TO BE USED
+256 256 ANGOLA (NMC)
+257 257 BENIN (NMC)
+258 258 BOTSWANA (NMC)
+259 259 BURKINA FASO (NMC)
+260 260 BURUNDI (NMC)
+261 261 CAMEROON (NMC)
+262 262 CABO VERDE (NMC)
+263 263 CENTRAL AFRICAN REPUBLIC (NMC)
+264 264 CHAD (NMC)
+265 265 COMOROS (NMC)
+266 266 DEMOCRATIC REPUBLIC OF THE CONGO (NMC)
+267 267 DJIBOUTI (NMC)
+268 268 ERITREA (NMC)
+269 269 ETHIOPIA (NMC)
+270 270 GABON (NMC)
+271 271 GAMBIA (NMC)
+272 272 GHANA (NMC)
+273 273 GUINEA (NMC)
+274 274 GUINEA-BISSAU (NMC)
+275 275 LESOTHO (NMC)
+276 276 LIBERIA (NMC)
+277 277 MALAWI (NMC)
+278 278 MALI (NMC)
+279 279 MAURITANIA (NMC)
+280 280 NAMIBIA (NMC)
+281 281 NIGERIA (NMC)
+282 282 RWANDA (NMC)
+283 283 SAO TOME AND PRINCIPE (NMC)
+284 284 SIERRA LEONE (NMC)
+285 285 SOMALIA (NMC)
+286 286 SUDAN (NMC)
+287 287 ESWATINI (NMC)
+288 288 TOGO (NMC)
+289 289 ZAMBIA (NMC)
+290 290 EUMETNET E-PROFILE
+291 291 INSTITUTE OF ATMOSPHERIC PHYSICS (IAP) OF THE CHINESE ACADEMY OF SCIENCES (CAS)
+292 292 HELMHOLTZ CENTRE FOR ENVIRONMENTAL RESEARCH (UFZ)
+293 293 UNIVERSITY OF BREMEN
+294 294 NETHERLANDS INSTITUTE FOR SPACE RESEARCH (SRON)
+295 295 THE ROYAL BELGIAN INSTITUTE FOR SPACE AERONOMY (BIRA-IASB)
+296 296 THE FRENCH NATIONAL CENTRE FOR SCIENTIFIC RESEARCH (CNRS)
+297 297 THE NANJING INSTITUTE OF ENVIRONMENTAL SCIENCES (NIES)
+298 298 DYNAMIC METEOROLOGY LABORATORY (LMD)
+299 299 THE RUTHERFORD APPLETON LABORATORY (RAL)
+65535 65535 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1036.table b/definitions/bufr/tables/0/wmo/41/codetables/1036.table
new file mode 100644
index 000000000..06eab3ccd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1036.table
@@ -0,0 +1,42 @@
+36001 36001 AUSTRALIA, BUREAU OF METEOROLOGY (BOM)
+36002 36002 AUSTRALIA, JOINT AUSTRALIAN FACILITY FOR OCEAN OBSERVING SYSTEMS (JAFOOS)
+36003 36003 AUSTRALIA, THE COMMONWEALTH SCIENTIFIC AND INDUSTRIAL RESEARCH ORGANIZATION (CSIRO)
+124001 124001 CANADA, MARINE ENVIRONMENTAL DATA SERVICE (MEDS)
+124002 124002 CANADA, INSTITUTE OF OCEAN SCIENCES (IOS)
+124173 124173 CANADA, ENVIRONMENT CANADA
+124174 124174 CANADA, DEPARTMENT OF NATIONAL DEFENCE
+124175 124175 CANADA, NAV CANADA
+156001 156001 CHINA, THE STATE OCEANIC ADMINISTRATION
+156002 156002 CHINA, SECOND INSTITUTE OF OCEANOGRAPHY, STATE OCEANIC ADMINISTRATION
+156003 156003 CHINA, INSTITUTE OF OCEAN TECHNOLOGY
+250001 250001 FRANCE, INSTITUT DE RECHERCHE POUR LE DéVELOPPEMENT (IRD)
+250002 250002 FRANCE, INSTITUT FRANçAIS DE RECHERCHE POUR L'EXPLOITATION DE LA MER (IFREMER)
+276001 276001 GERMANY, BUNDESAMT FUER SEESCHIFFAHRT UND HYDROGRAPHIE (BSH)
+276002 276002 GERMANY, INSTITUT FUER MEERESKUNDE, KIEL
+356001 356001 INDIA, NATIONAL INSTITUTE OF OCEANOGRAPHY (NIO)
+356002 356002 INDIA, NATIONAL INSTITUTE FOR OCEAN TECHNOLOGY (NIOT)
+356003 356003 INDIA, NATIONAL CENTRE FOR OCEAN INFORMATION SERVICE
+392001 392001 JAPAN, JAPAN METEOROLOGICAL AGENCY (JMA)
+392002 392002 JAPAN, FRONTIER OBSERVATIONAL RESEARCH SYSTEM FOR GLOBAL CHANGE
+392003 392003 JAPAN, JAPAN MARINE SCIENCE AND TECHNOLOGY CENTRE (JAMSTEC)
+410001 410001 REPUBLIC OF KOREA, SEOUL NATIONAL UNIVERSITY
+410002 410002 REPUBLIC OF KOREA, KOREA OCEAN RESEARCH AND DEVELOPMENT INSTITUTE (KORDI)
+410003 410003 REPUBLIC OF KOREA, METEOROLOGICAL RESEARCH INSTITUTE
+540001 540001 NEW CALEDONIA, INSTITUT DE RECHERCHE POUR LE DéVELOPPEMENT (IRD)
+554001 554001 NEW ZEALAND, NATIONAL INSTITUTE OF WATER AND ATMOSPHERIC RESEARCH (NIWA)
+643001 643001 RUSSIAN FEDERATION, STATE OCEANOGRAPHIC INSTITUTE OF ROSHYDROMET
+643002 643002 RUSSIAN FEDERATION, FEDERAL SERVICE FOR HYDROMETEOROLOGY AND ENVIRONMENTAL MONITORING
+724001 724001 SPAIN, INSTITUTO ESPAñOL DE OCEANOGRAFIA
+826001 826001 UNITED KINGDOM, HYDROGRAPHIC OFFICE
+826002 826002 UNITED KINGDOM, NATIONAL OCEANOGRAPHY CENTRE (NOC)
+826003 826003 UNITED KINGDOM, CENTRE FOR ENVIRONMENT, FISHERIES AND AQUACULTURE SCIENCE (CEFAS)
+826004 826004 UNITED KINGDOM, MARINE SCOTLAND (MS)
+826005 826005 UNITED KINGDOM, PLYMOUTH MARINE LABORATORY (PML)
+826006 826006 UNITED KINGDOM, BRITISH ANTARCTIC SURVEY (BAS)
+840001 840001 USA, NOAA ATLANTIC OCEANOGRAPHIC AND METEOROLOGICAL LABORATORY (AOML)
+840002 840002 USA, NOAA PACIFIC MARINE ENVIRONMENTAL LABORATORY (PMEL)
+840003 840003 USA, SCRIPPS INSTITUTION OF OCEANOGRAPHY (SIO)
+840004 840004 USA, WOODS HOLE OCEANOGRAPHIC INSTITUTION (WHOI)
+840005 840005 USA, UNIVERSITY OF WASHINGTON
+840006 840006 USA, NAVAL OCEANOGRAPHIC OFFICE
+1048575 1048575 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1038.table b/definitions/bufr/tables/0/wmo/41/codetables/1038.table
new file mode 100644
index 000000000..2eee38baf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1038.table
@@ -0,0 +1,7 @@
+0 0 NO SEA ICE SET
+1 1 NSIDC SSM/I CAVALIERI ET AL (1992)
+2 2 AMSR-E
+3 3 ECMWF
+4 4 CMS (FRANCE) CLOUD MASK USED BY MEDSPIRATION
+5 5 EUMETSAT OSI-SAF
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1044.table b/definitions/bufr/tables/0/wmo/41/codetables/1044.table
new file mode 100644
index 000000000..c419e8307
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1044.table
@@ -0,0 +1,9 @@
+0 0 RESERVED
+1 1 FULL WEIGHTED MIXTURE OF INDIVIDUAL QUALITY TESTS
+2 2 WEIGHTED MIXTURE OF INDIVIDUAL TESTS, BUT EXCLUDING FORECAST COMPARISON
+3 3 RECURSIVE FILTER FUNCTION
+4 4 COMMON QUALITY INDEX (QI) WITHOUT FORECAST
+5 5 QI WITHOUT FORECAST
+6 6 QI WITH FORECAST
+7 7 ESTIMATED ERROR IN M/S CONVERTED TO A PERCENT CONFIDENCE
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1052.table b/definitions/bufr/tables/0/wmo/41/codetables/1052.table
new file mode 100644
index 000000000..b8e14ed0f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1052.table
@@ -0,0 +1,4 @@
+0 0 PRIMARY
+1 1 SECONDARY
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1090.table b/definitions/bufr/tables/0/wmo/41/codetables/1090.table
new file mode 100644
index 000000000..55f7ca25d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1090.table
@@ -0,0 +1,5 @@
+0 0 LAGGED-AVERAGE FORECASTING (LAF)
+1 1 BREEDING
+2 2 SINGULAR VECTORS
+3 3 MULTIPLE ANALYSIS CYCLES
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1092.table b/definitions/bufr/tables/0/wmo/41/codetables/1092.table
new file mode 100644
index 000000000..ce982034d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1092.table
@@ -0,0 +1,6 @@
+0 0 UNPERTURBED HIGH-RESOLUTION CONTROL FORECAST
+1 1 UNPERTURBED LOW-RESOLUTION CONTROL FORECAST
+2 2 NEGATIVELY PERTURBED FORECAST
+3 3 POSITIVELY PERTURBED FORECAST
+4 4 PERTURBED FORECAST
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1101.table b/definitions/bufr/tables/0/wmo/41/codetables/1101.table
new file mode 100644
index 000000000..1af4c3b6d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1101.table
@@ -0,0 +1,202 @@
+100 100 ALGERIA
+101 101 ANGOLA
+102 102 BENIN
+103 103 BOTSWANA
+104 104 BURKINA FASO
+105 105 BURUNDI
+106 106 CAMEROON
+107 107 CABO VERDE
+108 108 CENTRAL AFRICAN REPUBLIC
+109 109 CHAD
+110 110 COMOROS
+111 111 CONGO
+112 112 CôTE D'IVOIRE
+113 113 DEMOCRATIC REPUBLIC OF THE CONGO
+114 114 DJIBOUTI
+115 115 EGYPT
+116 116 ERITREA
+117 117 ETHIOPIA
+118 118 FRANCE (RA I)
+119 119 GABON
+120 120 GAMBIA
+121 121 GHANA
+122 122 GUINEA
+123 123 GUINEA-BISSAU
+124 124 KENYA
+125 125 LESOTHO
+126 126 LIBERIA
+127 127 LIBYA
+128 128 MADAGASCAR
+129 129 MALAWI
+130 130 MALI
+131 131 MAURITANIA
+132 132 MAURITIUS
+133 133 MOROCCO
+134 134 MOZAMBIQUE
+135 135 NAMIBIA
+136 136 NIGER
+137 137 NIGERIA
+138 138 PORTUGAL (RA I)
+139 139 RWANDA
+140 140 SAO TOME AND PRINCIPE
+141 141 SENEGAL
+142 142 SEYCHELLES
+143 143 SIERRA LEONE
+144 144 SOMALIA
+145 145 SOUTH AFRICA
+146 146 SPAIN (RA I)
+147 147 SUDAN
+148 148 ESWATINI
+149 149 TOGO
+150 150 TUNISIA
+151 151 UGANDA
+152 152 UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (RA I)
+153 153 UNITED REPUBLIC OF TANZANIA
+154 154 ZAMBIA
+155 155 ZIMBABWE
+200 200 AFGHANISTAN
+201 201 BAHRAIN
+202 202 BANGLADESH
+203 203 BHUTAN
+204 204 CAMBODIA
+205 205 CHINA
+206 206 DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA
+207 207 HONG KONG, CHINA
+208 208 INDIA
+209 209 IRAN, ISLAMIC REPUBLIC OF
+210 210 IRAQ
+211 211 JAPAN
+212 212 KAZAKHSTAN
+213 213 KUWAIT
+214 214 KYRGYZSTAN
+215 215 LAO PEOPLE'S DEMOCRATIC REPUBLIC
+216 216 MACAO, CHINA
+217 217 MALDIVES
+218 218 MONGOLIA
+219 219 MYANMAR
+220 220 NEPAL
+221 221 OMAN
+222 222 PAKISTAN
+223 223 QATAR
+224 224 REPUBLIC OF KOREA
+225 225 YEMEN
+226 226 RUSSIAN FEDERATION (RA II)
+227 227 SAUDI ARABIA
+228 228 SRI LANKA
+229 229 TAJIKISTAN
+230 230 THAILAND
+231 231 TURKMENISTAN
+232 232 UNITED ARAB EMIRATES
+233 233 UZBEKISTAN
+234 234 VIET NAM
+300 300 ARGENTINA
+301 301 BOLIVIA (PLURINATIONAL STATE OF)
+302 302 BRAZIL
+303 303 CHILE
+304 304 COLOMBIA
+305 305 ECUADOR
+306 306 FRANCE (RA III)
+307 307 GUYANA
+308 308 PARAGUAY
+309 309 PERU
+310 310 SURINAME
+311 311 URUGUAY
+312 312 VENEZUELA (BOLIVARIAN REPUBLIC OF)
+400 400 ANTIGUA AND BARBUDA
+401 401 BAHAMAS
+402 402 BARBADOS
+403 403 BELIZE
+404 404 BRITISH CARIBBEAN TERRITORIES
+405 405 CANADA
+406 406 COLOMBIA
+407 407 COSTA RICA
+408 408 CUBA
+409 409 DOMINICA
+410 410 DOMINICAN REPUBLIC
+411 411 EL SALVADOR
+412 412 FRANCE (RA IV)
+413 413 GUATEMALA
+414 414 HAITI
+415 415 HONDURAS
+416 416 JAMAICA
+417 417 MEXICO
+418 418 CURAçAO AND SINT MAARTEN
+419 419 NICARAGUA
+420 420 PANAMA
+421 421 SAINT LUCIA
+422 422 TRINIDAD AND TOBAGO
+423 423 UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (RA IV)
+424 424 UNITED STATES OF AMERICA (RA IV)
+425 425 VENEZUELA (BOLIVARIAN REPUBLIC OF)
+500 500 AUSTRALIA
+501 501 BRUNEI DARUSSALAM
+502 502 COOK ISLANDS
+503 503 FIJI
+504 504 FRENCH POLYNESIA
+505 505 INDONESIA
+506 506 KIRIBATI
+507 507 MALAYSIA
+508 508 MICRONESIA, FEDERATED STATES OF
+509 509 NEW CALEDONIA
+510 510 NEW ZEALAND
+511 511 NIUE
+512 512 PAPUA NEW GUINEA
+513 513 PHILIPPINES
+514 514 SAMOA
+515 515 SINGAPORE
+516 516 SOLOMON ISLANDS
+517 517 TONGA
+518 518 UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (RA V)
+519 519 UNITED STATES OF AMERICA (RA V)
+520 520 VANUATU
+600 600 ALBANIA
+601 601 ARMENIA
+602 602 AUSTRIA
+603 603 AZERBAIJAN
+604 604 BELARUS
+605 605 BELGIUM
+606 606 BOSNIA AND HERZEGOVINA
+607 607 BULGARIA
+608 608 CROATIA
+609 609 CYPRUS
+610 610 CZECHIA
+611 611 DENMARK
+612 612 ESTONIA
+613 613 FINLAND
+614 614 FRANCE (RA VI)
+615 615 GEORGIA
+616 616 GERMANY
+617 617 GREECE
+618 618 HUNGARY
+619 619 ICELAND
+620 620 IRELAND
+621 621 ISRAEL
+622 622 ITALY
+623 623 JORDAN
+624 624 KAZAKHSTAN
+625 625 LATVIA
+626 626 LEBANON
+627 627 LITHUANIA
+628 628 LUXEMBOURG
+629 629 MALTA
+630 630 MONACO
+631 631 MONTENEGRO
+632 632 NETHERLANDS
+633 633 NORWAY
+634 634 POLAND
+635 635 PORTUGAL (RA VI)
+636 636 REPUBLIC OF MOLDOVA
+637 637 ROMANIA
+638 638 RUSSIAN FEDERATION (RA VI)
+639 639 SERBIA
+640 640 SLOVAKIA
+641 641 SLOVENIA
+642 642 SPAIN (RA VI)
+643 643 SWEDEN
+644 644 SWITZERLAND
+645 645 SYRIAN ARAB REPUBLIC
+646 646 THE FORMER YUGOSLAV REPUBLIC OF MACEDONIA
+647 647 REPUBLIC OF TURKIYE
+648 648 UKRAINE
+649 649 UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (RA VI)
+1023 1023 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/11030.table b/definitions/bufr/tables/0/wmo/41/codetables/11030.table
new file mode 100644
index 000000000..253b8fccc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/11030.table
@@ -0,0 +1,25 @@
+0 0 NIL
+1 1 LIGHT
+2 2 MODERATE
+3 3 SEVERE
+4 4 NIL
+5 5 LIGHT
+6 6 MODERATE
+7 7 SEVERE
+8 8 NIL
+9 9 LIGHT
+10 10 MODERATE
+11 11 SEVERE
+12 12 EXTREME, IN CLEAR AIR
+13 13 EXTREME, IN CLOUD
+14 14 EXTREME, CLOUD/CLEAR AIR NOT SPECIFIED
+15 15 LIGHT, ISOLATED MODERATE
+16 16 LIGHT, OCCASIONAL MODERATE
+17 17 LIGHT, FREQUENTLY MODERATE
+18 18 MODERATE, ISOLATED SEVERE
+19 19 MODERATE, OCCASIONAL SEVERE
+20 20 MODERATE, FREQUENTLY SEVERE
+21 21 SEVERE, ISOLATED EXTREME
+22 22 SEVERE, OCCASIONAL EXTREME
+23 23 SEVERE, FREQUENTLY EXTREME
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/11031.table b/definitions/bufr/tables/0/wmo/41/codetables/11031.table
new file mode 100644
index 000000000..7bece1c85
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/11031.table
@@ -0,0 +1,16 @@
+0 0 NIL
+1 1 LIGHT
+2 2 MODERATE
+3 3 SEVERE
+4 4 NIL
+5 5 LIGHT
+6 6 MODERATE
+7 7 SEVERE
+8 8 NIL
+9 9 LIGHT
+10 10 MODERATE
+11 11 SEVERE
+12 12 EXTREME, IN CLEAR AIR
+13 13 EXTREME, IN CLOUD
+14 14 EXTREME, CLOUD/CLEAR AIR NOT SPECIFIED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/11037.table b/definitions/bufr/tables/0/wmo/41/codetables/11037.table
new file mode 100644
index 000000000..e25c9da63
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/11037.table
@@ -0,0 +1,30 @@
+0 0 AVE < 0.1
+1 1 AVE < 0.1
+2 2 0.1 =< AVE < 0.2
+3 3 AVE <0.1
+4 4 0.1 =< AVE < 0.2
+5 5 0.2 =< AVE < 0.3
+6 6 AVE < 0.1
+7 7 0.1 =< AVE < 0.2
+8 8 0.2 =< AVE < 0.3
+9 9 0.3 =< AVE < 0.4
+10 10 AVE < 0.1
+11 11 0.1 =< AVE < 0.2
+12 12 0.2 =< AVE < 0.3
+13 13 0.3 =< AVE < 0.4
+14 14 0.4 =< AVE < 0.5
+15 15 AVE < 0.1
+16 16 0.1 =< AVE < 0.2
+17 17 0.2 =< AVE < 0.3
+18 18 0.3 =< AVE < 0.4
+19 19 0.4 =< AVE < 0.5
+20 20 0.5 =< AVE < 0.8
+21 21 AVE < 0.1
+22 22 0.1 =< AVE < 0.2
+23 23 0.2 =< AVE < 0.3
+24 24 0.3 =< AVE < 0.4
+25 25 0.4 =< AVE < 0.5
+26 26 0.5 =< AVE < 0.8
+27 27 0.8 =< AVE
+28 28 NIL
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/11038.table b/definitions/bufr/tables/0/wmo/41/codetables/11038.table
new file mode 100644
index 000000000..68876b0b6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/11038.table
@@ -0,0 +1,17 @@
+0 0 MIN < 1
+1 1 1 =< MIN < 2
+2 2 2 =< MIN < 3
+3 3 3 =< MIN < 4
+4 4 4 =< MIN < 5
+5 5 5 =< MIN < 6
+6 6 6 =< MIN < 7
+7 7 7 =< MIN < 8
+8 8 8 =< MIN < 9
+9 9 9 =< MIN < 10
+10 10 10 =< MIN < 11
+11 11 11 =< MIN < 12
+12 12 12 =< MIN < 13
+13 13 13 =< MIN < 14
+14 14 14 =< MIN < 15
+15 15 NO TIMING INFORMATION AVAILABLE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/11039.table b/definitions/bufr/tables/0/wmo/41/codetables/11039.table
new file mode 100644
index 000000000..e5af0f23b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/11039.table
@@ -0,0 +1,17 @@
+0 0 MIN < 1
+1 1 1 =< MIN < 2
+2 2 2 =< MIN < 3
+3 3 3 =< MIN < 4
+4 4 4 =< MIN < 5
+5 5 5 =< MIN < 6
+6 6 6 =< MIN < 7
+7 7 7 =< MIN < 8
+8 8 8 =< MIN < 9
+9 9 9 =< MIN < 10
+10 10 10 =< MIN < 11
+11 11 11 =< MIN < 12
+12 12 12 =< MIN < 13
+13 13 13 =< MIN < 14
+14 14 14 =< MIN < 15
+60 60 NO TIMING INFORMATION AVAILABLE
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1150.table b/definitions/bufr/tables/0/wmo/41/codetables/1150.table
new file mode 100644
index 000000000..51d945080
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1150.table
@@ -0,0 +1,7 @@
+0 0 WGS84, AS USED BY ICAO SINCE 1998
+1 1 ETRS89, AS DEFINED BY EPSG:4258
+2 2 NAD83, AS DEFINED BY EPSG:4269
+3 3 DHDN, AS DEFINED BY EPSG:4314
+4 4 ELLIPSOIDAL DATUM USING THE INTERNATIONAL REFERENCE MERIDIAN AND THE INTERNATIONAL REFERENCE POLE AS THE PRIME MERIDIAN AND PRIME POLE, RESPECTIVELY, AND THE ORIGIN OF THE INTERNATIONAL TERRESTRIAL REFERENCE SYSTEM (ITRS). THE INTERNATIONAL REFERENCE MERIDIAN, INTERNATIONAL REFERENCE POLE AND ITRS ARE MAINTAINED BY THE INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
+5 5 EARTH-CENTERED, EARTH-FIXED (ECEF) COORDINATE SYSTEM OR EARTH-CENTRED ROTATIONAL (ECR) SYSTEM. THIS IS A RIGHT-HANDED CARTESIAN COORDINATE SYSTEM (X, Y, Z) ROTATING WITH THE EARTH. THE ORIGIN IS DEFINED BY THE CENTRE OF MASS OF THE EARTH. (FOOTNOTE (5) OF CLASS 27 DOES NOT APPLY IF ECEF COORDINATES ARE SPECIFIED.)
+65535 65535 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1151.table b/definitions/bufr/tables/0/wmo/41/codetables/1151.table
new file mode 100644
index 000000000..8907f2371
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1151.table
@@ -0,0 +1,3 @@
+0 0 EARTH GRAVITATIONAL MODEL 1996
+1 1 BALTIC HEIGHT SYSTEM 1977
+4095 4095 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/1155.table b/definitions/bufr/tables/0/wmo/41/codetables/1155.table
new file mode 100644
index 000000000..0a19ec174
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/1155.table
@@ -0,0 +1,7 @@
+0 0 STANDARD CORRECT ALGORITHM (SCA)
+1 1 STANDARD CORRECT ALGORITHM MID-BIN (SCA MID-BIN)
+2 2 MAXIMUM LIKELIHOOD ESTIMATION (MLE)
+3 3 OPTIMAL ESTIMATION PROFILE (OE-PRO)
+4 4 GROUP
+5 5 GROUP MID-BIN
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13038.table b/definitions/bufr/tables/0/wmo/41/codetables/13038.table
new file mode 100644
index 000000000..19bc42216
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13038.table
@@ -0,0 +1,4 @@
+0 0 NOT SUPERADIABATIC
+1 1 SUPERADIABATIC
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13039.table b/definitions/bufr/tables/0/wmo/41/codetables/13039.table
new file mode 100644
index 000000000..c070b1da9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13039.table
@@ -0,0 +1,3 @@
+0 0 SEA ICE
+1 1 SNOW ON LAND
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13040.table b/definitions/bufr/tables/0/wmo/41/codetables/13040.table
new file mode 100644
index 000000000..30cccb03b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13040.table
@@ -0,0 +1,13 @@
+0 0 LAND
+1 1 RESERVED
+2 2 NEAR COAST
+3 3 ICE
+4 4 POSSIBLE ICE
+5 5 OCEAN
+6 6 COAST
+7 7 INLAND WATER
+8 8 SNOW COVER
+9 9 SEA ICE
+10 10 STANDING WATER
+11 11 SNOW
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13041.table b/definitions/bufr/tables/0/wmo/41/codetables/13041.table
new file mode 100644
index 000000000..9e77b6466
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13041.table
@@ -0,0 +1,10 @@
+1 1 A
+2 2 A - B
+3 3 B
+4 4 B - C
+5 5 C
+6 6 D
+7 7 E
+8 8 F
+9 9 G
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13051.table b/definitions/bufr/tables/0/wmo/41/codetables/13051.table
new file mode 100644
index 000000000..4bdb73e71
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13051.table
@@ -0,0 +1,8 @@
+0 0 SMALLER THAN ANY VALUE IN THE 30-YEAR PERIOD
+1 1 IN THE FIRST QUINTILE
+2 2 IN THE SECOND QUINTILE
+3 3 IN THE THIRD QUINTILE
+4 4 IN THE FOURTH QUINTILE
+5 5 IN THE FIFTH QUINTILE
+6 6 GREATER THAN ANY VALUE IN THE 30-YEAR PERIOD
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13056.table b/definitions/bufr/tables/0/wmo/41/codetables/13056.table
new file mode 100644
index 000000000..448c26927
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13056.table
@@ -0,0 +1,11 @@
+0 0 NO PRECIPITATION
+1 1 LIGHT INTERMITTENT
+2 2 MODERATE INTERMITTENT
+3 3 HEAVY INTERMITTENT
+4 4 VERY HEAVY INTERMITTENT
+5 5 LIGHT CONTINUOUS
+6 6 MODERATE CONTINUOUS
+7 7 HEAVY CONTINUOUS
+8 8 VERY HEAVY CONTINUOUS
+9 9 VARIABLE - ALTERNATIVELY LIGHT AND HEAVY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/13057.table b/definitions/bufr/tables/0/wmo/41/codetables/13057.table
new file mode 100644
index 000000000..6dfa18dd0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/13057.table
@@ -0,0 +1,11 @@
+0 0 NO PRECIPITATION
+1 1 WITHIN THE LAST HOUR
+2 2 1 TO 2 HOURS AGO
+3 3 2 TO 3 HOURS AGO
+4 4 3 TO 4 HOURS AGO
+5 5 4 TO 5 HOURS AGO
+6 6 5 TO 6 HOURS AGO
+7 7 6 TO 8 HOURS AGO
+8 8 8 TO 10 HOURS AGO
+9 9 MORE THAN 10 HOURS AGO
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/15025.table b/definitions/bufr/tables/0/wmo/41/codetables/15025.table
new file mode 100644
index 000000000..6bb6ed508
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/15025.table
@@ -0,0 +1,4 @@
+0 0 OZONE
+11 11 FINE PARTICULATE MATTER (DIAMETER < 2.5 MICRONS)
+12 12 FINE PARTICULATE MATTER (DIAMETER < 10 MICRONS)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19001.table b/definitions/bufr/tables/0/wmo/41/codetables/19001.table
new file mode 100644
index 000000000..af893eb9a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19001.table
@@ -0,0 +1,7 @@
+0 0 DEPRESSION OR LOW (EXTRATROPLCAL)
+1 1 TROPICAL DEPRESSION
+2 2 TROPICAL STORM
+3 3 SEVERE TROPICAL STORM
+4 4 TYPHOON
+10 10 DUST/SANDSTORM
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19008.table b/definitions/bufr/tables/0/wmo/41/codetables/19008.table
new file mode 100644
index 000000000..3bcb5195a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19008.table
@@ -0,0 +1,5 @@
+0 0 RESERVED
+1 1 SHALLOW (TOP OF CIRCULATION BELOW 700-HPA LEVEL)
+2 2 MEDIUM (TOP BETWEEN 700-HPA AND 400-HPA LEVEL)
+3 3 DEEP (TOP ABOVE 400-HPA LEVEL)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19010.table b/definitions/bufr/tables/0/wmo/41/codetables/19010.table
new file mode 100644
index 000000000..b091d96f0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19010.table
@@ -0,0 +1,3 @@
+1 1 MINIMUM VALUE OF SEA LEVEL PRESSURE
+2 2 MAXIMUM VALUE OF 850 HPA RELATIVE VORTICITY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19100.table b/definitions/bufr/tables/0/wmo/41/codetables/19100.table
new file mode 100644
index 000000000..1f03a6f1b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19100.table
@@ -0,0 +1,9 @@
+3 3 DURING THE PRECEDING 15 MINUTES
+4 4 DURING THE PRECEDING 30 MINUTES
+5 5 DURING THE PRECEDING 1 HOUR
+6 6 DURING THE PRECEDING 2 HOURS
+7 7 DURING THE PRECEDING 3 HOURS
+8 8 DURING THE PRECEDING 6 HOURS
+9 9 DURING A PERIOD OF MORE THAN 6 HOURS
+10 10 UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19101.table b/definitions/bufr/tables/0/wmo/41/codetables/19101.table
new file mode 100644
index 000000000..0cd1ff4a6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19101.table
@@ -0,0 +1,10 @@
+0 0 RESERVED
+1 1 EYE VISIBLE ON RADAR SCOPE, ACCURACY GOOD (WITHIN 10 KM)
+2 2 EYE VISIBLE ON RADAR SCOPE, ACCURACY FAIR (WITHIN 30 KM)
+3 3 EYE VISIBLE ON RADAR SCOPE, ACCURACY POOR (WITHIN 50 KM)
+4 4 POSITION OF THE CENTRE WITHIN THE AREA COVERED BY THE RADAR SCOPE, DETERMINATION BY MEANS OF THE SPIRAL-BAND OVERLAY, ACCURACY GOOD (WITHIN 10 KM)
+5 5 POSITION OF THE CENTRE WITHIN THE AREA COVERED BY THE RADAR SCOPE, DETERMINATION BY MEANS OF THE SPIRAL-BAND OVERLAY, ACCURACY FAIR (WITHIN 30 KM)
+6 6 POSITION OF THE CENTRE WITHIN THE AREA COVERED BY THE RADAR SCOPE, DETERMINATION BY MEANS OF THE SPIRAL-BAND OVERLAY, ACCURACY POOR (WITHIN 50 KM)
+7 7 POSITION OF THE CENTRE OUTSIDE THE AREA COVERED BY THE RADAR SCOPE, EXTRAPOLATION BY MEANS OF THE SPIRAL-BAND OVERLAY
+10 10 ACCURACY UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19102.table b/definitions/bufr/tables/0/wmo/41/codetables/19102.table
new file mode 100644
index 000000000..21ab7756b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19102.table
@@ -0,0 +1,8 @@
+0 0 CIRCULAR
+1 1 ELLIPTICAL - THE MINOR AXIS IS AT LEAST 3/4 THE LENGTH OF THE MAJOR AXIS
+2 2 ELLIPTICAL - THE MINOR AXIS IS LESS THAN 3/4 THE LENGTH OF THE MAJOR AXIS
+3 3 APPARENT DOUBLE EYE
+4 4 OTHER SHAPE
+5 5 ILL DEFINED
+6 6 UNDETERMINED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19103.table b/definitions/bufr/tables/0/wmo/41/codetables/19103.table
new file mode 100644
index 000000000..3abb184f8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19103.table
@@ -0,0 +1,12 @@
+0 0 LESS THAN 5 KM
+1 1 5 TO LESS THAN 10 KM
+2 2 10 TO LESS THAN 15 KM
+3 3 15 TO LESS THAN 20 KM
+4 4 20 TO LESS THAN 25 KM
+5 5 25 TO LESS THAN 30 KM
+6 6 30 TO LESS THAN 35 KM
+7 7 35 TO LESS THAN 40 KM
+8 8 40 TO LESS THAN 50 KM
+9 9 50 KM AND GREATER
+10 10 UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19104.table b/definitions/bufr/tables/0/wmo/41/codetables/19104.table
new file mode 100644
index 000000000..67ae47479
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19104.table
@@ -0,0 +1,12 @@
+0 0 EYE HAS FIRST BECOME VISIBLE DURING THE PAST 30 MINUTES
+1 1 NO SIGNIFICANT CHANGE IN THE CHARACTERISTICS OR SIZE OF THE EYE
+2 2 EYE HAS BECOME SMALLER WITH NO OTHER SIGNIFICANT CHANGE IN CHARACTERISTICS
+3 3 EYE HAS BECOME LARGER WITH NO OTHER SIGNIFICANT CHANGE IN CHARACTERISTICS
+4 4 EYE HAS BECOME LESS DISTINCT WITH NO SIGNIFICANT CHANGE IN SIZE
+5 5 EYE HAS BECOME LESS DISTINCT AND DECREASED IN SIZE
+6 6 EYE HAS BECOME LESS DISTINCT AND INCREASED IN SIZE
+7 7 EYE HAS BECOME MORE DISTINCT WITH NO SIGNIFICANT CHANGE IN SIZE
+8 8 EYE HAS BECOME MORE DISTINCT AND DECREASED IN SIZE
+9 9 EYE HAS BECOME MORE DISTINCT AND INCREASED IN SIZE
+10 10 CHANGE IN CHARACTER AND SIZE OF EYE CANNOT BE DETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19105.table b/definitions/bufr/tables/0/wmo/41/codetables/19105.table
new file mode 100644
index 000000000..becfceea8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19105.table
@@ -0,0 +1,10 @@
+0 0 0 TO LESS THAN 100 KM
+1 1 100 TO LESS THAN 200 KM
+2 2 200 TO LESS THAN 300 KM
+3 3 300 TO LESS THAN 400 KM
+4 4 400 TO LESS THAN 500 KM
+5 5 500 TO LESS THAN 600 KM
+6 6 600 TO LESS THAN 800 KM
+7 7 800 KM OR MORE
+10 10 DOUBTFUL OR UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19107.table b/definitions/bufr/tables/0/wmo/41/codetables/19107.table
new file mode 100644
index 000000000..ed6b79c54
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19107.table
@@ -0,0 +1,11 @@
+0 0 LESS THAN 1 HOUR
+1 1 1 TO LESS THAN 2 HOURS
+2 2 2 TO LESS THAN 3 HOURS
+3 3 3 TO LESS THAN 6 HOURS
+4 4 6 TO LESS THAN 9 HOURS
+5 5 9 TO LESS THAN 12 HOURS
+6 6 12 TO LESS THAN 15 HOURS
+7 7 15 TO LESS THAN 18 HOURS
+8 8 18 TO LESS THAN 21 HOURS
+9 9 21 TO LESS THAN 30 HOURS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19108.table b/definitions/bufr/tables/0/wmo/41/codetables/19108.table
new file mode 100644
index 000000000..9350bc265
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19108.table
@@ -0,0 +1,8 @@
+0 0 CYCLONE CENTRE WITHIN 10 KM OF THE TRANSMITTED POSITION
+1 1 CYCLONE CENTRE WITHIN 20 KM OF THE TRANSMITTED POSITION
+2 2 CYCLONE CENTRE WITHIN 50 KM OF THE TRANSMITTED POSITION
+3 3 CYCLONE CENTRE WITHIN 100 KM OF THE TRANSMITTED POSITION
+4 4 CYCLONE CENTRE WITHIN 200 KM OF THE TRANSMITTED POSITION
+5 5 CYCLONE CENTRE WITHIN 300 KM OF THE TRANSMITTED POSITION
+6 6 CYCLONE CENTRE UNDETERMINED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19109.table b/definitions/bufr/tables/0/wmo/41/codetables/19109.table
new file mode 100644
index 000000000..3d236291d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19109.table
@@ -0,0 +1,12 @@
+0 0 LESS THAN 1 DEG OF LATITUDE
+1 1 1 DEG TO LESS THAN 2 DEG OF LATITUDE
+2 2 2 DEG TO LESS THAN 3 DEG OF LATITUDE
+3 3 3 DEG TO LESS THAN 4 DEG OF LATITUDE
+4 4 4 DEG TO LESS THAN 5 DEG OF LATITUDE
+5 5 5 DEG TO LESS THAN 6 DEG OF LATITUDE
+6 6 6 DEG TO LESS THAN 7 DEG OF LATITUDE
+7 7 7 DEG TO LESS THAN 8 DEG OF LATITUDE
+8 8 8 DEG TO LESS THAN 9 DEG OF LATITUDE
+9 9 9 DEG OF LATITUDE OR MORE
+10 10 UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19110.table b/definitions/bufr/tables/0/wmo/41/codetables/19110.table
new file mode 100644
index 000000000..81f4f593c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19110.table
@@ -0,0 +1,8 @@
+0 0 MUCH WEAKENING
+1 1 WEAKENING
+2 2 NO CHANGE
+3 3 INTENSIFICATION
+4 4 STRONG INTENSIFICATION
+9 9 NOT OBSERVED PREVIOUSLY
+10 10 UNDETERMINED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19113.table b/definitions/bufr/tables/0/wmo/41/codetables/19113.table
new file mode 100644
index 000000000..ba46dca88
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19113.table
@@ -0,0 +1,8 @@
+1 1 CURVED BAND
+2 2 SHEAR
+3 3 EYE
+4 4 BANDING EYE
+5 5 CENTRAL DENSE OVERCAST (CDO)
+6 6 EMBEDDED CENTRE
+7 7 CENTRE COLD COVER (CCC)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19117.table b/definitions/bufr/tables/0/wmo/41/codetables/19117.table
new file mode 100644
index 000000000..b623197a3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19117.table
@@ -0,0 +1,4 @@
+1 1 A (CURVED BAND)
+2 2 B (CDO)
+3 3 C (SHEAR)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/19119.table b/definitions/bufr/tables/0/wmo/41/codetables/19119.table
new file mode 100644
index 000000000..8329a8a58
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/19119.table
@@ -0,0 +1,4 @@
+1 1 DT-NUMBER
+2 2 PT-NUMBER
+3 3 MET-NUMBER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20003.table b/definitions/bufr/tables/0/wmo/41/codetables/20003.table
new file mode 100644
index 000000000..1414361a2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20003.table
@@ -0,0 +1,266 @@
+0 0 CLOUD DEVELOPMENT NOT OBSERVED OR NOT OBSERVABLE
+1 1 CLOUDS GENERALLY DISSOLVING OR BECOMING LESS DEVELOPED
+2 2 STATE OF SKY ON THE WHOLE UNCHANGED
+3 3 CLOUDS GENERALLY FORMING OR DEVELOPING
+4 4 VISIBILITY REDUCED BY SMOKE, E.G. VELDT OR FOREST FIRES, INDUSTRIAL SMOKE OR VOLCANIC ASHES
+5 5 HAZE
+6 6 WIDESPREAD DUST IN SUSPENSION IN THE AIR, NOT RAISED BY WIND AT OR NEAR THE STATION AT THE TIME OF OBSERVATION
+7 7 DUST OR SAND RAISED BY WIND AT OR NEAR THE STATION AT THE TIME OF OBSERVATION, BUT NO WELL-DEVELOPED DUST WHIRL(S) OR SAND WHIRL(S), AND NO DUSTSTORM OR SANDSTORM SEEN; OR, IN THE CASE OF SEA STATIONS AND COASTAL STATIONS, BLOWING SPRAY AT THE STATION
+8 8 WELL-DEVELOPED DUST WHIRL(S) OR SAND WHIRL(S) SEEN AT OR NEAR THE STATION DURING THE PRECEDING HOUR OR AT THE SAME TIME OF OBSERVATION, BUT NO DUSTSTORM OR SANDSTORM
+9 9 DUSTSTORM OR SANDSTORM WITHIN SIGHT AT THE TIME OF OBSERVATION, OR AT THE STATION DURING THE PRECEDING HOUR
+10 10 MIST
+11 11 PATCHES
+12 12 MORE OR LESS CONTINUOUS
+13 13 LIGHTNING VISIBLE, NO THUNDER HEARD
+14 14 PRECIPITATION WITHIN SIGHT, NOT REACHING THE GROUND OR THE SURFACE OF THE SEA
+15 15 PRECIPITATION WITHIN SIGHT, REACHING THE GROUND OR THE SURFACE OF THE SEA, BUT DISTANT, I.E. ESTIMATED TO BE MORE THAN 5 KM FROM THE STATION
+16 16 PRECIPITATION WITHIN SIGHT, REACHING THE GROUND OR THE SURFACE OF THE SEA, NEAR TO, BUT NOT AT THE STATION
+17 17 THUNDERSTORM, BUT NO PRECIPITATION AT THE TIME OF OBSERVATION
+18 18 SQUALLS
+19 19 FUNNEL CLOUD(S)
+20 20 DRIZZLE (NOT FREEZING) OR SNOW GRAINS
+21 21 RAIN (NOT FREEZING)
+22 22 SNOW
+23 23 RAIN AND SNOW OR ICE PELLETS
+24 24 FREEZING DRIZZLE OR FREEZING RAIN
+25 25 SHOWER(S) OF RAIN
+26 26 SHOWER(S) OF SNOW, OR OF RAIN AND SNOW
+27 27 SHOWER(S) OF HAIL, OR OF RAIN AND HAIL
+28 28 FOG OR ICE FOG
+29 29 THUNDERSTORM (WITH OR WITHOUT PRECIPITATION)
+30 30 SLIGHT OR MODERATE DUSTSTORM OR SANDSTORM
+31 31 SLIGHT OR MODERATE DUSTSTORM OR SANDSTORM
+32 32 SLIGHT OR MODERATE DUSTSTORM OR SANDSTORM
+33 33 SEVERE DUSTSTORM OR SANDSTORM
+34 34 SEVERE DUSTSTORM OR SANDSTORM
+35 35 SEVERE DUSTSTORM OR SANDSTORM
+36 36 SLIGHT OR MODERATE DRIFTING SNOW
+37 37 HEAVY DRIFTING SNOW
+38 38 SLIGHT OR MODERATE BLOWING SNOW
+39 39 HEAVY BLOWING SNOW
+40 40 FOG OR ICE FOG AT A DISTANCE AT THE TIME OF OBSERVATION, BUT NOT AT THE STATION DURING THE PRECEDING HOUR, THE FOG OR ICE FOG EXTENDING TO A LEVEL ABOVE THAT OF THE OBSERVER
+41 41 FOG OR ICE FOG IN PATCHES
+42 42 FOG OR ICE FOG, SKY VISIBLE
+43 43 FOG OR ICE FOG, SKY INVISIBLE
+44 44 FOG OR ICE FOG, SKY VISIBLE
+45 45 FOG OR ICE FOG, SKY INVISIBLE
+46 46 FOG OR ICE FOG, SKY VISIBLE
+47 47 FOG OR ICE FOG, SKY INVISIBLE
+48 48 FOG, DEPOSITING RIME, SKY VISIBLE
+49 49 FOG, DEPOSITING RIME, SKY INVISIBLE
+50 50 DRIZZLE, NOT FREEZING, INTERMITTENT
+51 51 DRIZZLE, NOT FREEZING, CONTINUOUS
+52 52 DRIZZLE, NOT FREEZING, INTERMITTENT
+53 53 DRIZZLE, NOT FREEZING, CONTINUOUS
+54 54 DRIZZLE, NOT FREEZING, INTERMITTENT
+55 55 DRIZZLE, NOT FREEZING, CONTINUOUS
+56 56 DRIZZLE, FREEZING, SLIGHT
+57 57 DRIZZLE, FREEZING, MODERATE OR HEAVY (DENSE)
+58 58 DRIZZLE AND RAIN, SLIGHT
+59 59 DRIZZLE AND RAIN, MODERATE OR HEAVY
+60 60 RAIN, NOT FREEZING, INTERMITTENT
+61 61 RAIN, NOT FREEZING, CONTINUOUS
+62 62 RAIN, NOT FREEZING, INTERMITTENT
+63 63 RAIN, NOT FREEZING, CONTINUOUS
+64 64 RAIN, NOT FREEZING, INTERMITTENT
+65 65 RAIN, NOT FREEZING, CONTINUOUS
+66 66 RAIN, FREEZING, SLIGHT
+67 67 RAIN, FREEZING, MODERATE OR HEAVY
+68 68 RAIN OR DRIZZLE AND SNOW, SLIGHT
+69 69 RAIN OR DRIZZLE AND SNOW, MODERATE OR HEAVY
+70 70 INTERMITTENT FALL OF SNOWFLAKES
+71 71 CONTINUOUS FALL OF SNOWFLAKES
+72 72 INTERMITTENT FALL OF SNOWFLAKES
+73 73 CONTINUOUS FALL OF SNOWFLAKES
+74 74 INTERMITTENT FALL OF SNOWFLAKES
+75 75 CONTINUOUS FALL OF SNOWFLAKES
+76 76 DIAMOND DUST (WITH OR WITHOUT FOG)
+77 77 SNOW GRAINS (WITH OR WITHOUT FOG)
+78 78 ISOLATED STAR-LIKE SNOW CRYSTALS (WITH OR WITHOUT FOG)
+79 79 ICE PELLETS
+80 80 RAIN SHOWER(S), SLIGHT
+81 81 RAIN SHOWER(S), MODERATE OR HEAVY
+82 82 RAIN SHOWER(S), VIOLENT
+83 83 SHOWER(S) OF RAIN AND SNOW MIXED, SLIGHT
+84 84 SHOWER(S) OF RAIN AND SNOW MIXED, MODERATE OR HEAVY
+85 85 SNOW SHOWER(S), SLIGHT
+86 86 SNOW SHOWER(S), MODERATE OR HEAVY
+87 87 SHOWER(S) OF SNOW PELLETS OR SMALL HAIL, WITH OR WITHOUT RAIN OR RAIN AND SNOW MIXED
+88 88 SHOWER(S) OF SNOW PELLETS OR SMALL HAIL, WITH OR WITHOUT RAIN OR RAIN AND SNOW MIXED
+89 89 SHOWER(S) OF HAIL, WITH OR WITHOUT RAIN OR RAIN AND SNOW MIXED, NOT ASSOCIATED WITH THUNDER
+90 90 SHOWER(S) OF HAIL, WITH OR WITHOUT RAIN OR RAIN AND SNOW MIXED, NOT ASSOCIATED WITH THUNDER
+91 91 SLIGHT RAIN AT TIME OF OBSERVATION
+92 92 MODERATE OR HEAVY RAIN AT TIME OF OBSERVATION
+93 93 SLIGHT SNOW, OR RAIN AND SNOW MIXED OR HAIL AT TIME OF OBSERVATION
+94 94 MODERATE OR HEAVY SNOW, OR RAIN AND SNOW MIXED OR HAIL AT TIME OF OBSERVATION
+95 95 THUNDERSTORM, SLIGHT OR MODERATE, WITHOUT HAIL, BUT WITH RAIN AND/OR SNOW AT TIME OF OBSERVATION
+96 96 THUNDERSTORM, SLIGHT OR MODERATE, WITH HAIL AT TIME OF OBSERVATION
+97 97 THUNDERSTORM, HEAVY, WITHOUT HAIL, BUT WITH RAIN AND/OR SNOW AT TIME OF OBSERVATION
+98 98 THUNDERSTORM COMBINED WITH DUSTSTORM OR SANDSTORM AT TIME OF OBSERVATION
+99 99 THUNDERSTORM, HEAVY, WITH HAIL AT TIME OF OBSERVATION
+100 100 NO SIGNIFICANT WEATHER OBSERVED
+101 101 CLOUDS GENERALLY DISSOLVING OR BECOMING LESS DEVELOPED DURING THE PAST HOUR
+102 102 STATE OF SKY ON THE WHOLE UNCHANGED DURING THE PAST HOUR
+103 103 CLOUDS GENERALLY FORMING OR DEVELOPING DURING THE PAST HOUR
+104 104 HAZE OR SMOKE, OR DUST IN SUSPENSION IN THE AIR, VISIBILITY EQUAL TO, OR GREATER THAN, 1 KM
+105 105 HAZE OR SMOKE, OR DUST IN SUSPENSION IN THE AIR, VISIBILITY LESS THAN 1 KM
+110 110 MIST
+111 111 DIAMOND DUST
+112 112 DISTANT LIGHTNING
+118 118 SQUALLS
+119 119 RESERVED
+120 120 FOG
+121 121 PRECIPITATION
+122 122 DRIZZLE (NOT FREEZING) OR SNOW GRAINS
+123 123 RAIN (NOT FREEZING)
+124 124 SNOW
+125 125 FREEZING DRIZZLE OR FREEZING RAIN
+126 126 THUNDERSTORM (WITH OR WITHOUT PRECIPITATION)
+127 127 BLOWING OR DRIFTING SNOW OR SAND
+128 128 BLOWING OR DRIFTING SNOW OR SAND, VISIBILITY EQUAL TO, OR GREATER THAN, 1 KM
+129 129 BLOWING OR DRIFTING SNOW OR SAND, VISIBILITY LESS THAN 1 KM
+130 130 FOG
+131 131 FOG OR ICE FOG IN PATCHES
+132 132 FOG OR ICE FOG, HAS BECOME THINNER DURING THE PAST HOUR
+133 133 FOG OR ICE FOG, NO APPRECIABLE CHANGE DURING THE PAST HOUR
+134 134 FOG OR ICE FOG, HAS BEGUN OR BECOME THICKER DURING THE PAST HOUR
+135 135 FOG, DEPOSITING RIME
+140 140 PRECIPITATION
+141 141 PRECIPITATION, SLIGHT OR MODERATE
+142 142 PRECIPITATION, HEAVY
+143 143 LIQUID PRECIPITATION, SLIGHT OR MODERATE
+144 144 LIQUID PRECIPITATION, HEAVY
+145 145 SOLID PRECIPITATION, SLIGHT OR MODERATE
+146 146 SOLID PRECIPITATION, HEAVY
+147 147 FREEZING PRECIPITATION, SLIGHT OR MODERATE
+148 148 FREEZING PRECIPITATION, HEAVY
+149 149 RESERVED
+150 150 DRIZZLE
+151 151 DRIZZLE, NOT FREEZING, SLIGHT
+152 152 DRIZZLE, NOT FREEZING, MODERATE
+153 153 DRIZZLE, NOT FREEZING, HEAVY
+154 154 DRIZZLE, FREEZING, SLIGHT
+155 155 DRIZZLE, FREEZING, MODERATE
+156 156 DRIZZLE, FREEZING, HEAVY
+157 157 DRIZZLE AND RAIN, SLIGHT
+158 158 DRIZZLE AND RAIN, MODERATE OR HEAVY
+159 159 RESERVED
+160 160 RAIN
+161 161 RAIN, NOT FREEZING, SLIGHT
+162 162 RAIN, NOT FREEZING, MODERATE
+163 163 RAIN, NOT FREEZING, HEAVY
+164 164 RAIN, FREEZING, SLIGHT
+165 165 RAIN, FREEZING, MODERATE
+166 166 RAIN, FREEZING, HEAVY
+167 167 RAIN (OR DRIZZLE) AND SNOW, SLIGHT
+168 168 RAIN (OR DRIZZLE) AND SNOW, MODERATE OR HEAVY
+169 169 RESERVED
+170 170 SNOW
+171 171 SNOW, SLIGHT
+172 172 SNOW, MODERATE
+173 173 SNOW, HEAVY
+174 174 ICE PELLETS, SLIGHT
+175 175 ICE PELLETS, MODERATE
+176 176 ICE PELLETS, HEAVY
+177 177 SNOW GRAINS
+178 178 ICE CRYSTALS
+179 179 RESERVED
+180 180 SHOWER(S) OR INTERMITTENT PRECIPITATION
+181 181 RAIN SHOWER(S) OR INTERMITTENT RAIN, SLIGHT
+182 182 RAIN SHOWER(S) OR INTERMITTENT RAIN, MODERATE
+183 183 RAIN SHOWER(S) OR INTERMITTENT RAIN, HEAVY
+184 184 RAIN SHOWER(S) OR INTERMITTENT RAIN, VIOLENT
+185 185 SNOW SHOWER(S) OR INTERMITTENT SNOW, SLIGHT
+186 186 SNOW SHOWER(S) OR INTERMITTENT SNOW, MODERATE
+187 187 SNOW SHOWER(S) OR INTERMITTENT SNOW, HEAVY
+188 188 RESERVED
+189 189 HAIL
+190 190 THUNDERSTORM
+191 191 THUNDERSTORM, SLIGHT OR MODERATE, WITH NO PRECIPITATION
+192 192 THUNDERSTORM, SLIGHT OR MODERATE, WITH RAIN SHOWERS AND/OR SNOW SHOWERS
+193 193 THUNDERSTORM, SLIGHT OR MODERATE, WITH HAIL
+194 194 THUNDERSTORM, HEAVY, WITH NO PRECIPITATION
+195 195 THUNDERSTORM, HEAVY, WITH RAIN SHOWERS AND/OR SNOW SHOWERS
+196 196 THUNDERSTORM, HEAVY, WITH HAIL
+199 199 TORNADO
+204 204 VOLCANIC ASH SUSPENDED IN THE AIR ALOFT
+205 205 NOT USED
+206 206 THICK DUST HAZE, VISIBILITY LESS THAN 1 KM
+207 207 BLOWING SPRAY AT THE STATION
+208 208 DRIFTING DUST (SAND)
+209 209 WALL OF DUST OR SAND IN DISTANCE (LIKE HABOOB)
+210 210 SNOW HAZE
+211 211 WHITEOUT
+212 212 NOT USED
+213 213 LIGHTNING, CLOUD TO SURFACE
+217 217 DRY THUNDERSTORM
+218 218 NOT USED
+219 219 TORNADO CLOUD (DESTRUCTIVE) AT OR WITHIN SIGHT OF THE STATION DURING PRECEDING HOUR OR AT THE TIME OF OBSERVATION
+220 220 DEPOSITION OF VOLCANIC ASH
+221 221 DEPOSITION OF DUST OR SAND
+222 222 DEPOSITION OF DEW
+223 223 DEPOSITION OF WET SNOW
+224 224 DEPOSITION OF SOFT RIME
+225 225 DEPOSITION OF HARD RIME
+226 226 DEPOSITION OF HOAR FROST
+227 227 DEPOSITION OF GLAZE
+228 228 DEPOSITION OF ICE CRUST (ICE SLICK)
+229 229 NOT USED
+230 230 DUSTSTORM OR SANDSTORM WITH TEMPERATURE BELOW 0 DEG C
+239 239 BLOWING SNOW, IMPOSSIBLE TO DETERMINE WHETHER SNOW IS FALLING OR NOT
+240 240 NOT USED
+241 241 FOG ON SEA
+242 242 FOG IN VALLEYS
+243 243 ARCTIC OR ANTARCTIC SEA SMOKE
+244 244 STEAM FOG (SEA, LAKE OR RIVER)
+245 245 STEAM LOG (LAND)
+246 246 FOG OVER ICE OR SNOW COVER
+247 247 DENSE FOG, VISIBILITY 60-90 M
+248 248 DENSE FOG, VISIBILITY 30-60 M
+249 249 DENSE FOG, VISIBILITY LESS THAN 30 M
+250 250 DRIZZLE, RATE OF FALL - LESS THAN 0.10 MM H-1
+251 251 DRIZZLE, RATE OF FALL - 0.10-0.19 MM H-1
+252 252 DRIZZLE, RATE OF FALL - 0.20-0.39 MM H-1
+253 253 DRIZZLE, RATE OF FALL - 0.40-0.79 MM H-1
+254 254 DRIZZLE, RATE OF FALL - 0.80-1.59 MM H-1
+255 255 DRIZZLE, RATE OF FALL - 1.60-3.19 MM H-1
+256 256 DRIZZLE, RATE OF FALL - 3.20-6.39 MM H-1
+257 257 DRIZZLE, RATE OF FALL - 6.4 MM H-1 OR MORE
+258 258 NOT USED
+259 259 DRIZZLE AND SNOW
+260 260 RAIN, RATE OF FALL - LESS THAN 1.0 MM H-1
+261 261 RAIN, RATE OF FALL - 1.0-1.9 MM H-1
+262 262 RAIN, RATE OF FALL - 2.0-3.9 MM H-1
+263 263 RAIN, RATE OF FALL - 4.0-7.9 MM H-1
+264 264 RAIN, RATE OF FALL - 8.0-15.9 MM H-1
+265 265 RAIN, RATE OF FALL - 16.0-31.9 MM H-1
+266 266 RAIN, RATE OF FALL - 32.0-63.9 MM H-1
+267 267 RAIN, RATE OF FALL - 64.0 MM H-1 OR MORE
+270 270 SNOW, RATE OF FALL - LESS THAN 1.0 CM H-1
+271 271 SNOW, RATE OF FALL - 1.0-1.9 CM H-1
+272 272 SNOW, RATE OF FALL - 2.0-3.9 CM H-1
+273 273 SNOW, RATE OF FALL - 4.0-7.9 CM H-1
+274 274 SNOW, RATE OF FALL - 8.0-15.9 CM H-1
+275 275 SNOW, RATE OF FALL - 16.0-31.9 CM H-1
+276 276 SNOW, RATE OF FALL - 32.0-63.9 CM H-1
+277 277 SNOW, RATE OF FALL - 64.0 CM H-1 OR MORE
+278 278 SNOW OR ICE CRYSTAL PRECIPITATION FROM A CLEAR SKY
+279 279 WET SNOW, FREEZING ON CONTACT
+280 280 PRECIPITATION OF RAIN
+281 281 PRECIPITATION OF RAIN, FREEZING
+282 282 PRECIPITATION OF RAIN AND SNOW MIXED
+283 283 PRECIPITATION OF SNOW
+284 284 PRECIPITATION OF SNOW PELLETS OR SMALL HALL
+285 285 PRECIPITATION OF SNOW PELLETS OR SMALL HAIL, WITH RAIN
+286 286 PRECIPITATION OF SNOW PELLETS OR SMALL HAIL, WITH RAIN AND SNOW MIXED
+287 287 PRECIPITATION OF SNOW PELLETS OR SMALL HAIL, WITH SNOW
+288 288 PRECIPITATION OF HAIL
+289 289 PRECIPITATION OF HAIL, WITH RAIN
+290 290 PRECIPITATION OF HALL, WITH RAIN AND SNOW MIXED
+291 291 PRECIPITATION OF HAIL, WITH SNOW
+292 292 SHOWER(S) OR THUNDERSTORM OVER SEA
+293 293 SHOWER(S) OR THUNDERSTORM OVER MOUNTAINS
+508 508 NO SIGNIFICANT PHENOMENON TO REPORT, PRESENT AND PAST WEATHER OMITTED
+509 509 NO OBSERVATION, DATA NOT AVAILABLE, PRESENT AND PAST WEATHER OMITTED
+510 510 PRESENT AND PAST WEATHER MISSING, BUT EXPECTED
+511 511 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20004.table b/definitions/bufr/tables/0/wmo/41/codetables/20004.table
new file mode 100644
index 000000000..f3d3024d8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20004.table
@@ -0,0 +1,21 @@
+0 0 CLOUD COVERING 1/2 OR LESS OF THE SKY THROUGHOUT THE APPROPRIATE PERIOD
+1 1 CLOUD COVERING MORE THAN 1/2 OF THE SKY DURING PART OF THE APPROPRIATE PERIOD AND COVERING 1/2 OR LESS DURING PART OF THE PERIOD
+2 2 CLOUD COVERING MORE THAN 1/2 OF THE SKY THROUGHOUT THE APPROPRIATE PERIOD
+3 3 SANDSTORM, DUSTSTORM OR BLOWING SNOW
+4 4 FOG OR ICE FOG OR THICK HAZE
+5 5 DRIZZLE
+6 6 RAIN
+7 7 SNOW, OR RAIN AND SNOW MIXED
+8 8 SHOWER(S)
+9 9 THUNDERSTORM(S) WITH OR WITHOUT PRECIPITATION
+10 10 NO SIGNIFICANT WEATHER OBSERVED
+11 11 VISIBILITY REDUCED
+12 12 BLOWING PHENOMENA, VISIBILITY REDUCED
+13 13 FOG
+14 14 PRECIPITATION
+15 15 DRIZZLE
+16 16 RAIN
+17 17 SNOW OR ICE PELLETS
+18 18 SHOWERS OR INTERMITTENT PRECIPITATION
+19 19 THUNDERSTORM
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20005.table b/definitions/bufr/tables/0/wmo/41/codetables/20005.table
new file mode 100644
index 000000000..f3d3024d8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20005.table
@@ -0,0 +1,21 @@
+0 0 CLOUD COVERING 1/2 OR LESS OF THE SKY THROUGHOUT THE APPROPRIATE PERIOD
+1 1 CLOUD COVERING MORE THAN 1/2 OF THE SKY DURING PART OF THE APPROPRIATE PERIOD AND COVERING 1/2 OR LESS DURING PART OF THE PERIOD
+2 2 CLOUD COVERING MORE THAN 1/2 OF THE SKY THROUGHOUT THE APPROPRIATE PERIOD
+3 3 SANDSTORM, DUSTSTORM OR BLOWING SNOW
+4 4 FOG OR ICE FOG OR THICK HAZE
+5 5 DRIZZLE
+6 6 RAIN
+7 7 SNOW, OR RAIN AND SNOW MIXED
+8 8 SHOWER(S)
+9 9 THUNDERSTORM(S) WITH OR WITHOUT PRECIPITATION
+10 10 NO SIGNIFICANT WEATHER OBSERVED
+11 11 VISIBILITY REDUCED
+12 12 BLOWING PHENOMENA, VISIBILITY REDUCED
+13 13 FOG
+14 14 PRECIPITATION
+15 15 DRIZZLE
+16 16 RAIN
+17 17 SNOW OR ICE PELLETS
+18 18 SHOWERS OR INTERMITTENT PRECIPITATION
+19 19 THUNDERSTORM
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20006.table b/definitions/bufr/tables/0/wmo/41/codetables/20006.table
new file mode 100644
index 000000000..cc2612116
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20006.table
@@ -0,0 +1,5 @@
+0 0 LOW INSTRUMENT FLIGHT RULES - CEILING < 500 FEET AND/OR VISIBILITY < 1 MILE
+1 1 INSTRUMENT FLIGHT RULES - CEILING < 1000 FEET AND/OR VISIBILITY < 3 MILES
+2 2 MARGINAL VISUAL FLIGHT RULES - 1000 FEET =< CEILING < 3000 FEET AND/OR 3 MILES =< VISIBILITY < 5 MILES
+3 3 VISUAL FLIGHT RULES - CEILING >= 3000 FEET AND/OR VISIBILITY >= 5 MILES
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20008.table b/definitions/bufr/tables/0/wmo/41/codetables/20008.table
new file mode 100644
index 000000000..966bcc2fa
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20008.table
@@ -0,0 +1,19 @@
+0 0 SKY CLEAR
+1 1 FEW
+2 2 SCATTERED
+3 3 BROKEN
+4 4 OVERCAST
+5 5 RESERVED
+6 6 SCATTERED/BROKEN
+7 7 BROKEN/OVERCAST
+8 8 ISOLATED
+9 9 ISOLATED EMBEDDED
+10 10 OCCASIONAL
+11 11 OCCASIONAL EMBEDDED
+12 12 FREQUENT
+13 13 DENSE
+14 14 LAYERS
+15 15 OBSCURED (OBSC)
+16 16 EMBEDDED (EMBD)
+17 17 FREQUENT EMBEDDED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20009.table b/definitions/bufr/tables/0/wmo/41/codetables/20009.table
new file mode 100644
index 000000000..c3f1d7435
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20009.table
@@ -0,0 +1,7 @@
+0 0 RESERVED
+1 1 NSC NIL SIGNIFICANT CLOUD
+2 2 CAVOK
+3 3 SKC SKY CLEAR
+4 4 NSW NIL SIGNIFICANT WEATHER
+5 5 NCD NO CLOUDS DETECTED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2001.table b/definitions/bufr/tables/0/wmo/41/codetables/2001.table
new file mode 100644
index 000000000..470fcccb7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2001.table
@@ -0,0 +1,4 @@
+0 0 AUTOMATIC
+1 1 MANNED
+2 2 HYBRID: BOTH MANNED AND AUTOMATIC
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20011.table b/definitions/bufr/tables/0/wmo/41/codetables/20011.table
new file mode 100644
index 000000000..06c6e106c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20011.table
@@ -0,0 +1,16 @@
+0 0 0
+1 1 1 OKTA OR LESS, BUT NOT ZERO
+2 2 2 OKTAS
+3 3 3 OKTAS
+4 4 4 OKTAS
+5 5 5 OKTAS
+6 6 6 OKTAS
+7 7 7 OKTAS OR MORE, BUT NOT 8 OKTAS
+8 8 8 OKTAS
+9 9 SKY OBSCURED BY FOG AND/OR OTHER METEOROLOGICAL PHENOMENA
+10 10 SKY PARTIALLY OBSCURED BY FOG AND/OR OTHER METEOROLOGICAL PHENOMENA
+11 11 SCATTERED
+12 12 BROKEN
+13 13 FEW
+14 14 RESERVED
+15 15 CLOUD COVER IS INDISCERNIBLE FOR REASONS OTHER THAN FOG OR OTHER METEOROLOGICAL PHENOMENA, OR OBSERVATION IS NOT MADE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20012.table b/definitions/bufr/tables/0/wmo/41/codetables/20012.table
new file mode 100644
index 000000000..07984f399
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20012.table
@@ -0,0 +1,55 @@
+0 0 CIRRUS (CI)
+1 1 CIRROCUMULUS (CC)
+2 2 CIRROSTRATUS (CS)
+3 3 ALTOCUMULUS (AC)
+4 4 ALTOSTRATUS (AS)
+5 5 NIMBOSTRATUS (NS)
+6 6 STRATOCUMULUS (SC)
+7 7 STRATUS (ST)
+8 8 CUMULUS (CU)
+9 9 CUMULONIMBUS (CB)
+10 10 NO CH CLOUDS
+11 11 CIRRUS FIBRATUS, SOMETIMES UNCINUS, NOT PROGRESSIVELY INVADING THE SKY
+12 12 CIRRUS SPISSATUS, IN PATCHES OR ENTANGLED SHEAVES, WHICH USUALLY DO NOT INCREASE AND SOMETIMES SEEM TO BE THE REMAINS OF THE UPPER PART OF A CUMULONIMBUS; OR CIRRUS CASTELLANUS OR FLOCCUS
+13 13 CIRRUS SPISSATUS CUMULONIMBOGENITUS
+14 14 CIRRUS UNCINUS OR FIBRATUS, OR BOTH, PROGRESSIVELY INVADING THE SKY; THEY GENERALLY THICKEN AS A WHOLE
+15 15 CIRRUS (OFTEN IN BANDS) AND CIRROSTRATUS, OR CIRROSTRATUS ALONE, PROGRESSIVELY INVADING THE SKY; THEY GENERALLY THICKEN AS A WHOLE, BUT THE CONTINUOUS VEIL DOES NOT REACH 45 DEGREES ABOVE THE HORIZON
+16 16 CIRRUS (OFTEN IN BANDS) AND CIRROSTRATUS, OR CIRROSTRATUS ALONE, PROGRESSIVELY INVADING THE SKY; THEY GENERALLY THICKEN AS A WHOLE; THE CONTINUOUS VEIL EXTENDS MORE THAN 45 DEGREES ABOVE THE HORIZON, WITHOUT THE SKY BEING TOTALLY COVERED
+17 17 CIRROSTRATUS COVERING THE WHOLE SKY
+18 18 CIRROSTRATUS NOT PROGRESSIVELY INVADING THE SKY AND NOT ENTIRELY COVERING IT
+19 19 CIRROCUMULUS ALONE, OR CIRROCUMULUS PREDOMINANT AMONG THE CH CLOUDS
+20 20 NO CM CLOUDS
+21 21 ALTOSTRATUS TRANSLUCIDUS
+22 22 ALTOSTRATUS OPACUS OR NIMBOSTRATUS
+23 23 ALTOCUMULUS TRANSLUCIDUS AT A SINGLE LEVEL
+24 24 PATCHES (OFTEN LENTICULAR) OF ALTOCUMULUS TRANSLUCIDUS, CONTINUALLY CHANGING AND OCCURRING AT ONE OR MORE LEVELS
+25 25 ALTOCUMULUS TRANSLUCIDUS IN BANDS, OR ONE OR MORE LAYERS OF ALTOCUMULUS TRANSLUCIDUS OR OPACUS, PROGRESSIVELY INVADING THE SKY; THESE ALTOCUMULUS CLOUDS GENERALLY THICKEN AS A WHOLE
+26 26 ALTOCUMULUS CUMULOGENITUS (OR CUMULONIMBOGENITUS)
+27 27 ALTOCUMULUS TRANSLUCIDUS OR OPACUS IN TWO OR MORE LAYERS, OR ALTOCUMULUS OPACUS IN A SINGLE LAYER, NOT PROGRESSIVELY INVADING THE SKY, OR ALTOCUMULUS WITH ALTOSTRATUS OR NIMBOSTRATUS
+28 28 ALTOCUMULUS CASTELLANUS OR FLOCCUS
+29 29 ALTOCUMULUS OF A CHAOTIC SKY, GENERALLY AT SEVERAL LEVELS
+30 30 NO CL CLOUDS
+31 31 CUMULUS HUMILIS OR CUMULUS FRACTUS OTHER THAN OF BAD WEATHER, OR BOTH
+32 32 CUMULUS MEDIOCRIS OR CONGESTUS, TOWERING CUMULUS (TCU), WITH OR WITHOUT CUMULUS OF SPECIES FRACTUS OR HUMILIS OR STRATOCUMULUS, ALL HAVING THEIR BASES AT THE SAME LEVEL
+33 33 CUMULONIMBUS CALVUS, WITH OR WITHOUT CUMULUS, STRATOCUMULUS OR STRATUS
+34 34 STRATOCUMULUS CUMULOGENITUS
+35 35 STRATOCUMULUS OTHER THAN STRATOCUMULUS CUMULOGENITUS
+36 36 STRATUS NEBULOSUS OR STRATUS FRACTUS OTHER THAN OF BAD WEATHER, OR BOTH
+37 37 STRATUS FRACTUS OR CUMULUS FRACTUS OF BAD WEATHER, OR BOTH (PANNUS), USUALLY BELOW ALTOSTRATUS OR NIMBOSTRATUS
+38 38 CUMULUS AND STRATOCUMULUS OTHER THAN STRATOCUMULUS CUMULOGENITUS, WITH BASES AT DIFFERENT LEVELS
+39 39 CUMULONIMBUS CAPILLATUS (OFTEN WITH AN ANVIL), WITH OR WITHOUT CUMULONIMBUS CALVUS, CUMULUS, STRATOCUMULUS, STRATUS OR PANNUS
+40 40 CH
+41 41 CM
+42 42 CL
+43 43 CLEAR
+44 44 LIQUID WATER
+45 45 SUPERCOOLED LIQUID WATER
+46 46 MIXED PHASE
+47 47 OPTICALLY THICK ICE
+48 48 OPTICALLY THIN ICE
+49 49 MULTILAYERED ICE
+59 59 CLOUD NOT VISIBLE OWING TO DARKNESS, FOG, DUSTSTORM, SANDSTORM, OR OTHER ANALOGOUS PHENOMENA
+60 60 CH CLOUDS INVISIBLE OWING TO DARKNESS, FOG, BLOWING DUST OR SAND, OR OTHER SIMILAR PHENOMENA, OR BECAUSE OF A CONTINUOUS LAYER OF LOWER CLOUDS
+61 61 CM CLOUDS INVISIBLE OWING TO DARKNESS, FOG, BLOWING DUST OR SAND, OR OTHER SIMILAR PHENOMENA, OR BECAUSE OF CONTINUOUS LAYER OF LOWER CLOUDS
+62 62 CL CLOUDS INVISIBLE OWING TO DARKNESS, FOG, BLOWING DUST OR SAND, OR OTHER SIMILAR PHENOMENA
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20017.table b/definitions/bufr/tables/0/wmo/41/codetables/20017.table
new file mode 100644
index 000000000..5ec10bd41
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20017.table
@@ -0,0 +1,11 @@
+0 0 ISOLATED CLOUD FRAGMENTS OF CLOUDS
+1 1 CONTINUOUS CLOUD
+2 2 BROKEN CLOUD - SMALL BREAKS
+3 3 BROKEN CLOUD - LARGE BREAKS
+4 4 CONTINUOUS CLOUD
+5 5 BROKEN CLOUD - SMALL BREAKS
+6 6 BROKEN CLOUD - LARGE BREAKS
+7 7 CONTINUOUS OR ALMOST CONTINUOUS WAVES WITH TOWERING CLOUDS ABOVE THE TOP OF THE LAYER
+8 8 GROUPS OF WAVES WITH TOWERING CLOUDS ABOVE THE TOP OF THE LAYER
+9 9 TWO OR MORE LAYERS AT DIFFERENT LEVELS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20018.table b/definitions/bufr/tables/0/wmo/41/codetables/20018.table
new file mode 100644
index 000000000..c0ffc3693
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20018.table
@@ -0,0 +1,4 @@
+0 0 INCREASING (U)
+1 1 DECREASING (D)
+2 2 NO DISTINCT CHANGE (N)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2002.table b/definitions/bufr/tables/0/wmo/41/codetables/2002.table
new file mode 100644
index 000000000..a701e1e40
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2002.table
@@ -0,0 +1,3 @@
+1 1 CERTIFIED INSTRUMENTS
+2 2 ORIGINALLY MEASURED IN KNOTS
+3 3 ORIGINALLY MEASURED IN KM H-1
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20021.table b/definitions/bufr/tables/0/wmo/41/codetables/20021.table
new file mode 100644
index 000000000..747a7591e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20021.table
@@ -0,0 +1,23 @@
+1 1 PRECIPITATION - UNKNOWN TYPE
+2 2 LIQUID PRECIPITATION NOT FREEZING
+3 3 LIQUID FREEZING PRECIPITATION
+4 4 DRIZZLE
+5 5 RAIN
+6 6 SOLID PRECIPITATION
+7 7 SNOW
+8 8 SNOW GRAINS
+9 9 SNOW PELLETS
+10 10 ICE PELLETS
+11 11 ICE CRYSTALS
+12 12 DIAMOND DUST
+13 13 SMALL HAIL
+14 14 HAIL
+15 15 GLAZE
+16 16 RIME
+17 17 SOFT RIME
+18 18 HARD RIME
+19 19 CLEAR ICE
+20 20 WET SNOW
+21 21 HOAR FROST
+22 22 DEW
+23 23 WHITE DEW
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20022.table b/definitions/bufr/tables/0/wmo/41/codetables/20022.table
new file mode 100644
index 000000000..a551aac0e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20022.table
@@ -0,0 +1,7 @@
+0 0 NO PRECIPITATION
+1 1 CONTINUOUS
+2 2 INTERMITTENT
+3 3 SHOWER
+4 4 NOT REACHING GROUND
+5 5 DEPOSITION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20023.table b/definitions/bufr/tables/0/wmo/41/codetables/20023.table
new file mode 100644
index 000000000..97670dfbb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20023.table
@@ -0,0 +1,14 @@
+1 1 DUST/SAND WHIRL
+2 2 SQUALLS
+3 3 SANDSTORM
+4 4 DUSTSTORM
+5 5 LIGHTNING - CLOUD TO SURFACE
+6 6 LIGHTNING - CLOUD TO CLOUD
+7 7 LIGHTNING - DISTANT
+8 8 THUNDERSTORM
+9 9 FUNNEL CLOUD NOT TOUCHING SURFACE
+10 10 FUNNEL CLOUD TOUCHING SURFACE
+11 11 SPRAY
+12 12 WATERSPOUT
+13 13 WIND SHEAR
+14 14 DUST DEVILS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20024.table b/definitions/bufr/tables/0/wmo/41/codetables/20024.table
new file mode 100644
index 000000000..13aba873e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20024.table
@@ -0,0 +1,8 @@
+0 0 NO PHENOMENA
+1 1 LIGHT
+2 2 MODERATE
+3 3 HEAVY
+4 4 VIOLENT
+5 5 SEVERE
+6 6 VERY SEVERE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20025.table b/definitions/bufr/tables/0/wmo/41/codetables/20025.table
new file mode 100644
index 000000000..4d70e338f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20025.table
@@ -0,0 +1,13 @@
+1 1 FOG
+2 2 ICE FOG
+3 3 STEAM FOG
+7 7 MIST
+8 8 HAZE
+9 9 SMOKE
+10 10 VOLCANIC ASH
+11 11 DUST
+12 12 SAND
+13 13 SNOW
+14 14 CLOUD
+15 15 PRECIPITATION
+16 16 IMPOSSIBLE TO DETERMINE WHETHER SNOW IS FALLING OR NOT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20026.table b/definitions/bufr/tables/0/wmo/41/codetables/20026.table
new file mode 100644
index 000000000..285209472
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20026.table
@@ -0,0 +1,16 @@
+0 0 NO CHANGE
+1 1 SHALLOW
+2 2 PATCHES
+3 3 PARTIAL
+4 4 FREEZING
+5 5 LOW DRIFTING
+6 6 BLOWING
+7 7 INCREASING
+8 8 DECREASING
+9 9 IN SUSPENSION IN THE AIR
+10 10 WALL
+11 11 DENSE
+12 12 WHITEOUT
+13 13 DRIFTING AND BLOWING
+14 14 RESERVED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20027.table b/definitions/bufr/tables/0/wmo/41/codetables/20027.table
new file mode 100644
index 000000000..c337f16a7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20027.table
@@ -0,0 +1,8 @@
+1 1 AT TIME OF OBSERVATION
+2 2 IN PAST HOUR
+3 3 IN TIME PERIOD FOR PAST WEATHER W1W2
+4 4 IN TIME PERIOD SPECIFIED
+5 5 RESERVED
+6 6 BELOW STATION LEVEL
+7 7 AT THE STATION
+8 8 IN THE VICINITY
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20028.table b/definitions/bufr/tables/0/wmo/41/codetables/20028.table
new file mode 100644
index 000000000..6b701a2b6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20028.table
@@ -0,0 +1,4 @@
+0 0 NO CHANGE (NC)
+1 1 FORECAST TO WEAKEN (WKN)
+2 2 FORECAST TO INTENSIFY (INTSF)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20029.table b/definitions/bufr/tables/0/wmo/41/codetables/20029.table
new file mode 100644
index 000000000..8b46da891
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20029.table
@@ -0,0 +1,4 @@
+0 0 NO RAIN
+1 1 RAIN
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2003.table b/definitions/bufr/tables/0/wmo/41/codetables/2003.table
new file mode 100644
index 000000000..f364d1811
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2003.table
@@ -0,0 +1,13 @@
+0 0 PRESSURE INSTRUMENT ASSOCIATED WITH WIND MEASURING EQUIPMENT
+1 1 OPTICAL THEODOLITE
+2 2 RADIO THEODOLITE
+3 3 RADAR
+4 4 VLF-OMEGA
+5 5 LORAN C
+6 6 WIND PROFILER
+7 7 SATELLITE NAVIGATION
+8 8 RADIO-ACOUSTIC SOUNDING SYSTEM (RASS)
+9 9 SODAR
+10 10 LIDAR
+14 14 PRESSURE INSTRUMENT ASSOCIATED WITH WIND MEASURING EQUIPMENT BUT PRESSURE ELEMENT FAILED DURING ASCENT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20032.table b/definitions/bufr/tables/0/wmo/41/codetables/20032.table
new file mode 100644
index 000000000..fd37c1e76
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20032.table
@@ -0,0 +1,6 @@
+0 0 ICE NOT BUILDING UP
+1 1 ICE BUILDING UP SLOWLY
+2 2 ICE BUILDING UP RAPIDLY
+3 3 ICE MELTING OR BREAKING UP SLOWLY
+4 4 ICE MELTING OR BREAKING UP RAPIDLY
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20033.table b/definitions/bufr/tables/0/wmo/41/codetables/20033.table
new file mode 100644
index 000000000..817873323
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20033.table
@@ -0,0 +1,3 @@
+1 1 ICING FROM OCEAN SPRAY
+2 2 ICING FROM FOG
+3 3 ICING FROM RAIN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20034.table b/definitions/bufr/tables/0/wmo/41/codetables/20034.table
new file mode 100644
index 000000000..668e91671
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20034.table
@@ -0,0 +1,12 @@
+0 0 NO SEA ICE IN SIGHT
+1 1 SHIP IN OPEN LEAD MORE THAN 1.0 NAUTICAL MILE WIDE, OR SHIP IN FAST ICE WITH BOUNDARY BEYOND LIMIT OF VISIBILITY
+2 2 SEA ICE PRESENT IN CONCENTRATIONS LESS THAN 3/10 (3/8), OPEN WATER OR VERY OPEN PACK ICE
+3 3 4/10 TO 6/10 (3/8 TO LESS THAN 6/8), OPEN PACK ICE
+4 4 7/10 TO 8/10 (6/8 TO LESS THAN 7/8), CLOSE PACK ICE
+5 5 9/10 OR MORE, BUT NOT 10/10 (7/8 TO LESS THAN 8/8), VERY CLOSE PACK ICE
+6 6 STRIPS AND PATCHES OF PACK ICE WITH OPEN WATER BETWEEN
+7 7 STRIPS AND PATCHES OF CLOSE OR VERY CLOSE PACK ICE WITH AREAS OF LESSER CONCENTRATION BETWEEN
+8 8 FAST ICE WITH OPEN WATER, VERY OPEN OR OPEN PACK ICE TO SEAWARD OF THE ICE BOUNDARY
+9 9 FAST ICE WITH CLOSE OR VERY CLOSE PACK ICE TO SEAWARD OF THE BOUNDARY
+14 14 UNABLE TO REPORT, BECAUSE OF DARKNESS, LACK OF VISIBILITY, OR BECAUSE SHIP IS MORE THAN 0.5 NAUTICAL MILE AWAY FROM ICE EDGE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20035.table b/definitions/bufr/tables/0/wmo/41/codetables/20035.table
new file mode 100644
index 000000000..07a4a0284
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20035.table
@@ -0,0 +1,12 @@
+0 0 NO ICE OF LAND ORIGIN
+1 1 1-5 ICEBERGS, NO GROWLERS OR BERGY BITS
+2 2 6-10 ICEBERGS, NO GROWLERS OR BERGY BITS
+3 3 11-20 ICEBERGS, NO GROWLERS OR BERGY BITS
+4 4 UP TO AND INCLUDING 10 GROWLERS AND BERGY BITS - NO ICEBERGS
+5 5 MORE THAN 10 GROWLERS AND BERGY BITS - NO ICEBERGS
+6 6 1-5 ICEBERGS, WITH GROWLERS AND BERGY BITS
+7 7 6-10 ICEBERGS, WITH GROWLERS AND BERGY BITS
+8 8 11-20 ICEBERGS, WITH GROWLERS AND BERGY BITS
+9 9 MORE THAN 20 ICEBERGS, WITH GROWLERS AND BERGY BITS - A MAJOR HAZARD TO NAVIGATION
+14 14 UNABLE TO REPORT, BECAUSE OF DARKNESS, LACK OF VISIBILITY OR BECAUSE ONLY SEA ICE IS VISIBLE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20036.table b/definitions/bufr/tables/0/wmo/41/codetables/20036.table
new file mode 100644
index 000000000..b4cc874bd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20036.table
@@ -0,0 +1,12 @@
+0 0 SHIP IN OPEN WATER WITH FLOATING ICE IN SIGHT
+1 1 SHIP IN EASILY PENETRABLE ICE; CONDITIONS IMPROVING
+2 2 SHIP IN EASILY PENETRABLE ICE; CONDITIONS NOT CHANGING
+3 3 SHIP IN EASILY PENETRABLE ICE; CONDITIONS WORSENING
+4 4 SHIP IN ICE DIFFICULT TO PENETRATE; CONDITIONS IMPROVING
+5 5 SHIP IN ICE DIFFICULT TO PENETRATE; CONDITIONS NOT CHANGING
+6 6 SHIP IN ICE DIFFICULT TO PENETRATE AND CONDITIONS WORSENING. ICE FORMING AND FLOES FREEZING TOGETHER
+7 7 SHIP IN ICE DIFFICULT TO PENETRATE AND CONDITIONS WORSENING. ICE UNDER SLIGHT PRESSURE
+8 8 SHIP IN ICE DIFFICULT TO PENETRATE AND CONDITIONS WORSENING. ICE UNDER MODERATE OR SEVERE PRESSURE
+9 9 SHIP IN ICE DIFFICULT TO PENETRATE AND CONDITIONS WORSENING. SHIP BESET
+30 30 UNABLE TO REPORT, BECAUSE OF DARKNESS OR LACK OF VISIBILITY
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20037.table b/definitions/bufr/tables/0/wmo/41/codetables/20037.table
new file mode 100644
index 000000000..474eeaae2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20037.table
@@ -0,0 +1,12 @@
+0 0 NEW ICE ONLY (FRAZIL ICE, GREASE ICE, SLUSH, SHUGA)
+1 1 NILAS OR ICE RIND, LESS THAN 10 CM THICK
+2 2 YOUNG ICE (GREY ICE, GREY-WHITE ICE), 10-30 CM THICK
+3 3 PREDOMINANTLY NEW AND/OR YOUNG ICE WITH SOME FIRST-YEAR ICE
+4 4 PREDOMINANTLY THIN FIRST-YEAR ICE WITH SOME NEW AND/OR YOUNG ICE
+5 5 ALL THIN FIRST-YEAR ICE (30-70 CM THICK)
+6 6 PREDOMINANTLY MEDIUM FIRST-YEAR ICE (70-120 CM THICK) AND THICK FIRST-YEAR ICE (>120 CM THICK) WITH SOME THINNER (YOUNGER) FIRST-YEAR ICE
+7 7 ALL MEDIUM AND THICK FIRST-YEAR ICE
+8 8 PREDOMINANTLY MEDIUM AND THICK FIRST-YEAR ICE WITH SOME OLD ICE (USUALLY MORE THAN 2 METRES THICK)
+9 9 PREDOMINANTLY OLD ICE
+30 30 UNABLE TO REPORT, BECAUSE OF DARKNESS, LACK OF VISIBILITY OR BECAUSE ONLY ICE OF LAND ORIGIN IS VISIBLE OR BECAUSE SHIP IS MORE THAN 0.5 NAUTICAL MILE AWAY FROM ICE EDGE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2004.table b/definitions/bufr/tables/0/wmo/41/codetables/2004.table
new file mode 100644
index 000000000..a55de6c58
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2004.table
@@ -0,0 +1,11 @@
+0 0 USA OPEN PAN EVAPORIMETER (WITHOUT COVER)
+1 1 USA OPEN PAN EVAPORIMETER (MESH COVERED)
+2 2 GGI-3000 EVAPORIMETER (SUNKEN)
+3 3 20 M2 TANK
+4 4 OTHERS
+5 5 RICE
+6 6 WHEAT
+7 7 MAIZE
+8 8 SORGHUM
+9 9 OTHER CROPS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20040.table b/definitions/bufr/tables/0/wmo/41/codetables/20040.table
new file mode 100644
index 000000000..889393bf8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20040.table
@@ -0,0 +1,9 @@
+0 0 DRIFT SNOW ENDED BEFORE THE HOUR OF OBSERVATION
+1 1 INTENSITY DIMINISHING
+2 2 NO CHANGE
+3 3 INTENSITY INCREASING
+4 4 CONTINUES, APART FROM INTERRUPTION LASTING LESS THAN 30 MINUTES
+5 5 GENERAL DRIFT SNOW HAS BECOME DRIFT SNOW NEAR THE GROUND
+6 6 DRIFT SNOW NEAR THE GROUND HAS BECOME GENERAL DRIFT SNOW
+7 7 DRIFT SNOW HAS STARTED AGAIN AFTER AN INTERRUPTION OF MORE THAN 30 MINUTES
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20041.table b/definitions/bufr/tables/0/wmo/41/codetables/20041.table
new file mode 100644
index 000000000..fc571208d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20041.table
@@ -0,0 +1,14 @@
+0 0 NO ICING
+1 1 LIGHT ICING
+2 2 LIGHT ICING IN CLOUD
+3 3 LIGHT ICING IN PRECIPITATION
+4 4 MODERATE ICING
+5 5 MODERATE ICING IN CLOUD
+6 6 MODERATE ICING IN PRECIPITATION
+7 7 SEVERE ICING
+8 8 SEVERE ICING IN CLOUD
+9 9 SEVERE ICING IN PRECIPITATION
+10 10 TRACE OF ICING
+11 11 TRACE OF ICING IN CLOUD
+12 12 TRACE OF ICING IN PRECIPITATION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20042.table b/definitions/bufr/tables/0/wmo/41/codetables/20042.table
new file mode 100644
index 000000000..2493af725
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20042.table
@@ -0,0 +1,4 @@
+0 0 NO ICING
+1 1 ICING PRESENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20045.table b/definitions/bufr/tables/0/wmo/41/codetables/20045.table
new file mode 100644
index 000000000..91ae63f48
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20045.table
@@ -0,0 +1,4 @@
+0 0 NO SLD CONDITIONS PRESENT
+1 1 SLD CONDITIONS PRESENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20048.table b/definitions/bufr/tables/0/wmo/41/codetables/20048.table
new file mode 100644
index 000000000..4a5488266
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20048.table
@@ -0,0 +1,5 @@
+0 0 STABILITY
+1 1 DIMINUTION
+2 2 INTENSIFICATION
+3 3 UNKNOWN
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20050.table b/definitions/bufr/tables/0/wmo/41/codetables/20050.table
new file mode 100644
index 000000000..3f8654ed5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20050.table
@@ -0,0 +1,10 @@
+0 0 RESERVED
+1 1 1ST LOW CLOUD
+2 2 2ND LOW CLOUD
+3 3 3RD LOW CLOUD
+4 4 1ST MEDIUM CLOUD
+5 5 2ND MEDIUM CLOUD
+6 6 3RD MEDIUM CLOUD
+7 7 1ST HIGH CLOUD
+8 8 2ND HIGH CLOUD
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20055.table b/definitions/bufr/tables/0/wmo/41/codetables/20055.table
new file mode 100644
index 000000000..ea06427f6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20055.table
@@ -0,0 +1,12 @@
+0 0 CUMULUS, IF ANY, ARE QUITE SMALL; GENERALLY LESS THAN 2/8 COVERAGE, EXCEPT ON WINDWARD SLOPES OF ELEVATED TERRAIN; AVERAGE WIDTH OF CLOUD IS AT LEAST AS GREAT AS ITS VERTICAL THICKNESS
+1 1 CUMULUS OF INTERMEDIATE SIZE WITH CLOUD COVER LESS THAN 5/8; AVERAGE CLOUD WIDTH IS MORE THAN ITS VERTICAL THICKNESS; TOWERS ARE VERTICAL WITH LITTLE OR NO EVIDENCE OF PRECIPITATION, EXCEPT ALONG SLOPES OF ELEVATED TERRAIN; A GENERAL ABSENCE OF MIDDLE AND UPPER CLOUDS
+2 2 SWELLING CUMULUS WITH RAPIDLY GROWING TALL TURRETS WHICH DECREASE IN SIZE WITH HEIGHT AND WHOSE TOPS TEND TO SEPARATE FROM THE LONGER CLOUD BODY AND EVAPORATE WITHIN MINUTES OF THE SEPARATION
+3 3 SWELLING CUMULUS WITH TOWERS HAVING A PRONOUNCED TILT IN A DOWNWIND DIRECTION; VERTICAL CLOUD THICKNESS IS MORE THAN ONE AND A HALF TIMES THAT OF ITS AVERAGE WIDTH
+4 4 SWELLING CUMULUS WITH TOWERS HAVING A PRONOUNCED TILT IN AN UPWIND DIRECTION; VERTICAL CLOUD THICKNESS IS MORE THAN ONE AND A HALF TIMES THAT OF ITS AVERAGE WIDTH
+5 5 TALL CUMULUS CONGESTUS WITH VERTICAL THICKNESS MORE THAN TWICE THE AVERAGE WIDTH; NOT ORGANIZED IN CLUSTERS OR LINES; ONE OR MORE LAYERS OF CLOUDS EXTEND OUT FROM THE CLOUD TOWERS, ALTHOUGH NO CONTINUOUS CLOUD LAYERS EXIST
+6 6 ISOLATED CUMULONIMBUS OR LARGE CLUSTERS OF CUMULUS TURRETS SEPARATED BY WIDE AREAS IN WHICH CLOUDS ARE ABSENT; CLOUD BASES ARE GENERALLY DARK WITH SHOWERS OBSERVED IN MOST CELLS; SOME SCATTERED MIDDLE AND UPPER CLOUDS MAY BE PRESENT; INDIVIDUAL CUMULUS CELLS ARE ONE TO TWO TIMES HIGHER THAN THEY ARE WIDE
+7 7 NUMEROUS CUMULUS EXTENDING THROUGH THE MIDDLE TROPOSPHERE WITH BROKEN TO OVERCAST SHEETS OF MIDDLE CLOUDS AND/OR CIRROSTRATUS; CUMULUS TOWERS DO NOT DECREASE GENERALLY IN SIZE WITH HEIGHT; RAGGED DARK CLOUD BASES WITH SOME SHOWERS PRESENT
+8 8 CONTINUOUS DENSE MIDDLE CLOUDS AND/OR CIRROSTRATUS CLOUD SHEETS WITH SOME LARGE ISOLATED CUMULONIMBUS OR CUMULUS CONGESTUS CLOUDS PENETRATING THESE SHEETS; LIGHT RAIN OCCASIONALLY OBSERVED FROM THE ALTOSTRATUS; CUMULONIMBUS BASES RAGGED AND DARK WITH SHOWERS VISIBLE
+9 9 CONTINUOUS SHEETS OF MIDDLE CLOUDS AND/OR CIRROSTRATUS WITH CUMULONIMBUS AND CUMULUS CONGESTUS IN ORGANIZED LINES OR CLOUD BANDS; RAIN IS GENERALLY OBSERVED FROM ALTOSTRATUS SHEETS AND HEAVY SHOWERS FROM CUMULONIMBUS; WIND HAS A SQUALLY CHARACTER
+10 10 STATE OF SKY UNKNOWN OR NOT DESCRIBED BY ANY OF THE ABOVE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20056.table b/definitions/bufr/tables/0/wmo/41/codetables/20056.table
new file mode 100644
index 000000000..204b220b8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20056.table
@@ -0,0 +1,8 @@
+0 0 UNKNOWN
+1 1 WATER
+2 2 ICE
+3 3 MIXED
+4 4 CLEAR
+5 5 SUPERCOOLED LIQUID WATER
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2006.table b/definitions/bufr/tables/0/wmo/41/codetables/2006.table
new file mode 100644
index 000000000..e32bac3d7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2006.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 ELASTIC BACKSCATTER LIDAR
+2 2 RAMAN BACKSCATTER LIDAR
+3 3 RADAR WIND PROFILER
+4 4 LIDAR WIND PROFILER
+5 5 SODAR WIND PROFILER
+6 6 WIND PROFILER
+7 7 LIDAR
+8 8 GROUND-BASED MICROWAVE RADIOMETER
+9 9 DIFFERENTIAL ABSORPTION LIDAR
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20062.table b/definitions/bufr/tables/0/wmo/41/codetables/20062.table
new file mode 100644
index 000000000..24d96c46f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20062.table
@@ -0,0 +1,21 @@
+0 0 SURFACE OF GROUND DRY (WITHOUT CRACKS AND NO APPRECIABLE AMOUNT OF DUST OR LOOSE SAND)
+1 1 SURFACE OF GROUND MOIST
+2 2 SURFACE OF GROUND WET (STANDING WATER IN SMALL OR LARGE POOLS ON SURFACE)
+3 3 FLOODED
+4 4 SURFACE OF GROUND FROZEN
+5 5 GLAZE ON GROUND
+6 6 LOOSE DRY DUST OR SAND NOT COVERING GROUND COMPLETELY
+7 7 THIN COVER OF LOOSE DRY DUST OR SAND COVERING GROUND COMPLETELY
+8 8 MODERATE OR THICK COVER OF LOOSE DRY DUST OR SAND COVERING GROUND COMPLETELY
+9 9 EXTREMELY DRY WITH CRACKS
+10 10 GROUND PREDOMINANTLY COVERED BY ICE
+11 11 COMPACT OR WET SNOW (WITH OR WITHOUT ICE) COVERING LESS THAN ONE HALF OF THE GROUND
+12 12 COMPACT OR WET SNOW (WITH OR WITHOUT ICE) COVERING AT LEAST ONE HALF OF THE GROUND BUT GROUND NOT COMPLETELY COVERED
+13 13 EVEN LAYER OF COMPACT OR WET SNOW COVERING GROUND COMPLETELY
+14 14 UNEVEN LAYER OF COMPACT OR WET SNOW COVERING GROUND COMPLETELY
+15 15 LOOSE DRY SNOW COVERING LESS THAN ONE HALF OF THE GROUND
+16 16 LOOSE DRY SNOW COVERING AT LEAST ONE HALF OF THE GROUND BUT GROUND NOT COMPLETELY COVERED
+17 17 EVEN LAYER OF LOOSE DRY SNOW COVERING GROUND COMPLETELY
+18 18 UNEVEN LAYER OF LOOSE DRY SNOW COVERING GROUND COMPLETELY
+19 19 SNOW COVERING GROUND COMPLETELY; DEEP DRIFTS
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20063.table b/definitions/bufr/tables/0/wmo/41/codetables/20063.table
new file mode 100644
index 000000000..d1622860b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20063.table
@@ -0,0 +1,72 @@
+0 0 RESERVED
+1 1 HIGHEST WIND SPEED GUSTS GREATER THAN 11.5 M/S
+2 2 HIGHEST MEAN WIND SPEED GREATER THAN 17.5 M/S
+7 7 VISIBILITY GREATER THAN 100 000 M
+10 10 MIRAGE - NO SPECIFICATION
+11 11 MIRAGE - IMAGE OF DISTANT OBJECT RAISED (LOOMING)
+12 12 MIRAGE - IMAGE OF DISTANT OBJECT RAISED CLEAR ABOVE THE HORIZON
+13 13 MIRAGE - INVERTED IMAGE OF DISTANT OBJECT
+14 14 MIRAGE - COMPLEX, MULTIPLE IMAGES OF DISTANT OBJECT (IMAGES NOT INVERTED)
+15 15 MIRAGE - COMPLEX, MULTIPLE IMAGES OF DISTANT OBJECT (SOME IMAGES BEING INVERTED)
+16 16 MIRAGE - SUN OR MOON SEEN APPRECIABLY DISTORTED
+17 17 MIRAGE - SUN VISIBLE, ALTHOUGH ASTRONOMICALLY BELOW THE HORIZON
+18 18 MIRAGE - MOON VISIBLE, ALTHOUGH ASTRONOMICALLY BELOW THE HORIZON
+19 19 RESERVED
+20 20 DAY DARKNESS, BAD, WORST IN DIRECTION SPECIFIED
+21 21 DAY DARKNESS, VERY BAD, WORST IN DIRECTION SPECIFIED
+22 22 DAY DARKNESS, BLACK, WORST IN DIRECTION SPECIFIED
+31 31 SLIGHT COLORATION OF CLOUDS AT SUNRISE ASSOCIATED WITH A TROPICAL DISTURBANCE
+32 32 DEEP-RED COLORATION OF CLOUDS AT SUNRISE ASSOCIATED WITH A TROPICAL DISTURBANCE
+33 33 SLIGHT COLORATION OF CLOUDS AT SUNSET ASSOCIATED WITH A TROPICAL DISTURBANCE
+34 34 DEEP-RED COLORATION OF CLOUDS AT SUNSET ASSOCIATED WITH A TROPICAL DISTURBANCE
+35 35 CONVERGENCE OF CH CLOUDS AT A POINT BELOW 45 DEG FORMING OR INCREASING AND ASSOCIATED WITH A TROPICAL DISTURBANCE
+36 36 CONVERGENCE OF CH CLOUDS AT A POINT ABOVE 45 DEG FORMING OR INCREASING AND ASSOCIATED WITH A TROPICAL DISTURBANCE
+37 37 CONVERGENCE OF CH CLOUDS AT A POINT BELOW 45 DEG DISSOLVING OR DIMINISHING AND ASSOCIATED WITH A TROPICAL DISTURBANCE
+38 38 CONVERGENCE OF CH CLOUDS AT A POINT ABOVE 45 DEG DISSOLVING OR DIMINISHING AND ASSOCIATED WITH A TROPICAL DISTURBANCE
+39 39 RESERVED
+40 40 HOAR FROST ON HORIZONTAL SURFACES
+41 41 HOAR FROST ON HORIZONTAL AND VERTICAL SURFACES
+42 42 PRECIPITATION CONTAINING SAND OR DESERT DUST
+43 43 PRECIPITATION CONTAINING VOLCANIC ASH
+50 50 CALM OR LIGHT WIND FOLLOWED BY A SQUALL
+51 51 CALM OR LIGHT WIND FOLLOWED BY A SUCCESSION OF SQUALLS
+52 52 GUSTY WEATHER FOLLOWED BY A SQUALL
+53 53 GUSTY WEATHER FOLLOWED BY A SUCCESSION OF SQUALLS
+54 54 SQUALL FOLLOWED BY GUSTY WEATHER
+55 55 GENERAL GUSTY WEATHER WITH SQUALL AT INTERVALS
+56 56 SQUALL APPROACHING STATION
+57 57 LINE SQUALL
+58 58 SQUALL WITH DRIFTING OR BLOWING DUST OR SAND
+59 59 LINE SQUALL WITH DRIFTING OR BLOWING DUST OR SAND
+60 60 TEMPERATURE STEADY
+61 61 TEMPERATURE FALLING, WITHOUT GOING BELOW 0 DEG C
+62 62 TEMPERATURE RISING, WITHOUT GOING ABOVE 0 DEG C
+63 63 TEMPERATURE FALLING TO A VALUE BELOW 0 DEG C
+64 64 TEMPERATURE RISING TO A VALUE ABOVE 0 DEG C
+65 65 IRREGULAR VARIATION, OSCILLATIONS OF TEMPERATURE PASSING THROUGH 0 DEG C
+66 66 IRREGULAR VARIATION, OSCILLATIONS OF TEMPERATURE NOT PASSING THROUGH 0 DEG C
+67 67 VARIATION OF TEMPERATURE NOT OBSERVED
+68 68 NOT ALLOCATED
+69 69 VARIATION OF TEMPERATURE UNKNOWN OWING TO LACK OF THERMOGRAPH
+70 70 VISIBILITY HAS NOT VARIED (SUN VISIBLE) TOWARDS DIRECTION SPECIFIED
+71 71 VISIBILITY HAS NOT VARIED (SUN INVISIBLE) TOWARDS DIRECTION SPECIFIED
+72 72 VISIBILITY HAS INCREASED (SUN VISIBLE) TOWARDS DIRECTION SPECIFIED
+73 73 VISIBILITY HAS INCREASED (SUN INVISIBLE) TOWARDS DIRECTION SPECIFIED
+74 74 VISIBILITY HAS DECREASED (SUN VISIBLE) TOWARDS DIRECTION SPECIFIED
+75 75 VISIBILITY HAS DECREASED (SUN INVISIBLE) TOWARDS DIRECTION SPECIFIED
+76 76 FOG COMING FROM DIRECTION SPECIFIED
+77 77 FOG HAS LIFTED, WITHOUT DISSIPATING
+78 78 FOG HAS DISPERSED WITHOUT REGARD TO DIRECTION
+79 79 MOVING PATCHES OR BANKS OF FOG
+80 80 BROCKEN SPECTRE
+81 81 RAINBOW
+82 82 SOLAR OR LUNAR HALO
+83 83 PARHELIA OR ANTHELIA
+84 84 SUN PILLAR
+85 85 CORONA
+86 86 TWILIGHT GLOW
+87 87 TWILIGHT GLOW ON THE MOUNTAINS (ALPENGLUEHEN)
+88 88 MIRAGE
+89 89 ZODIACAL LIGHT
+90 90 ST ELMO'S FIRE
+1023 1023 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2007.table b/definitions/bufr/tables/0/wmo/41/codetables/2007.table
new file mode 100644
index 000000000..05b4c6bd1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2007.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 SHAFT ENCODER FLOAT SYSTEM
+2 2 ULTRASONIC
+3 3 RADAR
+4 4 PRESSURE (SINGLE TRANSDUCER)
+5 5 PRESSURE (MULTIPLE TRANSDUCER)
+6 6 PRESSURE (IN STILLING WELL)
+7 7 BUBBLER PRESSURE
+8 8 ACOUSTIC (WITH SOUNDING TUBE)
+9 9 ACOUSTIC (IN OPEN AIR)
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20071.table b/definitions/bufr/tables/0/wmo/41/codetables/20071.table
new file mode 100644
index 000000000..72367bf8b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20071.table
@@ -0,0 +1,11 @@
+0 0 NO ASSESSMENT
+1 1 LESS THAN 50 KM
+2 2 BETWEEN 50 AND 200 KM
+3 3 MORE THAN 200 KM
+4 4 LESS THAN 50 KM
+5 5 BETWEEN 50 AND 200 KM
+6 6 MORE THAN 200 KM
+7 7 LESS THAN 50 KM
+8 8 BETWEEN 50 AND 200 KM
+9 9 MORE THAN 200 KM
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20079.table b/definitions/bufr/tables/0/wmo/41/codetables/20079.table
new file mode 100644
index 000000000..587408276
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20079.table
@@ -0,0 +1,4 @@
+0 0 NO SNOW OR ICE
+1 1 SNOW PRESENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2008.table b/definitions/bufr/tables/0/wmo/41/codetables/2008.table
new file mode 100644
index 000000000..e669727ec
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2008.table
@@ -0,0 +1,7 @@
+0 0 FIXED PLATFORM
+1 1 MOBILE OFFSHORE DRILL SHIP
+2 2 JACK-UP RIG
+3 3 SEMI-SUBMERSIBLE PLATFORM
+4 4 FLOATING PRODUCTION STORAGE AND OFFLOADING (FPSO) UNIT
+5 5 LIGHT VESSEL
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20085.table b/definitions/bufr/tables/0/wmo/41/codetables/20085.table
new file mode 100644
index 000000000..f929e878d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20085.table
@@ -0,0 +1,3 @@
+0 0 CLEARED (CLRD//)
+1 1 ALL RUNWAYS CLOSED (SNOCLO)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20086.table b/definitions/bufr/tables/0/wmo/41/codetables/20086.table
new file mode 100644
index 000000000..b5433303a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20086.table
@@ -0,0 +1,11 @@
+0 0 CLEAR AND DRY
+1 1 DAMP
+2 2 WET WITH WATER PATCHES
+3 3 RIME AND FROST COVERED (DEPTH NORMALLY LESS THAN 1 MM)
+4 4 DRY SNOW
+5 5 WET SNOW
+6 6 SLUSH
+7 7 ICE
+8 8 COMPACTED OR ROLLED SNOW
+9 9 FROZEN RUTS OR RIDGES
+15 15 MISSING OR NOT REPORTED (E.G. DUE TO RUNWAY CLEARANCE IN PROGRESS)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20087.table b/definitions/bufr/tables/0/wmo/41/codetables/20087.table
new file mode 100644
index 000000000..ee7971ab6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20087.table
@@ -0,0 +1,6 @@
+0 0 RESERVED
+1 1 LESS THAN 10% OF RUNWAY COVERED
+2 2 11% TO 25% OF RUNWAY COVERED
+5 5 26% TO 50% OF RUNWAY COVERED
+9 9 51% TO 100% OF RUNWAY COVERED
+15 15 MISSING OR NOT REPORTED (E.G. DUE TO RUNWAY CLEARANCE IN PROGRESS)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20089.table b/definitions/bufr/tables/0/wmo/41/codetables/20089.table
new file mode 100644
index 000000000..f616c622c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20089.table
@@ -0,0 +1,11 @@
+0 0 0.00
+1 1 0.01
+89 89 0.89
+90 90 0.90
+91 91 BRAKING ACTION POOR
+92 92 BRAKING ACTION MEDIUM TO POOR
+93 93 BRAKING ACTION MEDIUM
+94 94 BRAKING ACTION MEDIUM TO GOOD
+95 95 BRAKING ACTION GOOD
+99 99 UNRELIABLE
+127 127 MISSING, NOT REPORTED AND/OR RUNWAY NOT OPERATIONAL
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2009.table b/definitions/bufr/tables/0/wmo/41/codetables/2009.table
new file mode 100644
index 000000000..8d694b308
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2009.table
@@ -0,0 +1,4 @@
+0 0 LAND CORRECTED REFLECTANCES
+1 1 OCEAN BEST SOLUTION
+2 2 OCEAN AVERAGE SOLUTION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20090.table b/definitions/bufr/tables/0/wmo/41/codetables/20090.table
new file mode 100644
index 000000000..d13502ec4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20090.table
@@ -0,0 +1,7 @@
+0 0 RESERVED
+1 1 NACREOUS CLOUDS
+2 2 NOCTILUCENT CLOUDS
+3 3 CLOUDS FROM WATERFALLS
+4 4 CLOUDS FROM FIRES
+5 5 CLOUDS FROM VOLCANIC ERUPTIONS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20101.table b/definitions/bufr/tables/0/wmo/41/codetables/20101.table
new file mode 100644
index 000000000..abe89f5fe
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20101.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 SCHISTOCERCA GREGARIA
+2 2 LOCUSTA MIGRATORIA
+3 3 NOMADACRIS SEPTEMFASCIATA
+4 4 OEDALEUS SENEGALENSIS
+5 5 ANRACRIDIUM SPP
+6 6 OTHER LOCUSTS
+7 7 OTHER GRASSHOPPERS
+8 8 OTHER CRICKETS
+9 9 SPODOPTERA EXEMPTA
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20102.table b/definitions/bufr/tables/0/wmo/41/codetables/20102.table
new file mode 100644
index 000000000..6a53039e9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20102.table
@@ -0,0 +1,11 @@
+0 0 GREEN
+1 1 GREEN OR BLACK
+2 2 BLACK
+3 3 YELLOW AND BLACK
+4 4 STRAW/GREY
+5 5 PINK
+6 6 DARK RED/BROWN
+7 7 MIXED RED AND YELLOW
+8 8 YELLOW
+9 9 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20103.table b/definitions/bufr/tables/0/wmo/41/codetables/20103.table
new file mode 100644
index 000000000..9c4f68920
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20103.table
@@ -0,0 +1,11 @@
+0 0 HOPPERS (NYMPHS, LARVAE), STAGE 1
+1 1 HOPPERS (NYMPHS, LARVAE), STAGE 2 OR MIXED 1, 2 INSTARS (STAGES)
+2 2 HOPPERS (NYMPHS, LARVAE), STAGE 3 OR MIXED 2, 3 INSTARS
+3 3 HOPPERS (NYMPHS, LARVAE), STAGE 4 OR MIXED 3, 4 INSTARS
+4 4 HOPPERS (NYMPHS, LARVAE), STAGE 5 OR MIXED 4, 5 INSTARS
+5 5 HOPPERS (NYMPHS, LARVAE), STAGE MIXED, ALL OR MANY INSTARS
+6 6 FLEDGLINGS (WINGS TOO SOFT FOR SUSTAINED FLIGHT)
+7 7 IMMATURE ADULTS
+8 8 MIXED MATURITY ADULTS
+9 9 MATURE ADULTS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20104.table b/definitions/bufr/tables/0/wmo/41/codetables/20104.table
new file mode 100644
index 000000000..15ca8acd4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20104.table
@@ -0,0 +1,11 @@
+0 0 HOPPERS ONLY, MAINLY IN BANDS OR CLUSTERS
+1 1 WINGED ADULTS IN THE VICINITY MORE THAN 10 KILOMETRES FROM POINT OF OBSERVATION
+2 2 LOCUSTS IN FLIGHT, A FEW SEEN AT THE STATION
+3 3 LOCUSTS AT THE STATION, MOST OF THEM ON THE GROUND
+4 4 LOCUSTS, SOME ON GROUND AND OTHERS IN FLIGHT AT A HEIGHT LESS THAN 10 METRES
+5 5 LOCUSTS, SOME ON GROUND AND OTHERS IN FLIGHT AT A HEIGHT GREATER THAN 10 METRES
+6 6 LOCUSTS, MOST IN FLIGHT AT A HEIGHT LESS THAN 10 METRES
+7 7 LOCUSTS, MOST IN FLIGHT AT A HEIGHT GREATER THAN 10 METRES
+8 8 LOCUSTS, ALL OVER INFLICTING SEVERE DAMAGE TO VEGETATION, NO EXTERMINATION OPERATION
+9 9 LOCUSTS, ALL OVER INFLICTING SEVERE DAMAGE TO VEGETATION, EXTERMINATION OPERATION IN PROGRESS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20105.table b/definitions/bufr/tables/0/wmo/41/codetables/20105.table
new file mode 100644
index 000000000..b7406c09c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20105.table
@@ -0,0 +1,12 @@
+0 0 SMALL SWARM LESS THAN 1 KM2 OR ADULTS IN GROUND, TENS OR HUNDREDS OF INDIVIDUALS VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE LESS THAN 1 HOUR AGO
+1 1 SMALL SWARM LESS THAN 1 KM2 OR ADULTS IN GROUND, TENS OR HUNDREDS OF INDIVIDUALS VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE 1 TO 6 HOURS AGO
+2 2 SMALL SWARM LESS THAN 1 KM2 OR ADULTS IN GROUND, TENS OR HUNDREDS OF INDIVIDUALS VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE OVER 6 HOURS AGO
+3 3 MEDIUM SWARM OR SCATTERED ADULTS, SEVERAL VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE LESS THAN 1 HOUR AGO
+4 4 MEDIUM SWARM OR SCATTERED ADULTS, SEVERAL VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE 1 TO 6 HOURS AGO
+5 5 MEDIUM SWARM OR SCATTERED ADULTS, SEVERAL VISIBLE SIMULTANEOUSLY, DURATION OF PASSAGE OVER 6 HOURS AGO
+6 6 LARGE SWARM OR ISOLATED ADULTS, SEEN SINGLY, DURATION OF PASSAGE LESS THAN 1 HOUR AGO
+7 7 LARGE SWARM OR ISOLATED ADULTS, SEEN SINGLY, DURATION OF PASSAGE 1 TO 6 HOURS AGO
+8 8 LARGE SWARM OR ISOLATED ADULTS, SEEN SINGLY, DURATION OF PASSAGE OVER 6 HOURS AGO
+9 9 MORE THAN ONE SWARM OF LOCUSTS
+10 10 SIZE OF SWARM AND/OR DURATION OF PASSAGE NOT DETERMINED OWING TO DARKNESS OR SIMILAR PHENOMENA
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20106.table b/definitions/bufr/tables/0/wmo/41/codetables/20106.table
new file mode 100644
index 000000000..2a8c4a098
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20106.table
@@ -0,0 +1,7 @@
+0 0 RESERVED
+1 1 THIN DENSITY SWARM (SWARM VISIBLE ONLY WHEN NEAR ENOUGH FOR INDIVIDUAL LOCUSTS TO BE DISCERNED)
+2 2 MEDIUM DENSITY SWARM
+3 3 DENSE SWARM (OBSCURING NEARBY FEATURES, E.G. TREES)
+4 4 ISOLATED HOPPERS SEEN SINGLY
+5 5 SCATTERED HOPPERS, SEVERAL VISIBLE SIMULTANEOUSLY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20107.table b/definitions/bufr/tables/0/wmo/41/codetables/20107.table
new file mode 100644
index 000000000..0bea30ad5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20107.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 GENERALLY IN THE DIRECTION NE
+2 2 GENERALLY IN THE DIRECTION E
+3 3 GENERALLY IN THE DIRECTION SE
+4 4 GENERALLY IN THE DIRECTION S
+5 5 GENERALLY IN THE DIRECTION SW
+6 6 GENERALLY IN THE DIRECTION W
+7 7 GENERALLY IN THE DIRECTION NW
+8 8 GENERALLY IN THE DIRECTION N
+9 9 SPECIFIC DIRECTION INDETERMINABLE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20108.table b/definitions/bufr/tables/0/wmo/41/codetables/20108.table
new file mode 100644
index 000000000..4404614cb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20108.table
@@ -0,0 +1,9 @@
+0 0 BARE GROUND
+1 1 DRY, PRESENCE OF FEW AND ISOLATED SHRUBS
+2 2 SPARSE VEGETATION (SPROUTING)
+3 3 DENSE VEGETATION (SPROUTING)
+4 4 SPARSE VEGETATION (GROWING)
+5 5 DENSE VEGETATION (GROWING)
+6 6 SPARSE VEGETATION IN FLOWER
+7 7 DENSE VEGETATION IN FLOWER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2011.table b/definitions/bufr/tables/0/wmo/41/codetables/2011.table
new file mode 100644
index 000000000..92e46bdc9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2011.table
@@ -0,0 +1,100 @@
+0 0 RESERVED
+1 1 NOT VACANT
+2 2 NO RADIOSONDE - PASSIVE TARGET (E.G. REFLECTOR)
+3 3 NO RADIOSONDE - ACTIVE TARGET (E.G. TRANSPONDER)
+4 4 NO RADIOSONDE - PASSIVE TEMPERATURE-HUMIDITY PROFILER
+5 5 NO RADIOSONDE - ACTIVE TEMPERATURE-HUMIDITY PROFILER
+6 6 NO RADIOSONDE - RADIO-ACOUSTIC SOUNDER
+7 7 NOT VACANT
+8 8 NO RADIOSONDE -... (RESERVED)
+9 9 NO RADIOSONDE - SYSTEM UNKNOWN OR NOT SPECIFIED
+10 10 SIPPICAN LMS5 W/CHIP THERMISTOR, DUCT MOUNTED CAPACITANCE RELATIVE HUMIDITY SENSOR AND DERIVED PRESSURE FROM GPS HEIGHT
+11 11 SIPPICAN LMS6 W/CHIP THERMISTOR, EXTERNAL BOOM MOUNTED CAPACITANCE RELATIVE HUMIDITY SENSOR, AND DERIVED PRESSURE FROM GPS HEIGHT
+12 12 JIN YANG RSG-20A WITH DERIVED PRESSURE FROM GPS HEIGHT/GL-5000P (REPUBLIC OF KOREA)
+13 13 VAISALA RS92/MARWIN MW32 (FINLAND)
+14 14 VAISALA RS92/DIGICORA MW41 (FINLAND)
+15 15 PAZA-12M/RADIOTHEODOLITE-UL (UKRAINE)
+16 16 PAZA-22/AVK-1 (UKRAINE)
+17 17 GRAW DFM-09 (GERMANY)
+18 18 NOT VACANT
+19 19 POLUS-MRZ-N1 (RUSSIAN FEDERATION)
+20 20 NOT VACANT
+21 21 JIN YANG 1524LA LORAN-C/GL5000 (REPUBLIC OF KOREA)
+22 22 MEISEI RS-11G GPS RADIOSONDE W/THERMISTOR, CAPACITANCE RELATIVE HUMIDITY SENSOR, AND DERIVED PRESSURE FROM GPS HEIGHT (JAPAN)
+23 23 VAISALA RS41/DIGICORA MW41 (FINLAND)
+24 24 VAISALA RS41/AUTOSONDE (FINLAND)
+25 25 VAISALA RS41/MARWIN MW32 (FINLAND)
+26 26 METEOLABOR SRS-C34/ARGUS 37 (SWITZERLAND)
+27 27 NOT VACANT
+28 28 AVK - AK2-02 (RUSSIAN FEDERATION)
+29 29 MARL-A OR VEKTOR-M - AK2-02 (RUSSIAN FEDERATION)
+30 30 MEISEI RS-06G (JAPAN)
+31 31 TAIYUAN GTS1-1/GFE(L) (CHINA )
+32 32 SHANGHAI GTS1/GFE(L) (CHINA)
+33 33 NANJING GTS1-2/GFE(L) (CHINA)
+34 34 IMET-4 GPS RADIOSONDE (USA)
+35 35 MEISEI IMS-100 GPS RADIOSONDE W/THERMISTOR SENSOR, CAPACITANCE RELATIVE HUMIDITY SENSOR, AND DERIVED PRESSURE FROM GPS HEIGHT (JAPAN)
+36 36 MEISEI IMDS-17 GPS DROPSONDE W/THERMISTOR SENSOR, CAPACITANCE RELATIVE HUMIDITY SENSOR, AND CAPACITANCE PRESSURE SENSOR (JAPAN)
+37 37 NOT VACANT
+38 38 WEATHEX WXR-301D WITH DERIVED PRESSURE FROM GPS (REPUBLIC OF KOREA)
+39 39 SPRENGER E076 (GERMANY)
+40 40 SPRENGER E084 (GERMANY)
+41 41 VAISALA RS41 WITH PRESSURE DERIVED FROM GPS HEIGHT/DIGICORA MW41 (FINLAND)
+42 42 VAISALA RS41 WITH PRESSURE DERIVED FROM GPS HEIGHT/AUTOSONDE (FINLAND)
+43 43 NANJING DAQIAO XGP-3G (CHINA)*
+44 44 TIANJIN HUAYUNTIANYI GTS(U)1 (CHINA)*
+45 45 BEIJING CHANGFENG CF-06 (CHINA)*
+46 46 SHANGHAI CHANGWANG GTS3 (CHINA)*
+47 47 NOT VACANT
+48 48 PAZA-22M/MARL-A
+49 49 NOT VACANT
+50 50 METEOLABOR SRS-C50/ARGUS (SWITZERLAND)
+51 51 NOT VACANT
+52 52 VAISALA RS92-NGP/INTERMET IMS-2000 (UNITED STATES)
+53 53 AVK - I-2012 (RUSSIAN FEDERATION)
+54 54 GRAW DFM-17 (GERMANY)
+55 55 MEISEI RS-01G (JAPAN)
+56 56 M2K2 (FRANCE)
+57 57 MODEM M2K2-DC (FRANCE)
+58 58 AVK-BAR (RUSSIAN FEDERATION)
+59 59 MODEM M2K2-R 1680 MHZ RDF RADIOSONDE WITH PRESSURE SENSOR CHIP (FRANCE)
+60 60 MARL-A OR VEKTOR-M - I-2012 (RUSSIAN FEDERATION)
+61 61 NOT VACANT
+62 62 MARL-A OR VEKTOR-M - MRZ-3MK (RUSSIAN FEDERATION)
+63 63 MODEM M20 RADIOSONDE W/THERMISTOR SENSOR, CAPACITANCE RELATIVE HUMIDITY SENSOR, AND DERIVED PRESSURE FROM GPS HEIGHT (FRANCE)
+64 64 MODEM PILOTSONDE GPS RADIOSONDE (FRANCE)
+65 65 METEOSIS MTS-01 (REPUBLIC OF TURKIYE)
+66 66 VACANT
+67 67 VAISALA RS80/DIGICORA III (FINLAND)
+68 68 AVK-RZM-2 (RUSSIAN FEDERATION)
+69 69 MARL-A OR VEKTOR-M-RZM-2 (RUSSIAN FEDERATION)
+70 70 VAISALA RS92/STAR (FINLAND)
+71 71 VAISALA RS90/LORAN/DIGICORA I, II OR MARWIN (FINLAND)
+72 72 VAISALA RS90/PC-CORA (FINLAND)
+73 73 МARL-A (RUSSIAN FEDERATION) - ASPAN-15 (KAZAKHSTAN)
+74 74 VAISALA RS90/STAR (FINLAND)
+75 75 AVK-MRZ-ARMA (RUSSIAN FEDERATION)
+76 76 AVK-RF95-ARMA (RUSSIAN FEDERATION)
+77 77 MODEM GPSONDE M10 (FRANCE)
+78 78 VAISALA RS90/DIGICORA III (FINLAND)
+79 79 VAISALA RS92/DIGICORA I,II OR MARWIN (FINLAND)
+80 80 VAISALA RS92/DIGICORA III (FINLAND)
+81 81 VAISALA RS92/AUTOSONDE (FINLAND)
+82 82 LOCKHEED MARTIN LMS-6 W/CHIP THERMISTOR; EXTERNAL BOOM MOUNTED POLYMER CAPACITIVE RELATIVE HUMIDITY SENSOR; CAPACITIVE PRESSURE SENSOR AND GPS WIND
+83 83 VAISALA RS92-D/INTERMET IMS 1500 W/SILICON CAPACITIVE PRESSURE SENSOR, CAPACITIVE WIRE TEMPERATURE SENSOR, TWIN THIN-FILM HEATED POLYMER CAPACITIVE RELATIVE HUMIDITY SENSOR AND RDF WIND
+84 84 IMET-54/IMET-3200/3400 GPS RADIOSONDE WITH DERIVED PRESSURE FROM GPS HEIGHT (SOUTH AFRICA)
+85 85 SIPPICAN MARK IIA WITH CHIP THERMISTOR, CARBON ELEMENT AND DERIVED PRESSURE FROM GPS HEIGHT
+86 86 SIPPICAN MARK II WITH CHIP THERMISTOR, PRESSURE AND CARBON ELEMENT
+87 87 SIPPICAN MARK IIA WITH CHIP THERMISTOR, PRESSURE AND CARBON ELEMENT
+88 88 MARL-A OR VEKTOR-M-MRZ (RUSSIAN FEDERATION)
+89 89 MARL-A OR VEKTOR-M-BAR (RUSSIAN FEDERATION)
+90 90 RADIOSONDE NOT SPECIFIED OR UNKNOWN
+91 91 PRESSURE ONLY RADIOSONDE
+92 92 PRESSURE ONLY RADIOSONDE PLUS TRANSPONDER
+93 93 PRESSURE ONLY RADIOSONDE PLUS RADAR REFLECTOR
+94 94 NO PRESSURE RADIOSONDE PLUS TRANSPONDER
+95 95 NO PRESSURE RADIOSONDE PLUS RADAR REFLECTOR
+96 96 DESCENDING RADIOSONDE
+97 97 IMET-2/IMET-1500 RDF RADIOSONDE WITH PRESSURE SENSOR CHIP (SOUTH AFRICA)
+98 98 IMET-2/IMET-1500 GPS RADIOSONDE WITH DERIVED PRESSURE FROM GPS HEIGHT (SOUTH AFRICA)
+99 99 IMET-2/IMET-3200 GPS RADIOSONDE WITH DERIVED PRESSURE FROM GPS HEIGHT (SOUTH AFRICA)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20119.table b/definitions/bufr/tables/0/wmo/41/codetables/20119.table
new file mode 100644
index 000000000..4a4b40f87
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20119.table
@@ -0,0 +1,4 @@
+0 0 NOT DEFINED
+1 1 POSITIVE
+2 2 NEGATIVE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20124.table b/definitions/bufr/tables/0/wmo/41/codetables/20124.table
new file mode 100644
index 000000000..f78eacb17
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20124.table
@@ -0,0 +1,4 @@
+0 0 NOT DEFINED
+1 1 LIGHTNING STROKE
+2 2 LIGHTNING FLASH, BY MANUAL OBSERVATION, OR IF EQUIPMENT INSENSITIVE TO STROKE RESOLUTION
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2013.table b/definitions/bufr/tables/0/wmo/41/codetables/2013.table
new file mode 100644
index 000000000..91ce6501d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2013.table
@@ -0,0 +1,11 @@
+0 0 NO CORRECTION
+1 1 CIMO SOLAR CORRECTED AND CIMO INFRARED CORRECTED
+2 2 CIMO SOLAR CORRECTED AND INFRARED CORRECTED
+3 3 CIMO SOLAR CORRECTED ONLY
+4 4 SOLAR AND INFRARED CORRECTED AUTOMATICALLY BY RADIOSONDE SYSTEM
+5 5 SOLAR CORRECTED AUTOMATICALLY BY RADIOSONDE SYSTEM
+6 6 SOLAR AND INFRARED CORRECTED AS SPECIFIED BY COUNTRY
+7 7 SOLAR CORRECTED AS SPECIFIED BY COUNTRY
+8 8 SOLAR AND INFRARED CORRECTED AS SPECIFIED BY GRUAN
+9 9 SOLAR CORRECTED AS SPECIFIED BY GRUAN
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20136.table b/definitions/bufr/tables/0/wmo/41/codetables/20136.table
new file mode 100644
index 000000000..42c012b50
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20136.table
@@ -0,0 +1,44 @@
+0 0 ISOLATED CUMULUS HUMILIS AND/OR CUMULUS MEDIOCRIS OF VERTICAL DEVELOPMENT
+1 1 NUMEROUS CUMULUS HUMILIS AND/OR CUMULUS MEDIOCRIS OF VERTICAL DEVELOPMENT
+2 2 ISOLATED CUMULUS CONGESTUS OF VERTICAL DEVELOPMENT
+3 3 NUMEROUS CUMULUS CONGESTUS OF VERTICAL DEVELOPMENT
+4 4 ISOLATED CUMULONIMBUS OF VERTICAL DEVELOPMENT
+5 5 NUMEROUS CUMULONIMBUS OF VERTICAL DEVELOPMENT
+6 6 ISOLATED CUMULUS AND CUMULONIMBUS OF VERTICAL DEVELOPMENT
+7 7 NUMEROUS CUMULUS AND CUMULONIMBUS OF VERTICAL DEVELOPMENT
+10 10 RESERVED
+11 11 ISOLATED OROGRAPHIC CLOUDS, PILEUS, INCUS, FORMING
+12 12 ISOLATED OROGRAPHIC CLOUDS, PILEUS, INCUS, NOT CHANGING
+13 13 ISOLATED OROGRAPHIC CLOUDS, PILEUS, INCUS, DISSOLVING
+14 14 IRREGULAR BANKS OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., FORMING
+15 15 IRREGULAR BANKS OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., NOT CHANGING
+16 16 IRREGULAR BANKS OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., DISSOLVING
+17 17 COMPACT LAYER OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., FORMING
+18 18 COMPACT LAYER OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., NOT CHANGING
+19 19 COMPACT LAYER OF OROGRAPHIC CLOUD, FOEHN BANK, ETC., DISSOLVING
+20 20 ALL MOUNTAINS OPEN, ONLY SMALL AMOUNTS OF CLOUD PRESENT
+21 21 MOUNTAINS PARTLY COVERED WITH DETACHED CLOUDS (NOT MORE THAN HALF THE PEAKS CAN BE SEEN)
+22 22 ALL MOUNTAIN SLOPES COVERED, PEAKS AND PASSES FREE
+23 23 MOUNTAINS OPEN ON OBSERVER’S SIDE (ONLY SMALL AMOUNTS OF CLOUD PRESENT), BUT A CONTINUOUS WALL OF CLOUD ON THE OTHER SIDE
+24 24 CLOUDS LOW ABOVE THE MOUNTAINS, BUT ALL SLOPES AND MOUNTAINS OPEN (ONLY SMALL AMOUNTS OF CLOUD ON THE SLOPES)
+25 25 CLOUDS LOW ABOVE THE MOUNTAINS, PEAKS PARTLY COVERED BY PRECIPITATION TRAILS OR CLOUDS
+26 26 ALL PEAKS COVERED BUT PASSES OPEN, SLOPES EITHER OPEN OR COVERED
+27 27 MOUNTAINS GENERALLY COVERED BUT SOME PEAKS FREE, SLOPES WHOLLY OR PARTIALLY COVERED
+28 28 ALL PEAKS, PASSES AND SLOPES COVERED
+29 29 MOUNTAINS CANNOT BE SEEN OWING TO DARKNESS, FOG, SNOWSTORM, PRECIPITATION, ETC.
+35 35 NON-PERSISTENT CONDENSATION TRAILS
+36 36 PERSISTENT CONDENSATION TRAILS COVERING LESS THAN 1/8 OF THE SKY
+37 37 PERSISTENT CONDENSATION TRAILS COVERING 1/8 OF THE SKY
+38 38 PERSISTENT CONDENSATION TRAILS COVERING 2/8 OF THE SKY
+39 39 PERSISTENT CONDENSATION TRAILS COVERING 3/8 OR MORE OF THE SKY
+40 40 NO CLOUD OR MIST OBSERVED FROM A HIGHER LEVEL
+41 41 MIST, CLEAR ABOVE OBSERVED FROM A HIGHER LEVEL
+42 42 FOG PATCHES OBSERVED FROM A HIGHER LEVEL
+43 43 LAYER OF SLIGHT FOG OBSERVED FROM A HIGHER LEVEL
+44 44 LAYER OF THICK FOG OBSERVED FROM A HIGHER LEVEL
+45 45 SOME ISOLATED CLOUDS OBSERVED FROM A HIGHER LEVEL
+46 46 ISOLATED CLOUDS AND FOG BELOW OBSERVED FROM A HIGHER LEVEL
+47 47 MANY ISOLATED CLOUDS OBSERVED FROM A HIGHER LEVEL
+48 48 SEA OF CLOUDS OBSERVED FROM A HIGHER LEVEL
+49 49 BAD VISIBILITY OBSCURING THE DOWNWARD VIEW OBSERVED FROM A HIGHER LEVEL
+511 511 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20137.table b/definitions/bufr/tables/0/wmo/41/codetables/20137.table
new file mode 100644
index 000000000..adda88054
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20137.table
@@ -0,0 +1,11 @@
+0 0 NO CHANGE
+1 1 CUMULIFICATION
+2 2 SLOW ELEVATION
+3 3 RAPID ELEVATION
+4 4 ELEVATION AND STRATIFICATION
+5 5 SLOW LOWERING
+6 6 RAPID LOWERING
+7 7 STRATIFICATION
+8 8 STRATIFICATION AND LOWERING
+9 9 RAPID CHANGE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20138.table b/definitions/bufr/tables/0/wmo/41/codetables/20138.table
new file mode 100644
index 000000000..ed9b315fc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20138.table
@@ -0,0 +1,9 @@
+0 0 DRY
+1 1 MOIST
+2 2 WET
+3 3 RIME
+4 4 SNOW
+5 5 ICE
+6 6 GLAZE
+7 7 NOT DRY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20139.table b/definitions/bufr/tables/0/wmo/41/codetables/20139.table
new file mode 100644
index 000000000..2e5658c3d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20139.table
@@ -0,0 +1,7 @@
+0 0 CLEAR
+1 1 SINGLE LAYER WATER
+2 2 SINGLE LAYER ICE
+3 3 2-LAYERS (WATER/ICE)
+4 4 SINGLE LAYER ASH
+5 5 2-LAYERS ASH
+15 15 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2014.table b/definitions/bufr/tables/0/wmo/41/codetables/2014.table
new file mode 100644
index 000000000..bc5c5fcb8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2014.table
@@ -0,0 +1,51 @@
+0 0 NO WIND FINDING
+1 1 AUTOMATIC WITH AUXILIARY OPTICAL DIRECTION FINDING
+2 2 AUTOMATIC WITH AUXILIARY RADIO DIRECTION FINDING
+3 3 AUTOMATIC WITH AUXILIARY RANGING
+4 4 NOT USED
+5 5 AUTOMATIC WITH MULTIPLE VLF-OMEGA SIGNALS
+6 6 AUTOMATIC CROSS CHAIN LORAN-C
+7 7 AUTOMATIC WITH AUXILIARY WIND PROFILER
+8 8 AUTOMATIC SATELLITE NAVIGATION
+19 19 TRACKING TECHNIQUE NOT SPECIFIED
+20 20 VESSEL STOPPED
+21 21 VESSEL DIVERTED FROM ORIGINAL DESTINATION
+22 22 VESSEL'S ARRIVAL DELAYED
+23 23 CONTAINER DAMAGED
+24 24 POWER FAILURE TO CONTAINER
+29 29 OTHER PROBLEMS
+30 30 MAJOR POWER PROBLEMS
+31 31 UPS INOPERATIVE
+32 32 RECEIVER HARDWARE PROBLEMS
+33 33 RECEIVER SOFTWARE PROBLEMS
+34 34 PROCESSOR HARDWARE PROBLEMS
+35 35 PROCESSOR SOFTWARE PROBLEMS
+36 36 NAVAID SYSTEM DAMAGED
+37 37 SHORTAGE OF LIFTING GAS
+38 38 RESERVED
+39 39 OTHER PROBLEMS
+40 40 MECHANICAL DEFECT
+41 41 MATERIAL DEFECT (HAND LAUNCHER)
+42 42 POWER FAILURE
+43 43 CONTROL FAILURE
+44 44 PNEUMATIC/HYDRAULIC FAILURE
+45 45 OTHER PROBLEMS
+46 46 COMPRESSOR PROBLEMS
+47 47 BALLOON PROBLEMS
+48 48 BALLOON RELEASE PROBLEMS
+49 49 LAUNCHER DAMAGED
+50 50 R/S RECEIVER ANTENNA DEFECT
+51 51 NAVAID ANTENNA DEFECT
+52 52 R/S RECEIVER CABLING (ANTENNA) DEFECT
+53 53 NAVAID ANTENNA CABLING DEFECT
+59 59 OTHER PROBLEMS
+60 60 ASAP COMMUNICATIONS DEFECT
+61 61 COMMUNICATIONS FACILITY REJECTED DATA
+62 62 NO POWER AT TRANSMITTING ANTENNA
+63 63 ANTENNA CABLE BROKEN
+64 64 ANTENNA CABLE DEFECT
+65 65 MESSAGE TRANSMITTED POWER BELOW NORMAL
+69 69 OTHER PROBLEMS
+70 70 ALL SYSTEMS IN NORMAL OPERATION
+99 99 STATUS OF SYSTEM AND ITS COMPONENTS NOT SPECIFIED
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/20143.table b/definitions/bufr/tables/0/wmo/41/codetables/20143.table
new file mode 100644
index 000000000..849964a75
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/20143.table
@@ -0,0 +1,4 @@
+0 0 NO LIQUID CLOUD
+1 1 LIQUID CLOUD PRESENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2015.table b/definitions/bufr/tables/0/wmo/41/codetables/2015.table
new file mode 100644
index 000000000..7b0ccaf86
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2015.table
@@ -0,0 +1,7 @@
+0 0 RESERVED
+1 1 PRESSURE ONLY RADIOSONDE
+2 2 PRESSURE ONLY RADIOSONDE PLUS TRANSPONDER
+3 3 PRESSURE ONLY RADIOSONDE PLUS RADAR REFLECTOR
+4 4 NO-PRESSURE RADIOSONDE PLUS TRANSPONDER
+5 5 NO-PRESSURE RADIOSONDE PLUS RADAR REFLECTOR
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2016.table b/definitions/bufr/tables/0/wmo/41/codetables/2016.table
new file mode 100644
index 000000000..4a3022611
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2016.table
@@ -0,0 +1,4 @@
+1 1 TRAIN REGULATOR
+2 2 LIGHT UNIT
+3 3 PARACHUTE
+4 4 ROOFTOP RELEASE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2017.table b/definitions/bufr/tables/0/wmo/41/codetables/2017.table
new file mode 100644
index 000000000..7fac2e10f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2017.table
@@ -0,0 +1,6 @@
+0 0 NO CORRECTIONS
+1 1 TIME LAG CORRECTION PROVIDED BY THE MANUFACTURER
+2 2 SOLAR RADIATION CORRECTION PROVIDED BY THE MANUFACTURER
+3 3 SOLAR RADIATION AND TIME LAG CORRECTION PROVIDED BY THE MANUFACTURER
+7 7 GRUAN SOLAR RADIATION AND TIME LAG CORRECTION
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2019.table b/definitions/bufr/tables/0/wmo/41/codetables/2019.table
new file mode 100644
index 000000000..f2f6a4dbf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2019.table
@@ -0,0 +1,410 @@
+7 7 SSH
+8 8 SSM/T
+9 9 SSM/T2
+10 10 AATSR
+11 11 ATSR
+12 12 ATSR-2
+13 13 MWR
+14 14 PMR
+15 15 SCR
+30 30 ARGOS
+40 40 LASER REFLECTORS
+41 41 DORIS
+42 42 DORIS-NG
+47 47 POSEIDON-1 (SSALT1)
+48 48 POSEIDON-2 (SSALT2)
+49 49 POSEIDON-3 (SSALT3)
+50 50 ATSR/M
+51 51 HRG
+52 52 HRV
+53 53 HRVIR
+54 54 SCARAB/MV2
+55 55 POLDER
+56 56 IIR
+57 57 POSEIDON-4
+60 60 VEGETATION
+61 61 WINDII
+62 62 ALTIKA
+63 63 SWIM
+80 80 RADARSAT DTT
+81 81 RADARSAT TTC
+85 85 SAR (CSA)
+90 90 MOPITT
+91 91 OSIRIS
+92 92 ACE-FTS
+97 97 PANCHROMATIC IMAGER
+98 98 GPS RECEIVER
+102 102 CHAMP GPS SOUNDER
+103 103 IGOR
+104 104 TRI-G
+116 116 CHAMP GRAVITY PACKAGE (ACCELEROMETER+GPS)
+117 117 CHAMP MAGNETOMETRY PACKAGE (1 SCALAR+2 VECTOR MAGNETOMETER)
+120 120 ENVISAT COMMS
+121 121 ERS COMMS
+130 130 ALADIN
+131 131 ATLID
+140 140 AMI/SAR/IMAGE
+141 141 AMI/SAR/WAVE
+142 142 AMI/SCATTEROMETER
+143 143 ASAR
+144 144 ASAR
+145 145 ASAR
+146 146 CPR
+147 147 RA-2/MWR
+148 148 RA/MWR
+150 150 SCATTEROMETER
+151 151 SAR-C
+152 152 SW
+161 161 MIPAS
+162 162 MWR-2
+163 163 SOPRANO
+170 170 GOME
+172 172 GOMOS
+173 173 ALTIUS
+174 174 MERIS
+175 175 SCIAMACHY
+176 176 MIRAS
+177 177 SIRAL
+178 178 SRAL
+179 179 OLCI
+180 180 SLSTR
+181 181 METEOSAT COMMS
+182 182 MSG COMMS
+190 190 ASCAT
+200 200 GERB
+202 202 GRAS
+203 203 MHS
+205 205 MVIRI
+207 207 SEVIRI
+208 208 VIRI
+210 210 FCI
+211 211 LI
+212 212 IRS
+213 213 S4
+220 220 GOME-2
+221 221 IASI
+230 230 3MI
+231 231 IASI-NG
+232 232 METIMAGE
+233 233 MWS
+234 234 RO
+235 235 S5/UVNS
+236 236 ICI
+237 237 MWI
+238 238 SCA
+240 240 DCP
+245 245 CCD
+246 246 HSB
+248 248 OBA
+250 250 WFI
+255 255 IRMSS
+260 260 BSS & FSS TRANSPONDERS
+261 261 DRT-S&R
+262 262 INSAT COMMS
+268 268 HR-PAN
+269 269 MSMR
+270 270 VHRR
+271 271 WIFS
+275 275 AWIFS
+276 276 LISS-I
+277 277 LISS-II
+278 278 LISS-III
+279 279 LISS-IV
+284 284 PAN
+285 285 MOS
+286 286 OCM
+287 287 ROSA
+288 288 SCAT
+289 289 IMG
+290 290 MTSAT COMMS
+291 291 HIMAWARI COMMS
+294 294 JAMI
+295 295 IMAGER/MTSAT-2
+296 296 VISSR
+297 297 AHI
+300 300 GLAS
+301 301 LRA
+302 302 MBLA
+303 303 CALIOP
+309 309 CPR (CLOUDSAT)
+312 312 NSCAT
+313 313 SEAWINDS
+314 314 RAPIDSCAT
+330 330 ACRIM
+334 334 BUV
+336 336 ALI
+347 347 ASTER
+348 348 CERES-2
+351 351 GPSDR
+353 353 HIRDLS
+354 354 HRDI
+356 356 LIS
+358 358 PEM
+359 359 SEAWIFS
+360 360 SUSIM (UARS)
+363 363 SBUV/1
+365 365 TMI
+366 366 JMR
+367 367 AMR
+369 369 LIMS
+370 370 LRIR
+371 371 EPIC
+372 372 NISTAR
+373 373 PLASMA-MAG
+374 374 XPS
+375 375 VIRS
+376 376 POLDER II
+377 377 TIM
+379 379 WFC
+382 382 CLAES
+383 383 HALOE
+384 384 ISAMS
+385 385 MISR
+386 386 MLS
+387 387 MLS (EOS-AURA)
+389 389 MODIS
+393 393 HAIRS
+394 394 OMI
+395 395 ATMOSPHERIC CORRECTOR
+396 396 HYPERION
+397 397 HRIR
+398 398 MRIR
+399 399 SAGE I
+400 400 SAGE II
+401 401 SAGE III
+402 402 SAMS
+403 403 SAM-II
+404 404 IRIS
+405 405 GIFTS
+420 420 AIRS
+421 421 SIRS-A
+422 422 SIRS-B
+426 426 SOLSTICE
+430 430 TES
+431 431 TOMS
+432 432 OCO
+433 433 TMS
+434 434 SMAP
+450 450 ADEOS COMMS
+451 451 DCS (JAXA)
+453 453 GMS COMMS
+454 454 JERS-1 COMMS
+460 460 RIS
+461 461 PR
+462 462 SAR
+470 470 PALSAR
+478 478 AMSR2
+479 479 AMSR-E
+480 480 PRISM (ALOS)
+481 481 AMSR
+482 482 AVNIR
+483 483 AVNIR-2
+484 484 GLI
+485 485 MESSR
+486 486 MSR
+487 487 OCTS
+488 488 OPS
+489 489 VISSR (GMS-5)
+490 490 VTIR
+510 510 ILAS-I
+511 511 ILAS-II
+512 512 IMG
+514 514 SEM
+515 515 SOFIS
+516 516 TANSO-FTS
+517 517 TANSO-CAI
+518 518 DPR
+519 519 GMI
+520 520 SMMR
+526 526 CION-A
+527 527 CION-B
+528 528 CION-C
+529 529 CION-D
+530 530 SGNOS-A
+531 531 SGNOS-B
+532 532 SGNOS-C
+533 533 SGNOS-D
+534 534 PYXIS-A
+535 535 PYXIS-B
+540 540 DCS (NOAA)
+541 541 GOES COMMS
+542 542 LANDSAT COMMS
+543 543 NOAA COMMS
+544 544 S&R (GOES)
+545 545 S&R (NOAA)
+546 546 WEFAX
+547 547 SEM (GOES)
+550 550 SSM
+551 551 SSJ/4
+552 552 SSIES-2
+553 553 SSB/X-2
+570 570 AMSU-A
+574 574 AMSU-B
+580 580 ATOVS (HIRS/3 + AMSU + AVHRR/3)
+590 590 AVHRR/2
+591 591 AVHRR/3
+592 592 AVHRR/4
+600 600 ERBE
+601 601 ETM+
+604 604 HIRS/1
+605 605 HIRS/2
+606 606 HIRS/3
+607 607 HIRS/4
+615 615 IMAGER
+616 616 VIIRS
+617 617 ABI
+618 618 GLM
+620 620 CRIRS/NP
+621 621 ATMS
+622 622 MSS
+623 623 MSU
+624 624 SBUV/2
+625 625 SBUV/3
+626 626 SOUNDER
+627 627 SSU
+628 628 TM
+629 629 TOVS (HIRS/2 + MSU + SSU)
+630 630 VAS
+631 631 SSZ
+645 645 SEM
+650 650 MVIRSR (10 CHANNEL)
+651 651 MVIRSR (3 CHANNEL)
+652 652 MVIRSR (5 CHANNEL)
+670 670 RLSBO
+680 680 MSU-EU
+681 681 MSU-UM
+682 682 RM-08
+683 683 SU-UMS
+684 684 SU-VR
+685 685 TRASSER
+686 686 SCAT
+687 687 ALT
+688 688 MWI
+689 689 GEMS
+700 700 KONDOR-2
+701 701 BRK
+710 710 ALISSA
+712 712 BALKAN-2 LIDAR
+715 715 MK-4
+716 716 MK-4M
+730 730 GREBEN
+731 731 SAR-10
+732 732 SAR-3
+733 733 SAR-70
+740 740 SLR-3
+745 745 TRAVERS SAR
+750 750 174-K
+751 751 BTVK
+752 752 CHAIKA
+753 753 DELTA-2
+755 755 IKAR-D
+756 756 IKAR-N
+757 757 IKAR-P
+760 760 ISP
+761 761 KFA-1000
+762 762 KFA-200
+763 763 KFA-3000
+770 770 KLIMAT
+771 771 KLIMAT-2
+775 775 MIRAS
+776 776 MIVZA
+777 777 MIVZA-M
+780 780 MR-2000
+781 781 MR-2000M
+785 785 MR-900
+786 786 MR-900B
+790 790 MSU-E
+791 791 MSU-E1
+792 792 MSU-E2
+793 793 MSU-M
+794 794 MSU-S
+795 795 MSU-SK
+796 796 MSU-V
+810 810 MTZA
+815 815 MZOAS
+820 820 R-225
+821 821 R-400
+822 822 R-600
+830 830 RMS
+835 835 TV CAMERA
+836 836 SILVA
+840 840 SROSMO
+850 850 BUFS-2
+851 851 BUFS-4
+855 855 ISTOK-1
+856 856 SFM-2
+857 857 DOPI
+858 858 KGI-4
+859 859 OZON-M
+860 860 RMK-2
+861 861 MTVZA-GY
+862 862 IKFS-2
+900 900 MAXIE
+901 901 OLS
+905 905 SSM/I
+906 906 SSM/T-1
+907 907 SSM/T-2
+908 908 SSMIS
+909 909 VTPR
+910 910 SXI
+930 930 EHIC
+931 931 X-RAY ASTRONOMY PAYLOAD
+932 932 IVISSR (FY-2)
+933 933 IRAS
+934 934 MWAS
+935 935 IMWAS
+936 936 MWHS
+937 937 MVIRS
+938 938 MWRI
+940 940 MTVZA-OK
+941 941 SAPHIR
+942 942 MADRAS
+943 943 SCAT (ON CFOSAT)
+944 944 ALT
+945 945 TSIS
+946 946 CMIS
+947 947 OMPS-NADIR
+948 948 GPSOS
+949 949 SESS
+950 950 VIRR
+951 951 TOM
+952 952 OP
+953 953 MWHS-2
+954 954 MWTS-2
+955 955 HIRAS
+956 956 SBUS
+957 957 TOU
+958 958 GNOS
+959 959 SMR
+960 960 OMPS-LIMB
+961 961 AGRI-1
+962 962 GIIRS-1
+963 963 LMI
+964 964 SEP
+965 965 GNOS-2
+966 966 MWTS-3
+967 967 GIIRS-2
+968 968 GIIRS-3
+969 969 GIIRS-4
+970 970 GIIRS-5
+971 971 GIIRS-6
+972 972 AGRI-2
+973 973 AGRI-3
+974 974 AGRI-4
+975 975 AGRI-5
+976 976 AGRI-6
+977 977 GHI
+980 980 AMI
+981 981 MI
+982 982 KSEM
+983 983 HIRAS-2
+984 984 HIRAS-3
+985 985 MWRI-1
+986 986 MWRI-2
+987 987 MWRI-RM
+990 990 SMMR
+991 991 THIR
+992 992 NEMS
+993 993 SCAMS
+994 994 ESMR
+2047 2047
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2020.table b/definitions/bufr/tables/0/wmo/41/codetables/2020.table
new file mode 100644
index 000000000..fd3c93626
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2020.table
@@ -0,0 +1,37 @@
+0 0 NIMBUS
+1 1 VTPR
+2 2 TIROS 1 (TIROS, NOAA-6 TO NOAA-13)
+3 3 TIROS 2 (NOAA-14 ONWARDS)
+10 10 EOS
+20 20 GPM-CORE
+31 31 DMSP
+61 61 EUMETSAT POLAR SYSTEM (EPS)
+62 62 EUMETSAT POLAR SYSTEM (EPS-SG)
+91 91 ERS
+92 92 SENTINEL-3
+121 121 ADEOS
+122 122 GCOM
+241 241 GOES
+251 251 TROPICS
+261 261 JASON
+271 271 GMS
+272 272 MTSAT
+273 273 HIMAWARI
+281 281 COMS
+301 301 INSAT
+331 331 METEOSAT OPERATIONAL PROGRAMME (MOP)
+332 332 METEOSAT TRANSITIONAL PROGRAMME (MTP)
+333 333 METEOSAT SECOND GENERATION PROGRAMME (MSG)
+334 334 METEOSAT THIRD GENERATION PROGRAMME (MTG)
+351 351 GOMS
+352 352 METEOR-M N2
+380 380 FY-1
+381 381 FY-2
+382 382 FY-3
+383 383 FY-4
+401 401 GPS
+402 402 GLONASS
+403 403 GALILEO
+404 404 BDS (BEIDOU NAVIGATION SATELLITE SYSTEM)
+405 405 QUASI-ZENITH SATELLITE SYSTEM (QZSS)
+511 511 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2021.table b/definitions/bufr/tables/0/wmo/41/codetables/2021.table
new file mode 100644
index 000000000..b95fdc989
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2021.table
@@ -0,0 +1,8 @@
+1 1 HIGH-RESOLUTION INFRARED SOUNDER (HIRS)
+2 2 MICROWAVE SOUNDING UNIT (MSU)
+3 3 STRATOSPHERIC SOUNDING UNIT (SSU)
+4 4 AMI (ADVANCED MICROWAVE INSTRUMENT) WIND MODE
+5 5 AMI (ADVANCED MICROWAVE INSTRUMENT) WAVE MODE
+6 6 AMI (ADVANCED MICROWAVE INSTRUMENT) IMAGE MODE
+7 7 RADAR ALTIMETER
+8 8 ATSR (ALONG-TRACK SCANNING RADIOMETER)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2022.table b/definitions/bufr/tables/0/wmo/41/codetables/2022.table
new file mode 100644
index 000000000..5068e7fd7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2022.table
@@ -0,0 +1,5 @@
+1 1 PROCESSING TECHNIQUE NOT DEFINED
+2 2 AUTOMATED STATISTICAL REGRESSION
+3 3 CLEAR PATH
+4 4 PARTLY CLOUDY PATH
+5 5 CLOUDY PATH
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2023.table b/definitions/bufr/tables/0/wmo/41/codetables/2023.table
new file mode 100644
index 000000000..be7eb84e4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2023.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 WIND DERIVED FROM CLOUD MOTION OBSERVED IN THE INFRARED CHANNEL
+2 2 WIND DERIVED FROM CLOUD MOTION OBSERVED IN THE VISIBLE CHANNEL
+3 3 WIND DERIVED FROM CLOUD MOTION OBSERVED IN THE WATER VAPOUR CHANNEL
+4 4 WIND DERIVED FROM MOTION OBSERVED IN A COMBINATION OF SPECTRAL CHANNELS
+5 5 WIND DERIVED FROM MOTION OBSERVED IN THE WATER VAPOUR CHANNEL IN CLEAR AIR
+6 6 WIND DERIVED FROM MOTION OBSERVED IN THE OZONE CHANNEL
+7 7 WIND DERIVED FROM MOTION OBSERVED IN WATER VAPOUR CHANNEL (CLOUD OR CLEAR AIR NOT SPECIFIED)
+13 13 ROOT-MEAN-SQUARE
+14 14 RESERVED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2024.table b/definitions/bufr/tables/0/wmo/41/codetables/2024.table
new file mode 100644
index 000000000..00ec80ef6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2024.table
@@ -0,0 +1,4 @@
+0 0 RESERVED
+1 1 TABLE WITH FULL RANGE OF HUMIDITY VARIATION IN LAYER
+2 2 REGRESSION TECHNIQUE ON 2 HUMIDITY VALUES IN LAYER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2025.table b/definitions/bufr/tables/0/wmo/41/codetables/2025.table
new file mode 100644
index 000000000..045416aac
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2025.table
@@ -0,0 +1,16 @@
+1 1 RESERVED
+2 2 HIRS
+3 3 MSU
+6 6 HIRS
+7 7 MSU
+10 10 HIRS (1, 2, 3, 8, 9, 16, 17)
+11 11 HIRS (1, 2, 3, 9, 17)
+12 12 MSU
+15 15 HIRS
+16 16 HIRS*
+17 17 MSU
+18 18 SKINTK (OCEAN ONLY)
+21 21 HIRS
+22 22 SSU
+23 23 MSU (3, 4)
+24 24 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2030.table b/definitions/bufr/tables/0/wmo/41/codetables/2030.table
new file mode 100644
index 000000000..2777bbcd3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2030.table
@@ -0,0 +1,8 @@
+0 0 RESERVED
+1 1 ADCP (ACOUSTIC DOPPLER CURRENT PROFILER)
+2 2 GEK (GEOMAGNETIC ELECTROKINETOGRAPH)
+3 3 SHIP'S SET AND DRIFT DETERMINED BY FIXES 3-6 HOURS APART
+4 4 SHIP'S SET AND DRIFT DETERMINED BY FIXES MORE THAN 6 HOURS BUT LESS THAN 12 HOURS APART
+5 5 DRIFT OF BUOY
+6 6 ADCP (ACOUSTIC DOPPLER CURRENT PROFILER)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2031.table b/definitions/bufr/tables/0/wmo/41/codetables/2031.table
new file mode 100644
index 000000000..c096d370c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2031.table
@@ -0,0 +1,21 @@
+0 0 RESERVED
+1 1 INSTANTANEOUS
+2 2 AVERAGED OVER 3 MIN OR LESS
+3 3 AVERAGED OVER MORE THAN 3 MIN, BUT 6 MIN AT THE MOST
+4 4 AVERAGED OVER MORE THAN 6 MIN, BUT 12 MIN AT THE MOST
+5 5 INSTANTANEOUS
+6 6 AVERAGED OVER 3 MIN OR LESS
+7 7 AVERAGED OVER MORE THAN 3 MIN, BUT 6 MIN AT THE MOST
+8 8 AVERAGED OVER MORE THAN 6 MIN, BUT 12 MIN AT THE MOST
+9 9 VECTOR OR DOPPLER CURRENT PROFILING METHOD NOT USED
+10 10 RESERVED
+11 11 1 HOUR OR LESS
+12 12 MORE THAN 1 HOUR BUT 2 HOURS AT THE MOST
+13 13 MORE THAN 2 HOURS BUT 4 HOURS AT THE MOST
+14 14 MORE THAN 4 HOURS BUT 8 HOURS AT THE MOST
+15 15 MORE THAN 8 HOURS BUT 12 HOURS AT THE MOST
+16 16 MORE THAN 12 HOURS BUT 18 HOURS AT THE MOST
+17 17 MORE THAN 18 HOURS BUT 24 HOURS AT THE MOST
+18 18 RESERVED
+19 19 DRIFT METHOD NOT USED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2032.table b/definitions/bufr/tables/0/wmo/41/codetables/2032.table
new file mode 100644
index 000000000..7e9310db0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2032.table
@@ -0,0 +1,4 @@
+0 0 VALUES AT SELECTED DEPTHS (DATA POINTS FIXED BY THE INSTRUMENT OR SELECTED BY ANY OTHER METHOD)
+1 1 VALUES AT SELECTED DEPTHS (DATA POINTS TAKEN FROM TRACES AT SIGNIFICANT DEPTHS)
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2033.table b/definitions/bufr/tables/0/wmo/41/codetables/2033.table
new file mode 100644
index 000000000..d590a8454
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2033.table
@@ -0,0 +1,5 @@
+0 0 NO SALINITY MEASURED
+1 1 IN SITU SENSOR, ACCURACY BETTER THAN 0.02 0/00
+2 2 IN SITU SENSOR, ACCURACY LESS THAN 0.02 0/00
+3 3 SAMPLE ANALYSIS
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2034.table b/definitions/bufr/tables/0/wmo/41/codetables/2034.table
new file mode 100644
index 000000000..06cdd52d2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2034.table
@@ -0,0 +1,7 @@
+0 0 UNSPECIFIED DROGUE
+1 1 HOLEY SOCK
+2 2 TRISTAR
+3 3 WINDOW SHADE
+4 4 PARACHUTE
+5 5 NON-LAGRANGIAN SEA ANCHOR
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2036.table b/definitions/bufr/tables/0/wmo/41/codetables/2036.table
new file mode 100644
index 000000000..7782d302a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2036.table
@@ -0,0 +1,4 @@
+0 0 DRIFTING BUOY
+1 1 FIXED BUOY
+2 2 SUBSURFACE FLOAT (MOVING)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2037.table b/definitions/bufr/tables/0/wmo/41/codetables/2037.table
new file mode 100644
index 000000000..729c40e63
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2037.table
@@ -0,0 +1,8 @@
+0 0 RESERVED
+1 1 MANUAL READING FROM VERTICAL TIDE STAFF
+2 2 MANUAL READING FROM SINGLE AUTOMATIC RECORDER AT STATION
+3 3 MANUAL READING FROM MULTIPLE AUTOMATIC RECORDERS AT STATION
+4 4 AUTOMATIC READING FROM SINGLE AUTOMATIC RECORDER AT STATION WITHOUT LEVEL REFERENCE CHECK
+5 5 AUTOMATIC READING FROM SINGLE AUTOMATIC RECORDER AT STATION WITH LEVEL REFERENCE CHECK, OR FROM MULTIPLE AUTOMATIC RECORDERS
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2038.table b/definitions/bufr/tables/0/wmo/41/codetables/2038.table
new file mode 100644
index 000000000..458f14169
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2038.table
@@ -0,0 +1,16 @@
+0 0 SHIP INTAKE
+1 1 BUCKET
+2 2 HULL CONTACT SENSOR
+3 3 REVERSING THERMOMETER
+4 4 STD/CTD SENSOR
+5 5 MECHANICAL BT
+6 6 EXPENDABLE BT
+7 7 DIGITAL BT
+8 8 THERMISTOR CHAIN
+9 9 INFRARED SCANNER
+10 10 MICROWAVE SCANNER
+11 11 INFRARED RADIOMETER
+12 12 IN-LINE THERMOSALINOGRAPH
+13 13 TOWED BODY
+14 14 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2039.table b/definitions/bufr/tables/0/wmo/41/codetables/2039.table
new file mode 100644
index 000000000..0a94982b5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2039.table
@@ -0,0 +1,5 @@
+0 0 MEASURED WET-BULB TEMPERATURE
+1 1 ICED BULB MEASURED WET-BULB TEMPERATURE
+2 2 COMPUTED WET-BULB TEMPERATURE
+3 3 ICED BULB COMPUTED WET-BULB TEMPERATURE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2040.table b/definitions/bufr/tables/0/wmo/41/codetables/2040.table
new file mode 100644
index 000000000..78b291706
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2040.table
@@ -0,0 +1,8 @@
+0 0 SHIP'S MOTION REMOVED BY AVERAGING
+1 1 SHIP'S MOTION REMOVED BY MOTION COMPENSATION
+2 2 SHIP'S MOTION NOT REMOVED
+3 3 SHIP'S MOTION REMOVED BY AVERAGING
+4 4 SHIP'S MOTION REMOVED BY MOTION COMPENSATION
+5 5 SHIP'S MOTION NOT REMOVED
+6 6 DOPPLER CURRENT PROFILING METHOD NOT USED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2041.table b/definitions/bufr/tables/0/wmo/41/codetables/2041.table
new file mode 100644
index 000000000..ef5bf86b3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2041.table
@@ -0,0 +1,6 @@
+0 0 INFORMATION BASED ON MANUAL ANALYSIS
+1 1 INFORMATION BASED ON COMPUTER ANALYSIS
+2 2 INFORMATION BASED ON DATA ASSIMILATION
+3 3 INFORMATION BASED ON COMPUTER ANALYSIS OR DATA ASSIMILATION MANUALLY MODIFIED
+10 10 INFORMATION BASED ON THE NUMERICAL WEATHER PREDICTION
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2042.table b/definitions/bufr/tables/0/wmo/41/codetables/2042.table
new file mode 100644
index 000000000..eb2445b83
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2042.table
@@ -0,0 +1,4 @@
+0 0 VALUE ORIGINALLY REPORTED IN M/S
+1 1 VALUE ORIGINALLY REPORTED IN KNOTS
+2 2 NO SEA CURRENT DATA AVAILABLE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2044.table b/definitions/bufr/tables/0/wmo/41/codetables/2044.table
new file mode 100644
index 000000000..0e10ed8e1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2044.table
@@ -0,0 +1,6 @@
+0 0 RESERVED FOR FUTURE USE
+1 1 LONGUET-HIGGINS (1964)
+2 2 LONGUET-HIGGINS (F3 METHOD)
+3 3 MAXIMUM LIKELIHOOD METHOD
+4 4 MAXIMUM ENTROPY METHOD
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2045.table b/definitions/bufr/tables/0/wmo/41/codetables/2045.table
new file mode 100644
index 000000000..374e4f27e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2045.table
@@ -0,0 +1,5 @@
+0 0 SEA STATION
+1 1 AUTOMATIC DATA BUOY
+2 2 AIRCRAFT
+3 3 SATELLITE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2046.table b/definitions/bufr/tables/0/wmo/41/codetables/2046.table
new file mode 100644
index 000000000..57fb9d6be
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2046.table
@@ -0,0 +1,4 @@
+0 0 RESERVED FOR FUTURE USE
+1 1 HEAVE SENSOR
+2 2 SLOPE SENSOR
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2047.table b/definitions/bufr/tables/0/wmo/41/codetables/2047.table
new file mode 100644
index 000000000..821393179
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2047.table
@@ -0,0 +1,9 @@
+0 0 RESERVED
+1 1 DART II (PMEL)
+2 2 DART ETD
+3 3 SAIC TSUNAMI BUOY (STB)
+4 4 GFZ - POTSDAM
+5 5 INCOIS (INDIA)
+6 6 INABUOY (INDONESIA)
+7 7 ENVIRTECH
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2048.table b/definitions/bufr/tables/0/wmo/41/codetables/2048.table
new file mode 100644
index 000000000..e4325f83b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2048.table
@@ -0,0 +1,16 @@
+0 0 HIRS
+1 1 MSU
+2 2 SSU
+3 3 AMSU-A
+4 4 AMSU-B
+5 5 AVHRR
+6 6 SSMI
+7 7 NSCAT
+8 8 SEAWINDS
+9 9 POSEIDON ALTIMETER
+10 10 JMR (JASON MICROWAVE RADIOMETER)
+11 11 MHS
+12 12 ASCAT
+13 13 OSCAT2
+14 14 RESERVED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2049.table b/definitions/bufr/tables/0/wmo/41/codetables/2049.table
new file mode 100644
index 000000000..ade5cac86
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2049.table
@@ -0,0 +1,4 @@
+1 1 PROCESSING TECHNIQUE NOT DEFINED
+2 2 SIMULTANEOUS PHYSICAL RETRIEVAL
+3 3 CLEAR SOUNDING
+4 4 CLOUDY SOUNDING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2050.table b/definitions/bufr/tables/0/wmo/41/codetables/2050.table
new file mode 100644
index 000000000..fbcce617d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2050.table
@@ -0,0 +1,19 @@
+1 1 1
+2 2 2
+3 3 3
+4 4 4
+5 5 5
+6 6 6
+7 7 7
+8 8 8
+9 9 9
+10 10 10
+11 11 11
+12 12 12
+13 13 13
+14 14 14
+15 15 15
+16 16 16
+17 17 17
+18 18 18
+19 19 19
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2051.table b/definitions/bufr/tables/0/wmo/41/codetables/2051.table
new file mode 100644
index 000000000..3524ae72d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2051.table
@@ -0,0 +1,5 @@
+0 0 RESERVED
+1 1 MAXIMUM/MINIMUM THERMOMETERS
+2 2 AUTOMATED INSTRUMENTS
+3 3 THERMOGRAPH
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2052.table b/definitions/bufr/tables/0/wmo/41/codetables/2052.table
new file mode 100644
index 000000000..8b6262caa
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2052.table
@@ -0,0 +1,5 @@
+1 1 1
+2 2 2
+3 3 3
+4 4 4
+5 5 5
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2053.table b/definitions/bufr/tables/0/wmo/41/codetables/2053.table
new file mode 100644
index 000000000..03e5e295e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2053.table
@@ -0,0 +1,5 @@
+0 0 OBSERVED BRIGHTNESS TEMPERATURE
+1 1 BRIGHTNESS TEMPERATURE WITH BIAS CORRECTION APPLIED
+2 2 BRIGHTNESS TEMPERATURE CALCULATED FROM FIRST GUESS
+3 3 BRIGHTNESS TEMPERATURE CALCULATED FROM SOUNDING
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2054.table b/definitions/bufr/tables/0/wmo/41/codetables/2054.table
new file mode 100644
index 000000000..0995688ba
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2054.table
@@ -0,0 +1,6 @@
+0 0 PARAMETER DERIVED USING OBSERVED SOUNDER BRIGHTNESS TEMPERATURES
+1 1 PARAMETER DERIVED USING OBSERVED IMAGER BRIGHTNESS TEMPERATURES
+2 2 PARAMETER DERIVED USING FIRST GUESS INFORMATION
+3 3 PARAMETER DERIVED USING NMC ANALYSIS INFORMATION
+4 4 PARAMETER DERIVED USING RADIOSONDE INFORMATION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2055.table b/definitions/bufr/tables/0/wmo/41/codetables/2055.table
new file mode 100644
index 000000000..ce06f0089
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2055.table
@@ -0,0 +1,10 @@
+0 0 STATISTICS GENERATED COMPARING RETRIEVAL VERSUS RADIOSONDE
+1 1 STATISTICS GENERATED COMPARING RETRIEVAL VERSUS FIRST GUESS
+2 2 STATISTICS GENERATED COMPARING RADIOSONDE VERSUS FIRST GUESS
+3 3 STATISTICS GENERATED COMPARING OBSERVED VERSUS RETRIEVAL
+4 4 STATISTICS GENERATED COMPARING OBSERVED VERSUS FIRST GUESS
+5 5 STATISTICS GENERATED COMPARING RADIOSONDE VERSUS IMAGER
+6 6 STATISTICS GENERATED COMPARING RADIOSONDE VERSUS SOUNDER
+7 7 STATISTICS GENERATED FOR RADIOSONDE
+8 8 STATISTICS GENERATED FOR FIRST GUESS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2056.table b/definitions/bufr/tables/0/wmo/41/codetables/2056.table
new file mode 100644
index 000000000..86eb98302
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2056.table
@@ -0,0 +1,6 @@
+0 0 SUMS OF DIFFERENCES
+1 1 SUMS OF SQUARED DIFFERENCES
+2 2 SAMPLE SIZE
+3 3 MINIMUM DIFFERENCE
+4 4 MAXIMUM DIFFERENCE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2057.table b/definitions/bufr/tables/0/wmo/41/codetables/2057.table
new file mode 100644
index 000000000..681e6bd08
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2057.table
@@ -0,0 +1,7 @@
+0 0 NESTED GRID MODEL (NGM)
+1 1 AVIATION MODEL (AVN)
+2 2 MEDIUM RANGE FORECAST (MRF) MODEL
+3 3 GLOBAL DATA ASSIMILATION SYSTEM (GDAS) FORECAST MODEL
+4 4 PRIOR SOUNDINGS (WITHIN 3 HOURS OF CURRENT TIME)
+5 5 CLIMATOLOGY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2058.table b/definitions/bufr/tables/0/wmo/41/codetables/2058.table
new file mode 100644
index 000000000..6c45eda11
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2058.table
@@ -0,0 +1,5 @@
+0 0 12 HOUR AND 18 HOUR
+1 1 18 HOUR AND 24 HOUR
+2 2 6 HOUR AND 12 HOUR
+3 3 GREATER THAN 24 HOURS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2059.table b/definitions/bufr/tables/0/wmo/41/codetables/2059.table
new file mode 100644
index 000000000..8f089d3c4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2059.table
@@ -0,0 +1,5 @@
+0 0 NCEP NESTED GRID MODEL (NGM) ANALYSIS
+1 1 NCEP AVIATION MODEL (AVN) ANALYSIS
+2 2 NCEP MEDIUM RANGE FORECAST (MRF) MODEL ANALYSIS
+3 3 NCEP GLOBAL DATA ASSIMILATION SYSTEM (GDAS) FORECAST MODEL ANALYSIS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2060.table b/definitions/bufr/tables/0/wmo/41/codetables/2060.table
new file mode 100644
index 000000000..6f846987b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2060.table
@@ -0,0 +1,7 @@
+0 0 CURRENT SURFACE HOURLY REPORTS
+1 1 CURRENT SHIP REPORTS
+2 2 CURRENT BUOY REPORTS
+3 3 ONE HOUR OLD SURFACE HOURLY REPORTS
+4 4 ONE HOUR OLD SHIP REPORTS
+5 5 ONE HOUR OLD BUOY REPORTS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2061.table b/definitions/bufr/tables/0/wmo/41/codetables/2061.table
new file mode 100644
index 000000000..592d51eb4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2061.table
@@ -0,0 +1,3 @@
+0 0 INERTIAL NAVIGATION SYSTEM
+1 1 OMEGA
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2062.table b/definitions/bufr/tables/0/wmo/41/codetables/2062.table
new file mode 100644
index 000000000..2d0f4e202
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2062.table
@@ -0,0 +1,7 @@
+0 0 ASDAR
+1 1 ASDAR (ACARS ALSO AVAILABLE BUT NOT OPERATIVE)
+2 2 ASDAR (ACARS ALSO AVAILABLE AND OPERATIVE)
+3 3 ACARS
+4 4 ACARS (ASDAR ALSO AVAILABLE BUT NOT OPERATIVE)
+5 5 ACARS (ASDAR ALSO AVAILABLE AND OPERATIVE)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2064.table b/definitions/bufr/tables/0/wmo/41/codetables/2064.table
new file mode 100644
index 000000000..741430292
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2064.table
@@ -0,0 +1,4 @@
+0 0 GOOD
+1 1 BAD
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2066.table b/definitions/bufr/tables/0/wmo/41/codetables/2066.table
new file mode 100644
index 000000000..a3865dc68
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2066.table
@@ -0,0 +1,9 @@
+0 0 INTERMET IMS 2000
+1 1 INTERMET IMS 1500C
+2 2 SHANGHAI GTC1
+3 3 NANJING GTC2
+4 4 NANJING GFE(L)1
+5 5 MARL-A RADAR
+6 6 VEKTOR-M RADAR
+62 62 OTHER
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2070.table b/definitions/bufr/tables/0/wmo/41/codetables/2070.table
new file mode 100644
index 000000000..5a098ea26
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2070.table
@@ -0,0 +1,13 @@
+0 0 ACTUAL LOCATION IN SECONDS
+1 1 ACTUAL LOCATION IN MINUTES
+2 2 ACTUAL LOCATION IN DEGREES
+3 3 ACTUAL LOCATION IN DECIDEGREES
+4 4 ACTUAL LOCATION IN CENTIDEGREES
+5 5 REFERENCED TO CHECKPOINT IN SECONDS
+6 6 REFERENCED TO CHECKPOINT IN MINUTES
+7 7 REFERENCED TO CHECKPOINT IN DEGREES
+8 8 REFERENCED TO CHECKPOINT IN DECIDEGREES
+9 9 REFERENCED TO CHECKPOINT IN CENTIDEGREES
+10 10 ACTUAL LOCATION IN TENTHS OF A MINUTE
+11 11 REFERENCED TO CHECKPOINT IN TENTHS OF A MINUTE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2080.table b/definitions/bufr/tables/0/wmo/41/codetables/2080.table
new file mode 100644
index 000000000..c68a39dd6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2080.table
@@ -0,0 +1,7 @@
+0 0 KAYSAM
+1 1 TOTEX
+2 2 KKS
+3 3 GUANGZHOU SHUANGYI (CHINA)
+4 4 CHEMCHINA ZHUZHOU (CHINA)
+62 62 OTHER
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2081.table b/definitions/bufr/tables/0/wmo/41/codetables/2081.table
new file mode 100644
index 000000000..dfe9551a9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2081.table
@@ -0,0 +1,11 @@
+0 0 GP26
+1 1 GP28
+2 2 GP30
+3 3 HM26
+4 4 HM28
+5 5 HM30
+6 6 SV16
+7 7 TOTEX TA TYPE BALLOONS
+8 8 TOTEX TX TYPE BALLOONS
+30 30 OTHER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2083.table b/definitions/bufr/tables/0/wmo/41/codetables/2083.table
new file mode 100644
index 000000000..611c5bf64
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2083.table
@@ -0,0 +1,7 @@
+0 0 HIGH BAY
+1 1 LOW BAY
+2 2 BALLOON-INFLATED LAUNCH SYSTEM (BILS)
+3 3 ROOF-TOP BILS
+4 4 AUTOMATED UNMANNED SOUNDING SYSTEM
+14 14 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2084.table b/definitions/bufr/tables/0/wmo/41/codetables/2084.table
new file mode 100644
index 000000000..be6430ae6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2084.table
@@ -0,0 +1,5 @@
+0 0 HYDROGEN
+1 1 HELIUM
+2 2 NATURAL GAS
+14 14 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2092.table b/definitions/bufr/tables/0/wmo/41/codetables/2092.table
new file mode 100644
index 000000000..b171b55c8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2092.table
@@ -0,0 +1,4 @@
+0 0 UV CHANNEL BASED RETRIEVAL
+1 1 VISIBLE CHANNEL BASED RETRIEVAL
+2 2 COMBINED UV BASED RETRIEVAL AND VISIBLE BASED RETRIEVAL
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2095.table b/definitions/bufr/tables/0/wmo/41/codetables/2095.table
new file mode 100644
index 000000000..580fe930c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2095.table
@@ -0,0 +1,7 @@
+0 0 CAPACITANCE ANEROID
+1 1 DERIVED FROM GPS
+2 2 RESISTIVE STRAIN GAUGE
+3 3 SILICON CAPACITOR
+4 4 DERIVED FROM RADAR HEIGHT
+30 30 OTHER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2096.table b/definitions/bufr/tables/0/wmo/41/codetables/2096.table
new file mode 100644
index 000000000..9f1b1027c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2096.table
@@ -0,0 +1,9 @@
+0 0 ROD THERMISTOR
+1 1 BEAD THERMISTOR
+2 2 CAPACITANCE BEAD
+3 3 CAPACITANCE WIRE
+4 4 RESISTIVE SENSOR
+5 5 CHIP THERMISTOR
+6 6 MERCURY
+7 7 ALCOHOL/GLYCOL
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2097.table b/definitions/bufr/tables/0/wmo/41/codetables/2097.table
new file mode 100644
index 000000000..309ef642a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2097.table
@@ -0,0 +1,26 @@
+0 0 VIZ MARK II CARBON HYGRISTOR
+1 1 VIZ B2 HYGRISTOR
+2 2 VAISALA A-HUMICAP
+3 3 VAISALA H-HUMICAP
+4 4 CAPACITANCE SENSOR
+5 5 VAISALA RS90
+6 6 SIPPICAN MARK IIA CARBON HYGRISTOR
+7 7 TWIN ALTERNATIVELY HEATED HUMICAP CAPACITANCE SENSOR
+8 8 HUMICAP CAPACITANCE SENSOR WITH ACTIVE DE-ICING METHOD
+9 9 CARBON HYGRISTOR
+10 10 PSYCHROMETER
+11 11 CAPACITIVE (POLYMER)
+12 12 CAPACITIVE (CERAMIC, INCLUDING METAL OXIDE)
+13 13 RESISTIVE (GENERIC)
+14 14 RESISTIVE (SALT POLYMER)
+15 15 RESISTIVE (CONDUCTIVE POLYMER)
+16 16 THERMAL CONDUCTIVITY
+17 17 GRAVIMETRIC
+18 18 PAPER-METAL COIL
+19 19 ORDINARY HUMAN HAIR
+20 20 ROLLED HAIR (TORSION)
+21 21 GOLDBEATER'S SKIN
+22 22 CHILLED MIRROR HYGROMETER
+23 23 DEW CELL
+24 24 OPTICAL ABSORPTION SENSOR
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2099.table b/definitions/bufr/tables/0/wmo/41/codetables/2099.table
new file mode 100644
index 000000000..74cb817c9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2099.table
@@ -0,0 +1,5 @@
+0 0 HH POLARIZATION
+1 1 VV POLARIZATION
+2 2 HV POLARIZATION REAL VALUED COMPONENT
+3 3 HV POLARIZATION IMAGINARY VALUED COMPONENT
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2101.table b/definitions/bufr/tables/0/wmo/41/codetables/2101.table
new file mode 100644
index 000000000..efdb3ec56
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2101.table
@@ -0,0 +1,10 @@
+0 0 CENTRE FRONT-FED PARABOLOID
+1 1 OFFSET FRONT-FED PARABOLOID
+2 2 CENTRE CASSEGRAIN PARABOLOID
+3 3 OFFSET CASSEGRAIN PARABOLOID
+4 4 PLANAR ARRAY
+5 5 COAXIAL-COLLINEAR ARRAY
+6 6 YAGI ELEMENTS ARRAY
+7 7 MICROSTRIP
+14 14 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21026.table b/definitions/bufr/tables/0/wmo/41/codetables/21026.table
new file mode 100644
index 000000000..819a6ebfd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21026.table
@@ -0,0 +1,4 @@
+0 0 NOMINAL
+1 1 CLOSE TO NOMINAL
+2 2 FAR FROM NOMINAL
+7 7 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2103.table b/definitions/bufr/tables/0/wmo/41/codetables/2103.table
new file mode 100644
index 000000000..417d2c9a4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2103.table
@@ -0,0 +1 @@
+1 1 RADAR ANTENNA IS PROTECTED BY A RADOME
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2104.table b/definitions/bufr/tables/0/wmo/41/codetables/2104.table
new file mode 100644
index 000000000..e39a15365
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2104.table
@@ -0,0 +1,9 @@
+0 0 HORIZONTAL POLARIZATION
+1 1 VERTICAL POLARIZATION
+2 2 RIGHT CIRCULAR POLARIZATION
+3 3 LEFT CIRCULAR POLARIZATION
+4 4 HORIZONTAL AND VERTICAL POLARIZATION
+5 5 RIGHT AND LEFT CIRCULAR POLARIZATION
+6 6 QUASI-HORIZONTAL POLARIZATION
+7 7 QUASI-VERTICAL POLARIZATION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21066.table b/definitions/bufr/tables/0/wmo/41/codetables/21066.table
new file mode 100644
index 000000000..9bcafea2a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21066.table
@@ -0,0 +1,11 @@
+1 1 PROCESSING EQUIPMENT NOT WORKING
+2 2 EQUIPMENT FAILED
+3 3 PRF CODE CHANGED DURING IMAGE GENERATION
+4 4 SAMPLING WINDOW CHANGED DURING IMAGE GENERATION
+5 5 GAIN CHANGED DURING IMAGE GENERATION
+6 6 CHIRP REPLICA EXCEEDS SPECIFIED VALUE
+7 7 INPUT DATA MEAN AND STANDARD DEVIATION OF IN-PHASE AND QUADRATURE OUT OF RANGE
+8 8 DOPPLER CENTROID CONFIDENCE > MMCC VALUE
+9 9 DOPPLER CENTROID ABSOLUTE VALUE > PRF/2
+10 10 DOPPLER AMBIGUITY CONFIDENCE < MMCC VALUE
+11 11 OUTPUT DATA MEAN AND STANDARD DEVIATION =< MMCC VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21067.table b/definitions/bufr/tables/0/wmo/41/codetables/21067.table
new file mode 100644
index 000000000..a0ed399e4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21067.table
@@ -0,0 +1,12 @@
+1 1 NO FOREBEAM CALCULATION
+2 2 NO MIDBEAM CALCULATION
+3 3 NO AFTBEAM CALCULATION
+4 4 FOREBEAM ARCING DETECTED
+5 5 MIDBEAM ARCING DETECTED
+6 6 AFTBEAM ARCING DETECTED
+7 7 ANY BEAM NOISE CONTENT ABOVE OR EQUAL TO THRESHOLD
+8 8 LAND (ANY LAND IN CELL FOOTPRINT)
+9 9 AUTONOMOUS AMBIGUITY REMOVAL NOT USED
+10 10 METEOROLOGICAL BACKGROUND NOT USED
+11 11 MINIMUM RESIDUAL EXCEEDED THRESHOLD
+12 12 FRAME CHECKSUM ERROR DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21068.table b/definitions/bufr/tables/0/wmo/41/codetables/21068.table
new file mode 100644
index 000000000..102171f44
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21068.table
@@ -0,0 +1,7 @@
+1 1 STANDARD DEVIATION OF WIND SPEED OUTSIDE MMCC LIMIT
+2 2 STANDARD DEVIATION OF SIGNIFICANT WAVE HEIGHT OUTSIDE MMCC LIMIT
+3 3 STANDARD DEVIATION OF ALTITUDE OUTSIDE MMCC LIMIT
+4 4 MEAN PEAKINESS OUTSIDE MMCC LIMIT
+5 5 FRAME CHECKSUM ERROR DETECTED
+6 6 HEIGHT-TIME LOOP TIME CONSTANT CORRECTION NOT PERFORMED
+7 7 NOT ENOUGH MEASUREMENTS (N < 10)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21069.table b/definitions/bufr/tables/0/wmo/41/codetables/21069.table
new file mode 100644
index 000000000..b258fae22
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21069.table
@@ -0,0 +1,9 @@
+1 1 12.0 MICRON CHANNEL PRESENT IN SOURCE DATA
+2 2 11.0 MICRON CHANNEL PRESENT IN SOURCE DATA
+3 3 3.7 MICRON CHANNEL PRESENT IN SOURCE DATA
+4 4 1.6 MICRON CHANNEL PRESENT IN SOURCE DATA
+5 5 CLOUD IDENTIFICATION USED 1.6 MICRON HISTOGRAM REFLECTANCE CLOUD TEST
+6 6 1.6 MICRON HISTOGRAM REFLECTANCE CLOUD TEST USED DYNAMIC THRESHOLD
+7 7 SUN GLINT DETECTED BY 1.6 MICRON REFLECTANCE CLOUD TEST
+8 8 3.7 MICRON CHANNEL USED IN SEA-SURFACE TEMPERATURE RETRIEVAL
+9 9 SEA-SURFACE TEMPERATURE DERIVATION USED DAYTIME DATA (NIGHT-TIME IF ZERO)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21070.table b/definitions/bufr/tables/0/wmo/41/codetables/21070.table
new file mode 100644
index 000000000..669655f00
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21070.table
@@ -0,0 +1,22 @@
+1 1 CELL 1: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+2 2 CELL 2: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+3 3 CELL 3: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+4 4 CELL 4: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+5 5 CELL 5: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+6 6 CELL 6: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+7 7 CELL 7: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+8 8 CELL 8: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+9 9 CELL 9: NADIR-ONLY VIEW SST USED 3.7 MICRON CHANNEL
+10 10 CELL 1: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+11 11 CELL 2: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+12 12 CELL 3: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+13 13 CELL 4: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+14 14 CELL 5: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+15 15 CELL 6: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+16 16 CELL 7: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+17 17 CELL 8: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+18 18 CELL 9: DUAL VIEW SST USED 3.7 MICRON CHANNEL
+19 19 NADIR VIEW CONTAINS DAY-TIME DATA (NIGHT IF ZERO)
+20 20 FORWARD VIEW CONTAINS DAY-TIME DATA (NIGHT IF ZERO)
+21 21 RECORD CONTAINS CONTRIBUTIONS FROM INSTRUMENT SCANS ACQUIRED WHEN ERS PLATFORM NOT IN YAW-STEERING MODE
+22 22 RECORD CONTAINS CONTRIBUTIONS FROM INSTRUMENT SCANS FOR WHICH PRODUCT CONFIDENCE DATA SHOW QUALITY IS POOR OR UNKNOWN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21072.table b/definitions/bufr/tables/0/wmo/41/codetables/21072.table
new file mode 100644
index 000000000..99e4b1c29
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21072.table
@@ -0,0 +1,3 @@
+1 1 HEIGHT ERROR CORRECTION APPLIED INSTEAD OF OPEN LOOP CALIBRATION
+2 2 MICROWAVE SOUNDER USED FOR TROPOSPHERE CORRECTION
+3 3 AGC OUTPUT CORRECTION APPLIED INSTEAD OF OPEN LOOP CALIBRATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21073.table b/definitions/bufr/tables/0/wmo/41/codetables/21073.table
new file mode 100644
index 000000000..9538fa553
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21073.table
@@ -0,0 +1,8 @@
+1 1 BLANK DATA RECORD
+2 2 TEST
+3 3 CALIBRATION (CLOSED LOOP)
+4 4 BITE
+5 5 ACQUISITION ON ICE
+6 6 ACQUISITION ON OCEAN
+7 7 TRACKING ON ICE
+8 8 TRACKING ON OCEAN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21076.table b/definitions/bufr/tables/0/wmo/41/codetables/21076.table
new file mode 100644
index 000000000..bc52ac558
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21076.table
@@ -0,0 +1,4 @@
+0 0 LINEAR
+1 1 LOGARITHMIC (BASE E)
+2 2 LOGARITHMIC (BASE 10)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21109.table b/definitions/bufr/tables/0/wmo/41/codetables/21109.table
new file mode 100644
index 000000000..deb577aa0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21109.table
@@ -0,0 +1,7 @@
+1 1 NOT ENOUGH GOOD SIGMA-0 AVAILABLE FOR WIND RETRIEVAL
+2 2 POOR AZIMUTH DIVERSITY AMONG SIGMA-0 FOR WIND RETRIEVAL
+8 8 SOME PORTION OF WIND VECTOR CELL IS OVER LAND
+9 9 SOME PORTION OF WIND VECTOR CELL IS OVER ICE
+10 10 WIND RETRIEVAL NOT PERFORMED FOR WIND VECTOR CELL
+11 11 REPORTED WIND SPEED IS GREATER THAN 30 M S-1
+12 12 REPORTED WIND SPEED IS LESS THAN OR EQUAL TO 3 M S-1
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21115.table b/definitions/bufr/tables/0/wmo/41/codetables/21115.table
new file mode 100644
index 000000000..9e90133cd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21115.table
@@ -0,0 +1,10 @@
+1 1 SIGMA-0 MEASUREMENT IS NOT USABLE
+2 2 SIGNAL TO NOISE RATIO IS LOW
+3 3 SIGMA-0 IS NEGATIVE
+4 4 SIGMA-0 IS OUTSIDE OF ACCEPTABLE RANGE
+5 5 SCATTEROMETER PULSE QUALITY IS NOT ACCEPTABLE
+6 6 SIGMA-0 CELL LOCATION ALGORITHM DOES NOT CONVERGE
+7 7 FREQUENCY SHIFT LIES BEYOND THE RANGE OF THE X FACTOR TABLE
+8 8 SPACECRAFT TEMPERATURE IS BEYOND CALIBRATION COEFFICIENT RANGE
+9 9 NO APPLICABLE ALTITUDE RECORDS WERE FOUND FOR THIS SIGMA-0
+10 10 INTERPOLATED EPHEMERIS DATA ARE NOT ACCEPTABLE FOR THIS SIGMA-0
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21116.table b/definitions/bufr/tables/0/wmo/41/codetables/21116.table
new file mode 100644
index 000000000..08d5412e4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21116.table
@@ -0,0 +1,16 @@
+1 1 CALIBRATION/MEASUREMENT PULSE FLAG (1)
+2 2 CALIBRATION/MEASUREMENT PULSE FLAG (2)
+3 3 OUTER ANTENNA BEAM
+4 4 SIGMA-0 CELL IS AFT OF SPACECRAFT
+5 5 CURRENT MODE (1)
+6 6 CURRENT MODE (2)
+7 7 EFFECTIVE GATE WIDTH - SLICE RESOLUTION (1)
+8 8 EFFECTIVE GATE WIDTH - SLICE RESOLUTION (2)
+9 9 EFFECTIVE GATE WIDTH - SLICE RESOLUTION (3)
+10 10 LOW-RESOLUTION MODE - WHOLE PULSE DATA
+11 11 SCATTEROMETER ELECTRONIC SUBSYSTEM B
+12 12 ALTERNATE SPIN RATE - 19.8 RPM
+13 13 RECEIVER PROTECTION ON
+14 14 SLICES PER COMPOSITE FLAG (1)
+15 15 SLICES PER COMPOSITE FLAG (2)
+16 16 SLICES PER COMPOSITE FLAG (3)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21119.table b/definitions/bufr/tables/0/wmo/41/codetables/21119.table
new file mode 100644
index 000000000..e17e3c04a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21119.table
@@ -0,0 +1,14 @@
+0 0 RESERVED
+1 1 SASS
+2 2 SASS2
+3 3 NSCAT0
+4 4 NSCAT1
+5 5 NSCAT2
+6 6 QSCAT0
+7 7 QSCAT1
+31 31 CMOD1
+32 32 CMOD2
+33 33 CMOD3
+34 34 CMOD4
+35 35 CMOD5
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21144.table b/definitions/bufr/tables/0/wmo/41/codetables/21144.table
new file mode 100644
index 000000000..1f082e6d9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21144.table
@@ -0,0 +1 @@
+1 1 RAIN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21148.table b/definitions/bufr/tables/0/wmo/41/codetables/21148.table
new file mode 100644
index 000000000..11413ed72
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21148.table
@@ -0,0 +1,2 @@
+1 1 NON SHORT SCALE VARIATION
+2 2 SHORT SCALE VARIATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2115.table b/definitions/bufr/tables/0/wmo/41/codetables/2115.table
new file mode 100644
index 000000000..c7e866c7a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2115.table
@@ -0,0 +1,7 @@
+0 0 PDB
+1 1 RSOIS
+2 2 ASOS
+3 3 PSYCHROMETER
+4 4 F420
+30 30 OTHER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21150.table b/definitions/bufr/tables/0/wmo/41/codetables/21150.table
new file mode 100644
index 000000000..851004635
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21150.table
@@ -0,0 +1,4 @@
+0 0 DATA FROM SINGLE GROUND STATION (NO CO-LOCATION)
+1 1 DATA FROM MULTIPLE GROUND STATION (CO-LOCATED DATA)
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21155.table b/definitions/bufr/tables/0/wmo/41/codetables/21155.table
new file mode 100644
index 000000000..a7837cfa7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21155.table
@@ -0,0 +1,16 @@
+1 1 NOT ENOUGH GOOD SIGMA-0 AVAILABLE FOR WIND RETRIEVAL
+2 2 POOR AZIMUTH DIVERSITY AMONG SIGMA-0 FOR WIND RETRIEVAL
+3 3 ANY BEAM NOISE CONTENT ABOVE THRESHOLD
+4 4 PRODUCT MONITORING NOT USED
+5 5 PRODUCT MONITORING FLAG
+6 6 KNMI QUALITY CONTROL FAILS
+7 7 VARIATIONAL QUALITY CONTROL FAILS
+8 8 SOME PORTION OF WIND VECTOR CELL IS OVER LAND
+9 9 SOME PORTION OF WIND VECTOR CELL IS OVER ICE
+10 10 WIND RETRIEVAL NOT PERFORMED FOR WIND VECTOR CELL
+11 11 REPORTED WIND SPEED IS GREATER THAN 30 M/S
+12 12 REPORTED WIND SPEED IS LESS THAN OR EQUAL TO 3 M/S
+13 13 RAIN FLAG FOR THE WIND VECTOR CELL IS NOT USABLE
+14 14 RAIN FLAG ALGORITHM DETECTS RAIN
+15 15 NO METEOROLOGICAL BACKGROUND USED
+16 16 DATA ARE REDUNDANT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21158.table b/definitions/bufr/tables/0/wmo/41/codetables/21158.table
new file mode 100644
index 000000000..dd53c5159
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21158.table
@@ -0,0 +1,4 @@
+0 0 ACCEPTABLE
+1 1 NOT ACCEPTABLE
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21159.table b/definitions/bufr/tables/0/wmo/41/codetables/21159.table
new file mode 100644
index 000000000..1703f9b8e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21159.table
@@ -0,0 +1,4 @@
+0 0 GOOD
+1 1 USABLE
+2 2 BAD
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/21169.table b/definitions/bufr/tables/0/wmo/41/codetables/21169.table
new file mode 100644
index 000000000..9b93444ce
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/21169.table
@@ -0,0 +1,4 @@
+0 0 NO ICE PRESENT
+1 1 ICE PRESENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2119.table b/definitions/bufr/tables/0/wmo/41/codetables/2119.table
new file mode 100644
index 000000000..0640af68b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2119.table
@@ -0,0 +1,8 @@
+0 0 INTERMEDIATE FREQUENCY CALIBRATION MODE (IF CAL)
+1 1 BUILT-IN TEST EQUIPMENT DIGITAL (BITE DGT)
+2 2 BUILT-IN TEST EQUIPMENT RADIO FREQUENCY (BITE RF)
+3 3 PRESET TRACKING (PSET TRK)
+4 4 PRESET LOOP OUT
+5 5 ACQUISITION
+6 6 TRACKING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2131.table b/definitions/bufr/tables/0/wmo/41/codetables/2131.table
new file mode 100644
index 000000000..f4336ef79
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2131.table
@@ -0,0 +1 @@
+1 1 STC OPERATIONAL
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2137.table b/definitions/bufr/tables/0/wmo/41/codetables/2137.table
new file mode 100644
index 000000000..40d33fdd3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2137.table
@@ -0,0 +1,4 @@
+1 1 3:2
+2 2 4:3
+3 3 5:4
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2138.table b/definitions/bufr/tables/0/wmo/41/codetables/2138.table
new file mode 100644
index 000000000..a574506ad
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2138.table
@@ -0,0 +1,3 @@
+1 1 CLOCKWISE ROTATION
+2 2 COUNTERCLOCKWISE ROTATION
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2139.table b/definitions/bufr/tables/0/wmo/41/codetables/2139.table
new file mode 100644
index 000000000..f6cf80294
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2139.table
@@ -0,0 +1,3 @@
+0 0 SIRAL NOMINAL
+1 1 SIRAL REDUNDANT
+2 2 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2143.table b/definitions/bufr/tables/0/wmo/41/codetables/2143.table
new file mode 100644
index 000000000..975d068be
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2143.table
@@ -0,0 +1,21 @@
+0 0 RESERVED
+1 1 BREWER SPECTROPHOTOMETER
+2 2 CAVER TEICHERT
+3 3 DOBSON
+4 4 DOBSON (JAPAN)
+5 5 EHMET
+6 6 FECKER TELESCOPE
+7 7 HOELPER
+8 8 JODMETER
+9 9 FILTER OZONOMETER M-83
+10 10 MAST
+11 11 OXFORD
+12 12 PAETZOLD
+13 13 REGENER
+14 14 RESERVED FOR FUTURE USE
+15 15 VASSY FILTER OZONOMETER
+16 16 CARBON IODIDE
+17 17 SURFACE OZONE BUBBLER
+18 18 FILTER OZONOMETER M-124
+19 19 ECC SONDE
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2144.table b/definitions/bufr/tables/0/wmo/41/codetables/2144.table
new file mode 100644
index 000000000..5b0f37b34
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2144.table
@@ -0,0 +1,8 @@
+0 0 DIRECT SUN
+1 1 DIRECT SUN, ATTENUATOR #1
+2 2 DIRECT SUN, ATTENUATOR #2
+3 3 FOCUSED MOON
+4 4 FOCUSED SUN
+5 5 FOCUSED SUN CORRECTED WITH ADJACENT SKY MEASUREMENTS
+6 6 ZENITH SKY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2145.table b/definitions/bufr/tables/0/wmo/41/codetables/2145.table
new file mode 100644
index 000000000..1944e69fc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2145.table
@@ -0,0 +1,9 @@
+0 0 WAVELENGTHS AD ORDINARY SETTING
+1 1 WAVELENGTHS BD ORDINARY SETTING
+2 2 WAVELENGTHS CD ORDINARY SETTING
+3 3 WAVELENGTHS CC' ORDINARY SETTING
+4 4 WAVELENGTHS AD FOCUSED IMAGE
+5 5 WAVELENGTHS BD FOCUSED IMAGE
+6 6 WAVELENGTHS CD FOCUSED IMAGE
+7 7 WAVELENGTHS CC' FOCUSED IMAGE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2146.table b/definitions/bufr/tables/0/wmo/41/codetables/2146.table
new file mode 100644
index 000000000..871b35709
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2146.table
@@ -0,0 +1,11 @@
+0 0 ON DIRECT SUN
+1 1 ON DIRECT MOON
+2 2 ON BLUE ZENITH SKY
+3 3 ON ZENITH CLOUD (UNIFORM STRATIFIED LAYER OF SMALL OPACITY)
+4 4 ON ZENITH CLOUD (UNIFORM OR MODERATELY VARIABLE LAYER OF MEDIUM OPACITY)
+5 5 ON ZENITH CLOUD (UNIFORM OR MODERATELY VARIABLE LAYER OF LARGE OPACITY)
+6 6 ON ZENITH CLOUD (HIGHLY VARIABLE OPACITY, WITH OR WITHOUT PRECIPITATION)
+7 7 ON ZENITH CLOUD (FOG)
+8 8 ON ZENITH HAZE
+9 9 ON DIRECT SUN THROUGH THIN CLOUD, FOG OR HAZE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2147.table b/definitions/bufr/tables/0/wmo/41/codetables/2147.table
new file mode 100644
index 000000000..5ef81f4a8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2147.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 DIRECT LEASED CIRCUIT
+2 2 DIALLED UP CONNECTION
+3 3 INTERNET ISP
+4 4 DCP VIA SATELLITE (MTSAT, METEOSAT, ETC.)
+5 5 VSAT
+6 6 GAN, BGAN
+7 7 THISS TERMINAL
+8 8 IRIDIUM SATELLITES
+9 9 MOBILE TELEPHONY
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2148.table b/definitions/bufr/tables/0/wmo/41/codetables/2148.table
new file mode 100644
index 000000000..7d8ca51e3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2148.table
@@ -0,0 +1,12 @@
+0 0 RESERVED
+1 1 ARGOS
+2 2 GPS
+3 3 GOES DCP
+4 4 METEOSAT DCP
+5 5 ORBCOMM
+6 6 INMARSAT
+7 7 IRIDIUM
+8 8 IRIDIUM AND GPS
+9 9 ARGOS-3
+10 10 ARGOS-4
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2149.table b/definitions/bufr/tables/0/wmo/41/codetables/2149.table
new file mode 100644
index 000000000..04638d229
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2149.table
@@ -0,0 +1,38 @@
+0 0 UNSPECIFIED DRIFTING BUOY
+1 1 STANDARD LAGRANGIAN DRIFTER (GLOBAL DRIFTER PROGRAMME)
+2 2 STANDARD FGGE TYPE DRIFTING BUOY (NON-LAGRANGIAN METEOROLOGICAL DRIFTING BUOY)
+3 3 WIND MEASURING FGGE TYPE DRIFTING BUOY (NON-LAGRANGIAN METEOROLOGICAL DRIFTING BUOY)
+4 4 ICE DRIFTER
+5 5 SVPG STANDARD LAGRANGIAN DRIFTER WITH GPS
+6 6 SVP-HR DRIFTER WITH HIGH-RESOLUTION TEMPERATURE OR THERMISTOR STRING
+7 7 RESERVED
+8 8 UNSPECIFIED SUBSURFACE FLOAT
+9 9 SOFAR
+10 10 ALACE
+11 11 MARVOR
+12 12 RAFOS
+13 13 PROVOR
+14 14 SOLO
+15 15 APEX
+16 16 UNSPECIFIED MOORED BUOY
+17 17 NOMAD
+18 18 3-METRE DISCUS
+19 19 10-12-METRE DISCUS
+20 20 ODAS 30 SERIES
+21 21 ATLAS (E.G. TAO AREA)
+22 22 TRITON BUOY
+23 23 FLEX MOORING (E.G. TIP AREA)
+24 24 OMNIDIRECTIONAL WAVERIDER
+25 25 DIRECTIONAL WAVERIDER
+26 26 SUBSURFACE ARGO FLOAT
+27 27 PALACE
+28 28 NEMO
+29 29 NINJA
+30 30 ICE BUOY/FLOAT (POPS OR ITP)
+34 34 MOORING OCEANOGRAPHIC
+35 35 MOORING METEOROLOGICAL
+36 36 MOORING MULTIDISCIPLINARY (OCEANSITES)
+37 37 MOORING TIDE GAUGE OR TSUNAMI BUOY
+38 38 ICE BEACON
+39 39 ICE MASS BALANCE BUOY
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2150.table b/definitions/bufr/tables/0/wmo/41/codetables/2150.table
new file mode 100644
index 000000000..8193b575a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2150.table
@@ -0,0 +1,55 @@
+0 0 RESERVED
+1 1 HIRS 1
+2 2 HIRS 2
+3 3 HIRS 3
+4 4 HIRS 4
+5 5 HIRS 5
+6 6 HIRS 6
+7 7 HIRS 7
+8 8 HIRS 8
+9 9 HIRS 9
+10 10 HIRS 10
+11 11 HIRS 11
+12 12 HIRS 12
+13 13 HIRS 13
+14 14 HIRS 14
+15 15 HIRS 15
+16 16 HIRS 16
+17 17 HIRS 17
+18 18 HIRS 18
+19 19 HIRS 19
+20 20 HIRS 20
+21 21 MSU 1
+22 22 MSU 2
+23 23 MSU 3
+24 24 MSU 4
+25 25 SSU 1
+26 26 SSU 2
+27 27 SSU 3
+28 28 AMSU-A 1
+29 29 AMSU-A 2
+30 30 AMSU-A 3
+31 31 AMSU-A 4
+32 32 AMSU-A 5
+33 33 AMSU-A 6
+34 34 AMSU-A 7
+35 35 AMSU-A 8
+36 36 AMSU-A 9
+37 37 AMSU-A 10
+38 38 AMSU-A 11
+39 39 AMSU-A 12
+40 40 AMSU-A 13
+41 41 AMSU-A 14
+42 42 AMSU-A 15
+43 43 AMSU-B 1 / MHS 1
+44 44 AMSU-B 2 / MHS 2
+45 45 AMSU-B 3 / MHS 3
+46 46 AMSU-B 4 / MHS 4
+47 47 AMSU-B 5 / MHS 5
+48 48 AVHRR 1
+49 49 AVHRR 2
+50 50 AVHRR 3A
+51 51 AVHRR 3B
+52 52 AVHRR 4
+53 53 AVHRR 5
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2151.table b/definitions/bufr/tables/0/wmo/41/codetables/2151.table
new file mode 100644
index 000000000..45c80df10
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2151.table
@@ -0,0 +1,11 @@
+0 0 HIRS
+1 1 MSU
+2 2 SSU
+3 3 AMSU-A1-1
+4 4 AMSU-A1-2
+5 5 AMSU-A2
+6 6 AMSU-B
+7 7 AVHRR
+8 8 RESERVED
+9 9 MHS
+2047 2047 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2152.table b/definitions/bufr/tables/0/wmo/41/codetables/2152.table
new file mode 100644
index 000000000..880c384cf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2152.table
@@ -0,0 +1,13 @@
+1 1 HIGH-RESOLUTION INFRARED SOUNDER (HIRS)
+2 2 MICROWAVE SOUNDING UNIT (MSU)
+3 3 STRATOSPHERIC SOUNDING UNIT (SSU)
+4 4 AMI WIND MODE
+5 5 AMI WAVE MODE
+6 6 AMI IMAGE MODE
+7 7 RADAR ALTIMETER
+8 8 ATSR
+9 9 GEOSTATIONARY IMAGER
+10 10 GEOSTATIONARY SOUNDER
+11 11 GEOSTATIONARY EARTH RADIATION (GERB)
+12 12 MULTI-CHANNEL SCANNING RADIOMETER
+13 13 POLAR-ORBITING IMAGER
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2158.table b/definitions/bufr/tables/0/wmo/41/codetables/2158.table
new file mode 100644
index 000000000..97c4449c5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2158.table
@@ -0,0 +1,8 @@
+1 1 MISMATCH IN RED VEC HPA
+2 2 MISMATCH IN RED VEC RFSS
+3 3 PTR CALIBRATION BAND 320 MHZ (KU)
+4 4 PTR CALIBRATION BAND 80 MHZ (KU)
+5 5 PTR CALIBRATION BAND 20 MHZ (KU)
+6 6 PTR CALIBRATION BAND 160 MHZ (S)
+7 7 KU FLIGHT CALIBRATION PARAMETERS AVAILABLE
+8 8 S FLIGHT CALIBRATION PARAMETERS AVAILABLE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2159.table b/definitions/bufr/tables/0/wmo/41/codetables/2159.table
new file mode 100644
index 000000000..63cb87c78
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2159.table
@@ -0,0 +1,7 @@
+1 1 TEMPERATURE INCONSISTENCY
+2 2 DATA IS MISSING
+3 3 REDUNDANCY CHANNEL
+4 4 POWER BUS PROTECTION
+5 5 OVERVOLTAGE/OVERLOAD PROTECTION
+6 6 RESERVED
+7 7 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2160.table b/definitions/bufr/tables/0/wmo/41/codetables/2160.table
new file mode 100644
index 000000000..fd7f37274
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2160.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 10 TO LESS THAN 20 MM
+2 2 RESERVED
+3 3 20 TO LESS THAN 40 MM
+4 4 RESERVED
+5 5 40 TO LESS THAN 60 MM
+6 6 RESERVED
+7 7 60 TO LESS THAN 90 MM
+8 8 90 TO LESS THAN 110 MM
+9 9 110 MM AND GREATER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2161.table b/definitions/bufr/tables/0/wmo/41/codetables/2161.table
new file mode 100644
index 000000000..55b88f4de
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2161.table
@@ -0,0 +1,5 @@
+11 11 WIND HEIGHT CALCULATED FROM MEDIAN CLOUD-TOP PRESSURE OF TARGET
+12 12 TARGET IS CLOUDY
+13 13 LOW-LEVEL INVERSION
+14 14 CROSS CORRELATION CONTRIBUTION (CCC) METHOD
+15 15 NESTED TRACKING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2162.table b/definitions/bufr/tables/0/wmo/41/codetables/2162.table
new file mode 100644
index 000000000..510f09aa3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2162.table
@@ -0,0 +1,19 @@
+0 0 AUTO EDITOR
+1 1 IRW HEIGHT ASSIGNMENT
+2 2 WV HEIGHT ASSIGNMENT
+3 3 H2O INTERCEPT HEIGHT ASSIGNMENT
+4 4 CO2 SLICING HEIGHT ASSIGNMENT
+5 5 LOW PIXEL MAX GRADIENT
+6 6 HIGHER PIXEL MAX GRADIENT
+7 7 PRIMARY HEIGHT ASSIGNMENT
+8 8 LAYER THICKNESS ASSIGNMENT
+9 9 CUMULATIVE CONTRIBUTION FUNCTION - 10 PER CENT HEIGHT
+10 10 CUMULATIVE CONTRIBUTION FUNCTION - 50 PER CENT HEIGHT
+11 11 CUMULATIVE CONTRIBUTION FUNCTION - 90 PER CENT HEIGHT
+12 12 CUMULATIVE CONTRIBUTION FUNCTION - HEIGHT OF MAXIMUM GRADIENT
+13 13 IR/TWO WV CHANNEL RATIONING METHOD
+14 14 COMPOSITE HEIGHT ASSIGNMENT
+15 15 OPTIMAL ESTIMATION
+16 16 INVERSION CORRECTION
+17 17 GEOMETRIC HEIGHT ASSIGNMENT
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2163.table b/definitions/bufr/tables/0/wmo/41/codetables/2163.table
new file mode 100644
index 000000000..8cac63196
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2163.table
@@ -0,0 +1,16 @@
+0 0 AUTO EDITOR
+1 1 IRW HEIGHT ASSIGNMENT
+2 2 WV HEIGHT ASSIGNMENT
+3 3 H2O INTERCEPT HEIGHT ASSIGNMENT
+4 4 CO2 SLICING HEIGHT ASSIGNMENT
+5 5 LOW PIXEL MAX GRADIENT
+6 6 HIGHER PIXEL MAX GRADIENT
+7 7 PRIMARY HEIGHT ASSIGNMENT
+8 8 LAYER THICKNESS ASSIGNMENT
+9 9 CUMULATIVE CONTRIBUTION FUNCTION - 10 PER CENT HEIGHT
+10 10 CUMULATIVE CONTRIBUTION FUNCTION - 50 PER CENT HEIGHT
+11 11 CUMULATIVE CONTRIBUTION FUNCTION - 90 PER CENT HEIGHT
+12 12 CUMULATIVE CONTRIBUTION FUNCTION - HEIGHT OF MAXIMUM GRADIENT
+13 13 IR / TWO WV CHANNEL RATIOING METHOD
+14 14 COMPOSITE HEIGHT ASSIGNMENT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2164.table b/definitions/bufr/tables/0/wmo/41/codetables/2164.table
new file mode 100644
index 000000000..4bf9aa961
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2164.table
@@ -0,0 +1,5 @@
+0 0 LP - NORMS LEAST SQUARE MINIMUM
+1 1 EN - EUCLIDEAN NORM WITH RADIANCE CORRELATION
+2 2 CC - CROSS CORRELATION
+3 3 STEREO MATCHING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2165.table b/definitions/bufr/tables/0/wmo/41/codetables/2165.table
new file mode 100644
index 000000000..628be0e75
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2165.table
@@ -0,0 +1,7 @@
+1 1 CLEAR PATH
+2 2 PARTLY CLOUDY PATH
+3 3 CLOUDY PATH
+4 4 APODIZED
+5 5 UNAPODIZED
+6 6 RECONSTRUCTED
+7 7 CLOUD CLEARED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2166.table b/definitions/bufr/tables/0/wmo/41/codetables/2166.table
new file mode 100644
index 000000000..efac38f8d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2166.table
@@ -0,0 +1,6 @@
+0 0 TYPE NOT DEFINED
+1 1 AUTOMATED STATISTICAL REGRESSION
+2 2 CLEAR PATH
+3 3 PARTLY CLOUDY PATH
+4 4 CLOUDY PATH
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2167.table b/definitions/bufr/tables/0/wmo/41/codetables/2167.table
new file mode 100644
index 000000000..acb2f9d9c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2167.table
@@ -0,0 +1,4 @@
+0 0 METHOD NOT DEFINED
+1 1 1B RAW RADIANCE
+2 2 PROCESSED RADIANCE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2169.table b/definitions/bufr/tables/0/wmo/41/codetables/2169.table
new file mode 100644
index 000000000..bd31667d0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2169.table
@@ -0,0 +1,5 @@
+0 0 CUP ROTOR
+1 1 PROPELLER ROTOR
+2 2 WIND OBSERVATION THROUGH AMBIENT NOISE (WOTAN)
+3 3 SONIC
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2170.table b/definitions/bufr/tables/0/wmo/41/codetables/2170.table
new file mode 100644
index 000000000..05bab00d7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2170.table
@@ -0,0 +1,5 @@
+0 0 SPECTRASENSORS WVSS-II, VERSION 1
+1 1 SPECTRASENSORS WVSS-II, VERSION 2
+2 2 SPECTRASENSORS WVSS-II, VERSION 3
+62 62 OTHER
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2172.table b/definitions/bufr/tables/0/wmo/41/codetables/2172.table
new file mode 100644
index 000000000..e10ef52b8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2172.table
@@ -0,0 +1,5 @@
+0 0 RESERVED
+1 1 RETRIEVAL FROM A NADIR SOUNDING
+2 2 RETRIEVAL FROM A LIMB SOUNDING
+3 3 RETRIEVAL FROM AN OCCULTATION SOUNDING
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2175.table b/definitions/bufr/tables/0/wmo/41/codetables/2175.table
new file mode 100644
index 000000000..2cf2a3d55
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2175.table
@@ -0,0 +1,9 @@
+0 0 MANUAL MEASUREMENT
+1 1 TIPPING BUCKET METHOD
+2 2 WEIGHING METHOD
+3 3 OPTICAL METHOD
+4 4 PRESSURE METHOD
+5 5 FLOAT METHOD
+6 6 DROP COUNTER METHOD
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2176.table b/definitions/bufr/tables/0/wmo/41/codetables/2176.table
new file mode 100644
index 000000000..2c27a6f91
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2176.table
@@ -0,0 +1,6 @@
+0 0 MANUAL OBSERVATION
+1 1 VIDEO CAMERA METHOD
+2 2 INFRARED METHOD
+3 3 LASER METHOD
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2177.table b/definitions/bufr/tables/0/wmo/41/codetables/2177.table
new file mode 100644
index 000000000..e7bb67a7d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2177.table
@@ -0,0 +1,6 @@
+0 0 MANUAL OBSERVATION
+1 1 ULTRASONIC METHOD
+2 2 VIDEO CAMERA METHOD
+3 3 LASER METHOD
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2178.table b/definitions/bufr/tables/0/wmo/41/codetables/2178.table
new file mode 100644
index 000000000..f4f8b592c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2178.table
@@ -0,0 +1,5 @@
+0 0 MANUAL OBSERVATION
+1 1 OPTICAL METHOD
+2 2 CAPACITIVE METHOD
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2179.table b/definitions/bufr/tables/0/wmo/41/codetables/2179.table
new file mode 100644
index 000000000..9e9ba189a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2179.table
@@ -0,0 +1,6 @@
+0 0 MANUAL OBSERVATION
+1 1 VAISALA ALGORITHM
+2 2 ASOS (FAA) ALGORITHM
+3 3 AWOS (CANADA) ALGORITHM
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2180.table b/definitions/bufr/tables/0/wmo/41/codetables/2180.table
new file mode 100644
index 000000000..0b21b2c26
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2180.table
@@ -0,0 +1,8 @@
+0 0 MANUAL OBSERVATION
+1 1 OPTICAL SCATTER SYSTEM COMBINED WITH PRECIPITATION OCCURRENCE SENSING SYSTEM
+2 2 FORWARD AND/OR BACKSCATTER SYSTEM OF VISIBLE LIGHT
+3 3 FORWARD AND/OR BACKSCATTER SYSTEM OF INFRARED LIGHT
+4 4 INFRARED LIGHT EMITTING DIODE (IRED) SYSTEM
+5 5 DOPPLER RADAR SYSTEM
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2181.table b/definitions/bufr/tables/0/wmo/41/codetables/2181.table
new file mode 100644
index 000000000..5096dc48a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2181.table
@@ -0,0 +1,5 @@
+1 1 RAIN DETECTOR
+2 2 FREEZING RAIN SENSOR
+3 3 ICE DETECTION SENSOR
+4 4 HAIL AND ICE PELLET SENSOR
+20 20 OTHERS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2182.table b/definitions/bufr/tables/0/wmo/41/codetables/2182.table
new file mode 100644
index 000000000..4ffab2652
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2182.table
@@ -0,0 +1,7 @@
+0 0 MANUAL MEASUREMENT
+1 1 TRANSMISSOMETER SYSTEM (BASE > 25 M)
+2 2 TRANSMISSOMETER SYSTEM (BASE < 25 M)
+3 3 FORWARD SCATTER SYSTEM
+4 4 BACKSCATTER SYSTEM
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2183.table b/definitions/bufr/tables/0/wmo/41/codetables/2183.table
new file mode 100644
index 000000000..a804ea1e1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2183.table
@@ -0,0 +1,9 @@
+0 0 MANUAL OBSERVATION
+1 1 CEILOMETER SYSTEM
+2 2 INFRARED CAMERA SYSTEM
+3 3 MICROWAVE VISUAL CAMERA SYSTEM
+4 4 SKY IMAGER SYSTEM
+5 5 VIDEO TIME-LAPSED CAMERA SYSTEM
+6 6 MICROPULSE LIDAR (MPL) SYSTEM
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2184.table b/definitions/bufr/tables/0/wmo/41/codetables/2184.table
new file mode 100644
index 000000000..cf5ee84ac
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2184.table
@@ -0,0 +1,9 @@
+0 0 MANUAL OBSERVATION
+1 1 LIGHTNING IMAGING SENSOR
+2 2 ELECTRICAL STORM IDENTIFICATION SENSOR
+3 3 MAGNETIC FINDER SENSOR
+4 4 LIGHTNING STRIKE SENSOR
+5 5 FLASH COUNTER
+6 6 ATDNET VLF WAVEFORM CORRELATED SENSOR
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2185.table b/definitions/bufr/tables/0/wmo/41/codetables/2185.table
new file mode 100644
index 000000000..45b081051
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2185.table
@@ -0,0 +1,7 @@
+0 0 MANUAL MEASUREMENT
+1 1 BALANCED FLOATING METHOD
+2 2 PRESSURE METHOD
+3 3 ULTRASONIC METHOD
+4 4 HYDRAULIC METHOD
+14 14 OTHERS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2186.table b/definitions/bufr/tables/0/wmo/41/codetables/2186.table
new file mode 100644
index 000000000..2a9e71004
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2186.table
@@ -0,0 +1,24 @@
+1 1 PRECIPITATION-UNKNOWN TYPE
+2 2 LIQUID PRECIPITATION NOT FREEZING
+3 3 LIQUID FREEZING PRECIPITATION
+4 4 DRIZZLE
+5 5 RAIN
+6 6 SOLID PRECIPITATION
+7 7 SNOW
+8 8 SNOW GRAINS
+9 9 SNOW PELLETS
+10 10 ICE PELLETS
+11 11 ICE CRYSTALS
+12 12 DIAMOND DUST
+13 13 SMALL HAIL
+14 14 HAIL
+15 15 GLAZE
+16 16 RIME
+17 17 SOFT RIME
+18 18 HARD RIME
+19 19 CLEAR ICE
+20 20 WET SNOW
+21 21 HOAR FROST
+22 22 DEW
+23 23 WHITE DEW
+24 24 CONVECTIVE PRECIPITATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2187.table b/definitions/bufr/tables/0/wmo/41/codetables/2187.table
new file mode 100644
index 000000000..def3d2feb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2187.table
@@ -0,0 +1,11 @@
+1 1 DUST/SAND WHIRL
+2 2 SQUALLS
+3 3 SAND STORM
+4 4 DUST STORM
+5 5 LIGHTNING - CLOUD TO SURFACE
+6 6 LIGHTNING - CLOUD TO CLOUD
+7 7 LIGHTNING - DISTANT
+8 8 THUNDERSTORM
+9 9 FUNNEL CLOUD NOT TOUCHING SURFACE
+10 10 FUNNEL CLOUD TOUCHING SURFACE
+11 11 SPRAY
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2188.table b/definitions/bufr/tables/0/wmo/41/codetables/2188.table
new file mode 100644
index 000000000..bb8114ca8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2188.table
@@ -0,0 +1,10 @@
+1 1 FOG
+2 2 ICE FOG
+3 3 STEAM FOG
+7 7 MIST
+8 8 HAZE
+9 9 SMOKE
+10 10 VOLCANIC ASH
+11 11 DUST
+12 12 SAND
+13 13 SNOW
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2189.table b/definitions/bufr/tables/0/wmo/41/codetables/2189.table
new file mode 100644
index 000000000..61ac9e322
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2189.table
@@ -0,0 +1,4 @@
+1 1 MANUAL OBSERVATION
+2 2 ALL LIGHTNING STRIKES WITHOUT DISCRIMINATION
+3 3 LIGHTNING STRIKES CLOUD TO GROUND ONLY
+4 4 ALL LIGHTNING STRIKES WITH DISCRIMINATION BETWEEN CLOUD TO GROUND AND CLOUD TO CLOUD
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/2191.table b/definitions/bufr/tables/0/wmo/41/codetables/2191.table
new file mode 100644
index 000000000..2e96256c7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/2191.table
@@ -0,0 +1,4 @@
+0 0 GEOPOTENTIAL HEIGHT CALCULATED FROM PRESSURE
+1 1 GEOPOTENTIAL HEIGHT CALCULATED FROM GPS HEIGHT
+2 2 GEOPOTENTIAL HEIGHT CALCULATED FROM RADAR HEIGHT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22056.table b/definitions/bufr/tables/0/wmo/41/codetables/22056.table
new file mode 100644
index 000000000..28ddbf4e4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22056.table
@@ -0,0 +1,4 @@
+0 0 UPWARDS PROFILE
+1 1 DOWNWARDS PROFILE
+2 2 HORIZONTAL
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22060.table b/definitions/bufr/tables/0/wmo/41/codetables/22060.table
new file mode 100644
index 000000000..b73ad3235
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22060.table
@@ -0,0 +1,4 @@
+0 0 DROGUE IS DETACHED
+1 1 DROGUE IS ATTACHED
+2 2 DROGUE STATUS UNKNOWN
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22061.table b/definitions/bufr/tables/0/wmo/41/codetables/22061.table
new file mode 100644
index 000000000..aa8c62bae
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22061.table
@@ -0,0 +1,11 @@
+0 0 CALM (GLASSY)
+1 1 CALM (RIPPLED)
+2 2 SMOOTH (WAVELETS)
+3 3 SLIGHT
+4 4 MODERATE
+5 5 ROUGH
+6 6 VERY ROUGH
+7 7 HIGH
+8 8 VERY HIGH
+9 9 PHENOMENAL
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22067.table b/definitions/bufr/tables/0/wmo/41/codetables/22067.table
new file mode 100644
index 000000000..9ec3c9e85
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22067.table
@@ -0,0 +1,129 @@
+1 1 SIPPICAN T-4
+2 2 SIPPICAN T-4
+11 11 SIPPICAN T-5
+21 21 SIPPICAN FAST DEEP
+31 31 SIPPICAN T-6
+32 32 SIPPICAN T-6
+41 41 SIPPICAN T-7
+42 42 SIPPICAN T-7
+51 51 SIPPICAN DEEP BLUE
+52 52 SIPPICAN DEEP BLUE
+61 61 SIPPICAN T-10
+71 71 SIPPICAN T-11
+81 81 SIPPICAN AXBT (300 M PROBES)
+201 201 TSK T-4
+202 202 TSK T-4
+211 211 TSK T-6
+212 212 TSK T-6
+221 221 TSK T-7
+222 222 TSK T-7
+231 231 TSK T-5
+241 241 TSK T-10
+251 251 TSK DEEP BLUE
+252 252 TSK DEEP BLUE
+261 261 TSK AXBT
+401 401 SPARTON XBT-1
+411 411 SPARTON XBT-3
+421 421 SPARTON XBT-4
+431 431 SPARTON XBT-5
+441 441 SPARTON XBT-5DB
+451 451 SPARTON XBT-6
+461 461 SPARTON XBT-7
+462 462 SPARTON XBT-7
+471 471 SPARTON XBT-7DB
+481 481 SPARTON XBT-10
+491 491 SPARTON XBT-20
+501 501 SPARTON XBT-20DB
+510 510 SPARTON 536 AXBT
+700 700 SIPPICAN XCTD STANDARD
+710 710 SIPPICAN XCTD DEEP
+720 720 SIPPICAN AXCTD
+730 730 SIPPICAN SXCTD
+741 741 TSK XCTD/XCTD-1/XCTD-1N/XCTD-1A
+742 742 TSK XCTD-2/XCTD-2N/XCTD-4A
+743 743 TSK XCTD-2F
+744 744 TSK XCTD-3/XCTD-3N
+745 745 TSK XCTD-4/XCTD-4N
+746 746 TSK XCTP-1
+747 747 TSK XCTP-4
+751 751 TSK AXCTD
+780 780 SEA-BIRD SBE21 SEACAT THERMOSALINOGRAPH
+781 781 SEA-BIRD SBE45 MICROTSG THERMOSALINOGRAPH
+800 800 MECHANICAL BT
+810 810 HYDROCAST
+820 820 THERMISTOR CHAIN
+825 825 TEMPERATURE (SONIC) AND PRESSURE PROBES
+830 830 CTD
+831 831 CTD-P-ALACE FLOAT
+834 834 PROVOR V SBE
+835 835 PROVOR IV
+836 836 PROVOR III
+837 837 ARVOR_C, SBE CONDUCTIVITY SENSOR
+838 838 ARVOR_D, SBE CONDUCTIVITY SENSOR
+839 839 PROVOR-II, SBE CONDUCTIVITY SENSOR
+840 840 PROVOR, NO CONDUCTIVITY SENSOR
+841 841 PROVOR, SEA-BIRD CONDUCTIVITY SENSOR
+842 842 PROVOR, FSI CONDUCTIVITY SENSOR
+843 843 POLAR OCEAN PROFILING SYSTEM (POPS), PROVOR, SBE CTD
+844 844 PROFILING FLOAT, ARVOR, SEA-BIRD CONDUCTIVITY SENSOR
+845 845 WEBB RESEARCH, NO CONDUCTIVITY SENSOR
+846 846 WEBB RESEARCH, SEA-BIRD CONDUCTIVITY SENSOR
+847 847 WEBB RESEARCH, FSI CONDUCTIVITY SENSOR
+848 848 APEX-EM, SBE CONDUCTIVITY SENSOR
+849 849 APEX_D, SBE CONDUCTIVITY SENSOR
+850 850 SOLO, NO CONDUCTIVITY SENSOR
+851 851 SOLO, SEA-BIRD CONDUCTIVITY SENSOR
+852 852 SOLO, FSI CONDUCTIVITY SENSOR
+853 853 PROFILING FLOAT, SOLO2 (SCRIPPS), SEA-BIRD CONDUCTIVITY SENSOR
+854 854 S2A, SBE CONDUCTIVITY SENSOR
+855 855 PROFILING FLOAT, NINJA, NO CONDUCTIVITY SENSOR
+856 856 PROFILING FLOAT, NINJA, SBE CONDUCTIVITY SENSOR
+857 857 PROFILING FLOAT, NINJA, FSI CONDUCTIVITY SENSOR
+858 858 PROFILING FLOAT, NINJA, TSK CONDUCTIVITY SENSOR
+859 859 PROFILING FLOAT, NEMO, NO CONDUCTIVITY SENSOR
+860 860 PROFILING FLOAT, NEMO, SBE CONDUCTIVITY SENSOR
+861 861 PROFILING FLOAT, NEMO, FSI CONDUCTIVITY SENSOR
+862 862 SOLO_D, SBE CONDUCTIVITY SENSOR
+863 863 NAVIS-A, SBE CONDUCTIVITY SENSOR
+864 864 NINJA_D, SBE CONDUCTIVITY SENSOR
+865 865 NOVA, SBE CONDUCTIVITY SENSOR
+866 866 ALAMO, NO CONDUCTIVITY SENSOR
+867 867 ALAMO, RBR CONDUCTIVITY SENSOR
+868 868 ALAMO, SBE CONDUCTIVITY SENSOR
+869 869 NAVIS_EBR, SBE CONDUCTIVITY SENSOR
+870 870 HM2000
+871 871 COPEX
+872 872 S2X
+873 873 ALTO
+874 874 SOLO_D_MRV
+875 875 ALTO RBR
+876 876 ALTO SBE
+877 877 APEX RBR
+878 878 ARVOR RBR
+879 879 SOLO II RBR
+880 880 S2A RBR
+881 881 HM4000 SBE
+882 882 HM6000 SBE
+883 883 APEX_D RBR
+884 884 SOLO_BGC, SBE
+885 885 SOLO_BGC, RBR
+886 886 SOLO_BGC_MRV, SBE
+887 887 SOLO_BGC_MRV, RBR
+888 888 PROVOR_V - JUMBO, SBE
+889 889 PROVOR_V - JUMBO, RBR
+890 890 PROVOR_III - JUMBO, SBE
+891 891 PROVOR_III - JUMBO, RBR
+900 900 SIPPICAN LMP-5 XBT
+901 901 ICE-TETHERED PROFILER (ITP), SBE CTD
+902 902 BROOKE OCEAN MOVING VESSEL PROFILER (MVP)
+903 903 SEA-BIRD CTD
+904 904 AML OCEANOGRAPHIC CTD
+905 905 FALMOUTH SCIENTIFIC CTD
+906 906 OCEAN SENSORS CTD
+907 907 VALEPORT CTD
+908 908 OCEANSCIENCE MVP
+909 909 IDRONAUT CTD
+910 910 SEA-BIRD SBE 38
+995 995 INSTRUMENT ATTACHED TO MARINE MAMMALS
+996 996 INSTRUMENT ATTACHED TO ANIMALS OTHER THAN MARINE MAMMALS
+1023 1023 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22068.table b/definitions/bufr/tables/0/wmo/41/codetables/22068.table
new file mode 100644
index 000000000..992097fd8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22068.table
@@ -0,0 +1,43 @@
+1 1 SIPPICAN STRIP CHART RECORDER
+2 2 SIPPICAN MK2A/SSQ-61
+3 3 SIPPICAN MK-9
+4 4 SIPPICAN AN/BHQ-7/MK8
+5 5 SIPPICAN MK-12
+6 6 SIPPICAN MK-21
+7 7 SIPPICAN MK-8 LINEAR RECORDER
+8 8 SIPPICAN MK-10
+10 10 SPARTON SOC BT/SV PROCESSOR MODEL 100
+11 11 LOCKHEED-SANDERS MODEL OL5005
+20 20 ARGOS XBT-ST
+21 21 CLS-ARGOS/PROTECNO XBT-ST MODEL-1
+22 22 CLS-ARGOS/PROTECNO XBT-ST MODEL-2
+30 30 BATHY SYSTEMS SA-810
+31 31 SCRIPPS METROBYTE CONTROLLER
+32 32 MURAYAMA DENKI Z-60-16 III
+33 33 MURAYAMA DENKI Z-60-16 II
+34 34 PROTECNO ETSM2
+35 35 NAUTILUS MARINE SERVICE NMS-XBT
+40 40 TSK MK-2A
+41 41 TSK MK-2S
+42 42 TSK MK-30
+43 43 TSK MK-30N
+45 45 TSK MK-100
+46 46 TSK MK-130 COMPATIBLE RECORDER FOR BOTH XBT AND XCTD
+47 47 TSK MK-130A XCTD RECORDER
+48 48 TSK AXBT RECEIVER MK-300
+49 49 TSK MK-150/MK-150N/MK-200 COMPATIBLE RECORDER FOR BOTH XBT AND XCTD
+50 50 JMA ASTOS
+60 60 ARGOS COMMUNICATIONS, SAMPLING ON UP TRANSIT
+61 61 ARGOS COMMUNICATIONS, SAMPLING ON DOWN TRANSIT
+62 62 ORBCOMM COMMUNICATIONS, SAMPLING ON UP TRANSIT
+63 63 ORBCOMM COMMUNICATIONS, SAMPLING ON DOWN TRANSIT
+64 64 IRIDIUM COMMUNICATIONS, SAMPLING ON UP TRANSIT
+65 65 IRIDIUM COMMUNICATIONS, SAMPLING ON DOWN TRANSIT
+70 70 CSIRO DEVIL-1 XBT ACQUISITION SYSTEM
+71 71 CSIRO DEVIL-2 XBT ACQUISITION SYSTEM
+72 72 TURO/CSIRO QUOLL XBT ACQUISITION SYSTEM
+80 80 APPLIED MICROSYSTEMS LTD., MICRO-SVT&P
+81 81 SEA MAMMAL RESEARCH UNIT, UNIV. ST. ANDREWS, UK, UNCORRECTED SALINITY FROM A SEA MAMMAL MOUNTED INSTRUMENT
+82 82 SEA MAMMAL RESEARCH UNIT, UNIV. ST. ANDREWS, UK, CORRECTED SALINITY FROM A SEA MAMMAL MOUNTED INSTRUMENT
+99 99 UNKNOWN
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22120.table b/definitions/bufr/tables/0/wmo/41/codetables/22120.table
new file mode 100644
index 000000000..8c747ce66
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22120.table
@@ -0,0 +1,13 @@
+0 0 GOOD DATA
+1 1 MAXIMUM (HIGH) WATER LEVEL LIMIT EXCEEDED
+2 2 MINIMUM (LOW) WATER LEVEL LIMIT EXCEEDED
+3 3 RATE OF CHANGE LIMIT FOR WATER LEVEL EXCEEDED
+4 4 FLAT LIMIT FOR WATER LEVEL EXCEEDED
+5 5 OBSERVED MINUS PREDICTED WATER LEVEL VALUE LIMIT EXCEEDED
+6 6 OBSERVED VALUE FROM PRIMARY WATER LEVEL SENSOR MINUS BACKUP WATER LEVEL SENSOR
+7 7 VALUE EXCEEDED SPECIFIED TOLERANCE FROM EXPECTED VALUE
+8 8 WATER LEVEL QA PARAMETER (SIGMAS AND/OR OUTLIERS) LIMITS EXCEEDED
+9 9 SEA TEMPERATURE OUTSIDE OF EXPECTED RANGE
+10 10 MULTIPLE QC CHECKS (ABOVE) FAILED
+11 11 NO AUTOMATED WATER LEVEL CHECKS PERFORMED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22121.table b/definitions/bufr/tables/0/wmo/41/codetables/22121.table
new file mode 100644
index 000000000..7d4dfa821
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22121.table
@@ -0,0 +1,9 @@
+0 0 OPERATIONAL
+1 1 POSSIBLE CLOGGING PROBLEM OR OTHERWISE DEGRADED WATER LEVEL DATA
+2 2 POSSIBLE DATUM SHIFT
+3 3 UNKNOWN STATUS OF WATER LEVEL SENSOR
+4 4 SUSPECTED OR KNOWN SEA TEMPERATURE SENSOR PROBLEM
+5 5 MULTIPLE POSSIBLE PROBLEMS (ABOVE)
+6 6 BAD DATA - DO NOT DISSEMINATE!
+7 7 NO MANUAL WATER LEVEL CHECKS PERFORMED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22122.table b/definitions/bufr/tables/0/wmo/41/codetables/22122.table
new file mode 100644
index 000000000..aa9d5ebbe
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22122.table
@@ -0,0 +1,8 @@
+0 0 GOOD DATA FROM ALL SENSORS
+1 1 WIND DIRECTION OUTSIDE OF ALLOWABLE RANGE
+2 2 WIND SPEED OUTSIDE OF EXPECTED RANGE
+3 3 BAROMETRIC PRESSURE OUTSIDE OF EXPECTED RANGE
+4 4 AIR TEMPERATURE OUTSIDE OF EXPECTED RANGE
+5 5 MULTIPLE SENSORS FAILED QC CHECKS
+6 6 NO AUTOMATED METEOROLOGICAL DATA CHECKS PERFORMED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22123.table b/definitions/bufr/tables/0/wmo/41/codetables/22123.table
new file mode 100644
index 000000000..acfb61609
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22123.table
@@ -0,0 +1,9 @@
+0 0 OPERATIONAL
+1 1 SUSPECTED OR KNOWN PROBLEM WITH WIND SENSOR
+2 2 SUSPECTED OR KNOWN PROBLEM WITH BAROMETRIC PRESSURE SENSOR
+3 3 SUSPECTED OR KNOWN PROBLEM WITH AIR TEMPERATURE SENSOR
+4 4 UNKNOWN STATUS OF ALL SENSORS
+5 5 SUSPECTED OR KNOWN PROBLEMS WITH MULTIPLE SENSORS
+6 6 BAD DATA - DO NOT DISSEMINATE!
+7 7 NO MANUAL METEOROLOGICAL DATA CHECKS PERFORMED
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/22178.table b/definitions/bufr/tables/0/wmo/41/codetables/22178.table
new file mode 100644
index 000000000..355848cc5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/22178.table
@@ -0,0 +1,12 @@
+0 0 UNKNOWN
+1 1 LM-2A DECK-MOUNTED
+2 2 LM-3A HAND-HELD
+3 3 LM-4A THRU-HULL
+10 10 AL-12 TSK AUTOLAUNCHER (UP TO 12 PROBES)
+20 20 SIO XBT AUTOLAUNCHER (UP TO 6 PROBES)
+30 30 AOML XBT V6 AUTOLAUNCHER (UP TO 6 DEEP BLUE PROBES)
+31 31 AOML XBT V8.0 AUTOLAUNCHER (UP TO 8 DEEP BLUE PROBES)
+32 32 AOML XBT V8.1 AUTOLAUNCHER (UP TO 8 DEEP BLUE AND FAST DEEP PROBES)
+90 90 CSIRO DEVIL AUTOLAUNCHER
+100 100 MFSTEP AUTOLAUNCHER (MEDITERRANEAN)
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23001.table b/definitions/bufr/tables/0/wmo/41/codetables/23001.table
new file mode 100644
index 000000000..92ac5deaf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23001.table
@@ -0,0 +1,5 @@
+0 0 RESERVED
+1 1 ARTICLES 1 AND 2
+2 2 ARTICLE 3
+3 3 ARTICLE 5.2
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23002.table b/definitions/bufr/tables/0/wmo/41/codetables/23002.table
new file mode 100644
index 000000000..12815c6a8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23002.table
@@ -0,0 +1,16 @@
+0 0 RESERVED
+1 1 NUCLEAR REACTOR ON GROUND
+2 2 NUCLEAR REACTOR AT SEA
+3 3 NUCLEAR REACTOR IN SPACE
+4 4 NUCLEAR FUEL FACILITY
+5 5 RADIOACTIVE WASTE MANAGEMENT FACILITY
+6 6 TRANSPORT OF NUCLEAR FUEL OR RADIOACTIVE WASTE
+7 7 STORAGE OF NUCLEAR FUEL OR RADIOACTIVE WASTE
+8 8 MANUFACTURE OF RADIO-ISOTOPES
+9 9 USE OF RADIO-ISOTOPES
+10 10 STORAGE OF RADIO-ISOTOPES
+11 11 DISPOSAL OF RADIO-ISOTOPES
+12 12 TRANSPORT OF RADIO-ISOTOPES
+13 13 USE OF RADIO-ISOTOPES FOR POWER GENERATION
+30 30 OTHER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23003.table b/definitions/bufr/tables/0/wmo/41/codetables/23003.table
new file mode 100644
index 000000000..e3e891f9b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23003.table
@@ -0,0 +1,8 @@
+0 0 NO RELEASE
+1 1 RELEASE TO ATMOSPHERE
+2 2 RELEASE TO WATER
+3 3 RELEASE TO BOTH ATMOSPHERE AND WATER
+4 4 EXPECTED RELEASE TO ATMOSPHERE
+5 5 EXPECTED RELEASE TO WATER
+6 6 EXPECTED RELEASE TO BOTH ATMOSPHERE AND WATER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23004.table b/definitions/bufr/tables/0/wmo/41/codetables/23004.table
new file mode 100644
index 000000000..383731cec
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23004.table
@@ -0,0 +1,6 @@
+0 0 NO COUNTERMEASURES
+1 1 EVACUATION
+2 2 SHELTERING
+3 3 PROPHYLAXIS
+4 4 WATER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23005.table b/definitions/bufr/tables/0/wmo/41/codetables/23005.table
new file mode 100644
index 000000000..c5ff5ae75
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23005.table
@@ -0,0 +1,4 @@
+0 0 INCIDENT STATE DOES NOT UNDERSTAND WHAT HAPPENED
+1 1 INCIDENT STATE KNOWS THE CAUSE OF THE INCIDENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23006.table b/definitions/bufr/tables/0/wmo/41/codetables/23006.table
new file mode 100644
index 000000000..fe7706af4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23006.table
@@ -0,0 +1,8 @@
+0 0 NO IMPROVEMENT
+1 1 UNSTABLE
+2 2 NO DETERIORATION
+3 3 IMPROVING
+4 4 STABLE
+5 5 DETERIORATING
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23007.table b/definitions/bufr/tables/0/wmo/41/codetables/23007.table
new file mode 100644
index 000000000..59fc043a8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23007.table
@@ -0,0 +1,5 @@
+0 0 NO RELEASE
+1 1 RELEASE HAS STOPPED
+2 2 RELEASE
+3 3 RELEASE IS CONTINUING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23008.table b/definitions/bufr/tables/0/wmo/41/codetables/23008.table
new file mode 100644
index 000000000..4ac5c5837
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23008.table
@@ -0,0 +1,4 @@
+0 0 GASEOUS
+1 1 PARTICULATE
+2 2 MIXTURE OF GASEOUS AND PARTICULATE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23009.table b/definitions/bufr/tables/0/wmo/41/codetables/23009.table
new file mode 100644
index 000000000..4ac5c5837
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23009.table
@@ -0,0 +1,4 @@
+0 0 GASEOUS
+1 1 PARTICULATE
+2 2 MIXTURE OF GASEOUS AND PARTICULATE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23016.table b/definitions/bufr/tables/0/wmo/41/codetables/23016.table
new file mode 100644
index 000000000..ae84bae45
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23016.table
@@ -0,0 +1,4 @@
+0 0 NO SIGNIFICANT CHEMICAL TOXIC HEALTH EFFECT
+1 1 SIGNIFICANT CHEMICAL TOXIC HEALTH EFFECT POSSIBLE
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23018.table b/definitions/bufr/tables/0/wmo/41/codetables/23018.table
new file mode 100644
index 000000000..ccdcc456d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23018.table
@@ -0,0 +1,6 @@
+0 0 RELEASE NO LONGER OCCURRING
+1 1 RELEASE STILL OCCURRING
+2 2 RELEASE EXPECTED TO INCREASE IN NEXT SIX HOURS
+3 3 RELEASE EXPECTED TO REMAIN CONSTANT IN NEXT SIX HOURS
+4 4 RELEASE EXPECTED TO DECREASE IN NEXT SIX HOURS
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23031.table b/definitions/bufr/tables/0/wmo/41/codetables/23031.table
new file mode 100644
index 000000000..cf20e26ee
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23031.table
@@ -0,0 +1,4 @@
+0 0 PLUME WILL NOT ENCOUNTER RAIN IN INCIDENT STATE
+1 1 PLUME WILL ENCOUNTER RAIN IN INCIDENT STATE
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/23032.table b/definitions/bufr/tables/0/wmo/41/codetables/23032.table
new file mode 100644
index 000000000..0f439b70d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/23032.table
@@ -0,0 +1,4 @@
+0 0 NO SIGNIFICANT CHANGE EXPECTED WITHIN THE NEXT SIX HOURS
+1 1 ANTICIPATED SIGNIFICANT CHANGE EXPECTED WITHIN THE NEXT SIX HOURS
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/24003.table b/definitions/bufr/tables/0/wmo/41/codetables/24003.table
new file mode 100644
index 000000000..2daa8104b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/24003.table
@@ -0,0 +1,5 @@
+0 0 NOBLE GASES
+1 1 IODINES
+2 2 CAESIUMS
+3 3 TRANSURANICS
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25004.table b/definitions/bufr/tables/0/wmo/41/codetables/25004.table
new file mode 100644
index 000000000..dfe451727
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25004.table
@@ -0,0 +1,4 @@
+0 0 INCOHERENT
+1 1 COHERENT (DOPPLER)
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25005.table b/definitions/bufr/tables/0/wmo/41/codetables/25005.table
new file mode 100644
index 000000000..bc693a7bf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25005.table
@@ -0,0 +1,4 @@
+0 0 LOGARITHM - 2.5 DB
+1 1 LINEAR
+2 2 SPECIAL
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25006.table b/definitions/bufr/tables/0/wmo/41/codetables/25006.table
new file mode 100644
index 000000000..bf9d1f52a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25006.table
@@ -0,0 +1,5 @@
+0 0 ZH TO R CONVERSION
+1 1 (ZH, ZDR) TO (NO, DO) TO R
+2 2 (Z (F1), Z (F2)) TO ATTENUATION TO R
+6 6 OTHER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25009.table b/definitions/bufr/tables/0/wmo/41/codetables/25009.table
new file mode 100644
index 000000000..bf34fb227
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25009.table
@@ -0,0 +1,4 @@
+1 1 NONE
+2 2 CALIBRATION TARGET OR SIGNAL
+3 3 AGAINST RAINGAUGES
+4 4 AGAINST OTHER INSTRUMENTS (DISDROMETER - ATTENUATION)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25010.table b/definitions/bufr/tables/0/wmo/41/codetables/25010.table
new file mode 100644
index 000000000..e88b3ca3c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25010.table
@@ -0,0 +1,8 @@
+0 0 NONE
+1 1 MAP
+2 2 INSERTION OF HIGHER ELEVATION DATA AND MAP
+3 3 ANALYSIS OF THE FLUCTUATING LOGARITHM SIGNAL (CLUTTER DETECTION)
+4 4 EXTRACTION OF THE FLUCTUATING PART OF LINEAR SIGNAL (CLUTTER SUPPRESSION)
+5 5 CLUTTER SUPPRESSION - DOPPLER
+6 6 MULTIPARAMETER ANALYSIS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25011.table b/definitions/bufr/tables/0/wmo/41/codetables/25011.table
new file mode 100644
index 000000000..f73949830
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25011.table
@@ -0,0 +1,4 @@
+0 0 NONE
+1 1 MAP OF CORRECTION FACTORS
+2 2 INTERPOLATION (AZIMUTH OR ELEVATION)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25012.table b/definitions/bufr/tables/0/wmo/41/codetables/25012.table
new file mode 100644
index 000000000..c869a4ace
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25012.table
@@ -0,0 +1,4 @@
+0 0 HARDWARE
+1 1 SOFTWARE
+2 2 HARDWARE AND SOFTWARE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25013.table b/definitions/bufr/tables/0/wmo/41/codetables/25013.table
new file mode 100644
index 000000000..b91ea71db
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25013.table
@@ -0,0 +1 @@
+1 1 BRIGHT-BAND CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25015.table b/definitions/bufr/tables/0/wmo/41/codetables/25015.table
new file mode 100644
index 000000000..043e587b6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25015.table
@@ -0,0 +1 @@
+1 1 RADOME ATTENUATION CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25017.table b/definitions/bufr/tables/0/wmo/41/codetables/25017.table
new file mode 100644
index 000000000..ed48487e1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25017.table
@@ -0,0 +1 @@
+1 1 PRECIPITATION ATTENUATION CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25020.table b/definitions/bufr/tables/0/wmo/41/codetables/25020.table
new file mode 100644
index 000000000..6133da3bf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25020.table
@@ -0,0 +1,4 @@
+0 0 FFT (FAST FOURIER TRANSFORM)
+1 1 PPP (PULSE-PAIR PROCESSING)
+2 2 VPC (VECTOR-PHASE CHANGE)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25021.table b/definitions/bufr/tables/0/wmo/41/codetables/25021.table
new file mode 100644
index 000000000..314716b3b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25021.table
@@ -0,0 +1,5 @@
+1 1 SIMPLE AVERAGE
+2 2 CONSENSUS AVERAGE
+3 3 MEDIAN CHECK
+4 4 VERTICAL CONSISTENCY CHECK
+5 5 OTHER
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25022.table b/definitions/bufr/tables/0/wmo/41/codetables/25022.table
new file mode 100644
index 000000000..95848784f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25022.table
@@ -0,0 +1,8 @@
+1 1 UNPROCESSED
+2 2 LAND SUSPECTED
+3 3 WIND SPEED TOO LARGE
+4 4 ICE DETECTED
+5 5 RAIN DETECTED (MICROWAVE RETRIEVALS ONLY)
+6 6 CLOUDY DETECTED (INFRA-RED RETRIEVALS ONLY)
+7 7 COSMETIC VALUE
+8 8 SST OUT OF RANGE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25023.table b/definitions/bufr/tables/0/wmo/41/codetables/25023.table
new file mode 100644
index 000000000..e4840dc8c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25023.table
@@ -0,0 +1,8 @@
+1 1 DEFAULT CONFIDENCE VALUE HAS BEEN USED
+2 2 DEFAULT BIAS AND STANDARD DEVIATION HAVE BEEN USED
+3 3 SUN GLINT SUSPECTED
+4 4 SEA ICE RETRIEVAL FOR MICROWAVE DATA
+5 5 HIGH WIND SPEED RETRIEVAL
+6 6 INACCURATE SST DUE TO LOW SST (< 285K) (ONLY APPLIES TO THE TMI INSTRUMENT)
+7 7 RELAXED RAIN CONTAMINATION SUSPECTED
+8 8 POTENTIAL SIDE LOBE CONTAMINATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25024.table b/definitions/bufr/tables/0/wmo/41/codetables/25024.table
new file mode 100644
index 000000000..81b26380c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25024.table
@@ -0,0 +1,13 @@
+0 0 UNPROCESSED INFRARED RETRIEVAL
+1 1 CLOUDY RETRIEVALS
+2 2 BAD: DATA THAT ARE PROBABLY CONTAMINATED BY CLOUD
+3 3 SUSPECT DATA
+4 4 ACCEPTABLE DATA
+5 5 EXCELLENT DATA
+6 6 COOL SKIN SUSPECTED
+10 10 UNPROCESSED MICROWAVE RETRIEVAL
+11 11 QUESTIONABLE MICROWAVE RETRIEVAL THAT MAY BE CONTAMINATED
+12 12 ACCEPTABLE MICROWAVE RETRIEVAL
+13 13 HIGH PROBABILITY OF DIURNAL VARIABILITY
+14 14 RESERVED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25029.table b/definitions/bufr/tables/0/wmo/41/codetables/25029.table
new file mode 100644
index 000000000..fb00d01ca
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25029.table
@@ -0,0 +1,5 @@
+1 1 RESERVED
+2 2 CALIBRATION TARGET OR SIGNAL
+3 3 AGAINST RAINGAUGES
+4 4 AGAINST OTHER INSTRUMENTS (DISDROMETER - ATTENUATION)
+5 5 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25030.table b/definitions/bufr/tables/0/wmo/41/codetables/25030.table
new file mode 100644
index 000000000..c3235d6e5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25030.table
@@ -0,0 +1,4 @@
+0 0 RUNNING MEAN SEA-SURFACE TEMPERATURE NOT USED BECAUSE USAGE CRITERIA NOT MET
+1 1 RUNNING MEAN SEA-SURFACE TEMPERATURE NOT USED BECAUSE DATA NOT AVAILABLE
+2 2 RUNNING MEAN SEA-SURFACE TEMPERATURE USED AS PREDICTOR
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25031.table b/definitions/bufr/tables/0/wmo/41/codetables/25031.table
new file mode 100644
index 000000000..16ff950a1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25031.table
@@ -0,0 +1,6 @@
+0 0 RESERVED
+1 1 NO THINNING APPLIED (ALL NATIVE MODEL LEVELS ARE INCLUDED FROM BASE TO TOP OF PSEUDO-SOUNDING)
+2 2 NATIVE MODEL LEVELS ARE PRESENT ONLY IF THEY ARE SIGNIFICANT LEVELS AS PER REGULATIONS B/C 25 FOR CONVENTIONAL TEMP SOUNDINGS
+3 3 A PREDEFINED SUBSET OF NATIVE MODEL LEVELS IS PRESENT
+4 4 NO NATIVE MODEL LEVELS ARE PRESENT. ALL PROFILE LEVELS ARE INTERPOLATED TO A PREDEFINED SET OF PRESSURE COORDINATE LEVELS
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25032.table b/definitions/bufr/tables/0/wmo/41/codetables/25032.table
new file mode 100644
index 000000000..9b894f470
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25032.table
@@ -0,0 +1,4 @@
+0 0 RESERVED
+1 1 DATA FROM LOW MODE
+2 2 DATA FROM HIGH MODE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25033.table b/definitions/bufr/tables/0/wmo/41/codetables/25033.table
new file mode 100644
index 000000000..e7141c078
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25033.table
@@ -0,0 +1,4 @@
+0 0 WIND PROFILER OPERATING IN SUBMODE A
+1 1 WIND PROFILER OPERATING IN SUBMODE B
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25034.table b/definitions/bufr/tables/0/wmo/41/codetables/25034.table
new file mode 100644
index 000000000..473338a40
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25034.table
@@ -0,0 +1,3 @@
+1 1 TEST A PERFORMED AND FAILED
+2 2 TEST B PERFORMED AND FAILED
+3 3 TEST RESULTS INCONCLUSIVE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25035.table b/definitions/bufr/tables/0/wmo/41/codetables/25035.table
new file mode 100644
index 000000000..a0c8faa59
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25035.table
@@ -0,0 +1,8 @@
+0 0 NOT DEFINED
+1 1 INDIVIDUAL VOLTAGE DEFLECTION
+2 2 CURRENT BASED, ABOVE A THRESHOLD
+3 3 VOLTAGE BASED, ABOVE A THRESHOLD
+4 4 CONSENSUS OF SENSORS, CURRENT ABOVE A THRESHOLD
+5 5 CONSENSUS OF SENSORS, VOLTAGE ABOVE A THRESHOLD
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25036.table b/definitions/bufr/tables/0/wmo/41/codetables/25036.table
new file mode 100644
index 000000000..79ebd8887
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25036.table
@@ -0,0 +1,4 @@
+0 0 NETWORK OF SEVERAL DIRECTION-FINDERS OPERATING ON THE SAME INDIVIDUAL ATMOSPHERICS
+1 1 NETWORK OF SEVERAL ARRIVAL-TIME STATIONS OPERATING ON THE SAME INDIVIDUAL ATMOSPHERICS
+6 6 SINGLE STATION RANGE BEARING TECHNIQUE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25040.table b/definitions/bufr/tables/0/wmo/41/codetables/25040.table
new file mode 100644
index 000000000..3ddf12e20
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25040.table
@@ -0,0 +1,10 @@
+0 0 NON-SPECIFIC MODE
+1 1 FIRST GUESS DATA
+2 2 CLOUD DATA
+3 3 AVERAGE VECTOR DATA
+4 4 PRIMARY DATA
+5 5 GUESS DATA
+6 6 VECTOR DATA
+7 7 TRACER DATA; THIS IMAGE
+8 8 TRACER DATA TO NEXT IMAGE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25041.table b/definitions/bufr/tables/0/wmo/41/codetables/25041.table
new file mode 100644
index 000000000..f388da0c2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25041.table
@@ -0,0 +1,4 @@
+0 0 DIRECTION ORIGINALLY REPORTED IN TRUE DEGREES
+1 1 DIRECTION ORIGINALLY REPORTED USING CODE TABLE 0700, FM 13
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25042.table b/definitions/bufr/tables/0/wmo/41/codetables/25042.table
new file mode 100644
index 000000000..f3cf05999
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25042.table
@@ -0,0 +1,4 @@
+0 0 SPEED ORIGINALLY REPORTED IN METRES PER SECOND
+1 1 SPEED ORIGINALLY REPORTED USING CODE TABLE 4451, FM 13
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25053.table b/definitions/bufr/tables/0/wmo/41/codetables/25053.table
new file mode 100644
index 000000000..af3413851
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25053.table
@@ -0,0 +1,6 @@
+1 1 GOOD
+2 2 REDUNDANT
+3 3 QUESTIONABLE
+4 4 BAD
+5 5 EXPERIMENTAL
+6 6 PRECIPITATING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25063.table b/definitions/bufr/tables/0/wmo/41/codetables/25063.table
new file mode 100644
index 000000000..a8970eaf4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25063.table
@@ -0,0 +1,4 @@
+0 0 NOT DEFINED
+1 1 MAIN PROCESSOR
+2 2 BACKUP PROCESSOR
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25069.table b/definitions/bufr/tables/0/wmo/41/codetables/25069.table
new file mode 100644
index 000000000..e627613dd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25069.table
@@ -0,0 +1,7 @@
+1 1 SMOOTHED
+2 2 BASELINE ADJUSTED
+3 3 NORMALIZED TIME INTERVAL
+4 4 OUTLIER CHECKED
+5 5 PLAUSIBILITY CHECKED
+6 6 CONSISTENCY CHECKED
+7 7 INTERPOLATED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25086.table b/definitions/bufr/tables/0/wmo/41/codetables/25086.table
new file mode 100644
index 000000000..294fa6977
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25086.table
@@ -0,0 +1,4 @@
+0 0 DEPTHS ARE NOT CORRECTED
+1 1 DEPTHS ARE CORRECTED
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25090.table b/definitions/bufr/tables/0/wmo/41/codetables/25090.table
new file mode 100644
index 000000000..77c509d1a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25090.table
@@ -0,0 +1,11 @@
+0 0 ORBIT COMPUTED DURING A MANOEUVRE
+1 1 ADJUSTED MISSION OPERATIONS ORBIT
+2 2 EXTRAPOLATED MISSION OPERATIONS ORBIT
+3 3 ADJUSTED (PRELIMINARY/PRECISE) ORBIT
+4 4 (PRELIMINARY/PRECISE) ORBIT IS ESTIMATED DURING A MANOEUVRE PERIOD
+5 5 (PRELIMINARY/PRECISE) ORBIT IS INTERPOLATED OVER A TRACKING DATA GAP
+6 6 (PRELIMINARY/PRECISE) ORBIT IS EXTRAPOLATED FOR A DURATION LESS THAN 1 DAY
+7 7 (PRELIMINARY/PRECISE) ORBIT IS EXTRAPOLATED FOR A DURATION THAT RANGES FROM 1 DAY TO 2 DAYS
+8 8 (PRELIMINARY/PRECISE) ORBIT IS EXTRAPOLATED FOR A DURATION LARGER THAN 2 DAYS, OR THAT THE ORBIT IS EXTRAPOLATED JUST AFTER A MANOEUVRE
+9 9 DORIS DIODE NAVIGATOR ORBIT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25093.table b/definitions/bufr/tables/0/wmo/41/codetables/25093.table
new file mode 100644
index 000000000..e547e6c81
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25093.table
@@ -0,0 +1,3 @@
+1 1 NO CORRECTION
+2 2 VERTICAL VELOCITY CORRECTION
+7 7 ALL CORRECTIONS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25095.table b/definitions/bufr/tables/0/wmo/41/codetables/25095.table
new file mode 100644
index 000000000..c446a5045
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25095.table
@@ -0,0 +1 @@
+1 1 ALTIMETER OPERATING (0 IF NOMINAL, 1 IF BACKUP)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25096.table b/definitions/bufr/tables/0/wmo/41/codetables/25096.table
new file mode 100644
index 000000000..89dcc3914
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25096.table
@@ -0,0 +1,4 @@
+1 1 MODE INDICATOR (0 IF MODE 2, 1 IF MODE 1)
+2 2 MODE 1 CALIBRATION SEQUENCE INDICATOR (0 IF NORMAL DATA TAKING EITHER MODE 1 OR 2, 1 IF MODE 1 CALIBRATION SEQUENCE) BITS 3 AND 4 INDICATE ACTIVE 23.8 GHZ CHANNEL(S):
+3 3 CHANNEL 2 (0 IF ON, 1 IF OFF)
+4 4 CHANNEL 3 (0 IF ON, 1 IF OFF)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25097.table b/definitions/bufr/tables/0/wmo/41/codetables/25097.table
new file mode 100644
index 000000000..d4e1e4646
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25097.table
@@ -0,0 +1,11 @@
+0 0 RANGES BETWEEN 0 AND 30 CM
+1 1 RANGES BETWEEN 30 AND 60 CM
+2 2 RANGES BETWEEN 60 AND 90 CM
+3 3 RANGES BETWEEN 90 AND 120 CM
+4 4 RANGES BETWEEN 120 AND 150 CM
+5 5 RANGES BETWEEN 150 AND 180 CM
+6 6 RANGES BETWEEN 180 AND 210 CM
+7 7 RANGES BETWEEN 210 AND 240 CM
+8 8 RANGES BETWEEN 240 AND 270 CM
+9 9 RANGES LARGER THAN 270 CM
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25098.table b/definitions/bufr/tables/0/wmo/41/codetables/25098.table
new file mode 100644
index 000000000..ac736f5c0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25098.table
@@ -0,0 +1,8 @@
+1 1 KU BAND RANGE
+2 2 C BAND RANGE
+3 3 KU BAND SWH
+4 4 C BAND SWH
+5 5 KU BAND BACKSCATTER COEFFICIENT
+6 6 C BAND BACKSCATTER COEFFICIENT
+7 7 OFF NADIR ANGLE FROM KU BAND WAVEFORM PARAMETERS
+8 8 OFF NADIR ANGLE FROM PLATFORM
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25099.table b/definitions/bufr/tables/0/wmo/41/codetables/25099.table
new file mode 100644
index 000000000..94d679c10
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25099.table
@@ -0,0 +1,6 @@
+1 1 KU BAND RANGE INSTRUMENTAL CORRECTION
+2 2 C BAND RANGE INSTRUMENTAL CORRECTION
+3 3 KU BAND SWH INSTRUMENTAL CORRECTION
+4 4 C BAND SWH INSTRUMENTAL CORRECTION
+5 5 KU BAND BACKSCATTER COEFFICIENT INSTRUMENTAL CORRECTION
+6 6 C BAND BACKSCATTER COEFFICIENT INSTRUMENTAL CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25110.table b/definitions/bufr/tables/0/wmo/41/codetables/25110.table
new file mode 100644
index 000000000..912e01f54
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25110.table
@@ -0,0 +1,6 @@
+1 1 RAW DATA ANALYSIS USED FOR RAW DATA CORRECTION. CORRECTION DONE USING DEFAULT PARAMETERS
+2 2 RAW DATA ANALYSIS USED FOR RAW DATA CORRECTION. CORRECTION DONE USING RAW DATA ANALYSIS RESULTS
+3 3 ANTENNA ELEVATION PATTERN CORRECTION APPLIED
+4 4 NOMINAL CHIRP REPLICA USED
+5 5 RECONSTRUCTED CHIRP USED
+6 6 SLANT RANGE TO GROUND RANGE CONVERSION APPLIED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25112.table b/definitions/bufr/tables/0/wmo/41/codetables/25112.table
new file mode 100644
index 000000000..a2a4ec9d3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25112.table
@@ -0,0 +1,5 @@
+1 1 BAND SPECIFIC RANGE
+2 2 BAND SPECIFIC SIGNIFICANT WAVE HEIGHT
+3 3 BAND SPECIFIC BACKSCATTER COEFFICIENT
+4 4 OFF NADIR ANGLE FROM BAND SPECIFIC WAVEFORM PARAMETERS
+5 5 OFF NADIR ANGLE FROM PLATFORM
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25113.table b/definitions/bufr/tables/0/wmo/41/codetables/25113.table
new file mode 100644
index 000000000..ef394b626
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25113.table
@@ -0,0 +1,3 @@
+1 1 BAND SPECIFIC RANGE INSTRUMENTAL CORRECTION
+2 2 BAND SPECIFIC SIGNIFICANT WAVE HEIGHT INSTRUMENTAL CORRECTION
+3 3 BAND SPECIFIC BACKSCATTER COEFFICIENT INSTRUMENTAL CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25120.table b/definitions/bufr/tables/0/wmo/41/codetables/25120.table
new file mode 100644
index 000000000..c45b0addf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25120.table
@@ -0,0 +1,4 @@
+0 0 PERCENTAGE OF DSRS FREE OF PROCESSING ERRORS DURING LEVEL 2 PROCESSING IS GREATER THAN THE ACCEPTABLE THRESHOLD
+1 1 PERCENTAGE OF DSRS FREE OF PROCESSING ERRORS DURING LEVEL 2 PROCESSING IS LESS THAN THE ACCEPTABLE THRESHOLD
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25122.table b/definitions/bufr/tables/0/wmo/41/codetables/25122.table
new file mode 100644
index 000000000..1085ef980
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25122.table
@@ -0,0 +1,4 @@
+0 0 HARDWARE CONFIGURATION FOR RF IS A
+1 1 HARDWARE CONFIGURATION FOR RF IS B
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25123.table b/definitions/bufr/tables/0/wmo/41/codetables/25123.table
new file mode 100644
index 000000000..70f0670e9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25123.table
@@ -0,0 +1,4 @@
+0 0 HARDWARE CONFIGURATION FOR HPA IS A
+1 1 HARDWARE CONFIGURATION FOR HPA IS B
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25124.table b/definitions/bufr/tables/0/wmo/41/codetables/25124.table
new file mode 100644
index 000000000..c45b0addf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25124.table
@@ -0,0 +1,4 @@
+0 0 PERCENTAGE OF DSRS FREE OF PROCESSING ERRORS DURING LEVEL 2 PROCESSING IS GREATER THAN THE ACCEPTABLE THRESHOLD
+1 1 PERCENTAGE OF DSRS FREE OF PROCESSING ERRORS DURING LEVEL 2 PROCESSING IS LESS THAN THE ACCEPTABLE THRESHOLD
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25139.table b/definitions/bufr/tables/0/wmo/41/codetables/25139.table
new file mode 100644
index 000000000..39b215e09
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25139.table
@@ -0,0 +1,3 @@
+0 0 L1B
+1 1 L2A
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25150.table b/definitions/bufr/tables/0/wmo/41/codetables/25150.table
new file mode 100644
index 000000000..7b452c327
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25150.table
@@ -0,0 +1,3 @@
+1 1 THE DVORAK'S VIS (VISUAL IMAGERY) INTENSITY ANALYSIS
+2 2 THE DVORAK'S EIR (ENHANCED INFRARED IMAGERY) INTENSITY ANALYSIS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25174.table b/definitions/bufr/tables/0/wmo/41/codetables/25174.table
new file mode 100644
index 000000000..c8a11b6d7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25174.table
@@ -0,0 +1,13 @@
+1 1 PIXEL IS AFFECTED BY RFI EFFECTS
+2 2 PIXEL IS LOCATED IN THE HEXAGONAL ALIAS DIRECTION CENTRED ON SUN ALIAS
+3 3 PIXEL IS CLOSE TO THE BORDER DELIMITING THE EXTENDED ALIAS FREE ZONE
+4 4 PIXEL IS INSIDE THE EXTENDED ALIAS FREE ZONE
+5 5 PIXEL IS INSIDE THE EXCLUSIVE OF ALIAS FREE ZONE
+6 6 PIXEL IS LOCATED IN A ZONE WHERE A MOON ALIAS WAS RECONSTRUCTED
+7 7 PIXEL IS LOCATED IN A ZONE WHERE SUN REFLECTION HAS BEEN DETECTED
+8 8 PIXEL IS LOCATED IN A ZONE WHERE SUN ALIAS WAS RECONSTRUCTED
+9 9 FLAT TARGET TRANSFORMATION HAS BEEN PERFORMED DURING IMAGE RECONSTRUCTION OF THIS PIXEL
+10 10 SCENE HAS BEEN COMBINED WITH AN ADJUSTMENT SCENE IN OPPOSITE POLARIZATION DURING IMAGE RECONSTRUCTION TO ACCOUNT FOR CROSS-POLARIZATION LEAKAGE
+11 11 DIRECT MOON CORRECTION HAS BEEN PERFORMED DURING IMAGE RECONSTRUCTION OF THIS PIXEL
+12 12 REFLECTED SUN CORRECTION HAS BEEN PERFORMED DURING IMAGE RECONSTRUCTION OF THIS PIXEL
+13 13 DIRECT SUN CORRECTION HAS BEEN PERFORMED DURING IMAGE RECONSTRUCTION OF THIS IMAGE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25181.table b/definitions/bufr/tables/0/wmo/41/codetables/25181.table
new file mode 100644
index 000000000..2c1eabf7c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25181.table
@@ -0,0 +1,3 @@
+0 0 OK
+1 1 PERCENTAGE OF L2B RECORDS FREE OF PROCESSING ERRORS IS LESS THAN ACCEPTABLE THRESHOLD
+2 2 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25182.table b/definitions/bufr/tables/0/wmo/41/codetables/25182.table
new file mode 100644
index 000000000..9827b1dfd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25182.table
@@ -0,0 +1,3 @@
+0 0 OK
+1 1 PERCENTAGE OF L1B RECORDS FREE OF PROCESSING ERRORS IS LESS THAN ACCEPTABLE THRESHOLD
+2 2 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25184.table b/definitions/bufr/tables/0/wmo/41/codetables/25184.table
new file mode 100644
index 000000000..29005c133
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25184.table
@@ -0,0 +1,3 @@
+0 0 OK
+1 1 PRODUCT AS A DURATION SHORTER THAN THE INPUT PRODUCT
+2 2 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25185.table b/definitions/bufr/tables/0/wmo/41/codetables/25185.table
new file mode 100644
index 000000000..ac18abae4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25185.table
@@ -0,0 +1,2 @@
+0 0 AES 256
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25187.table b/definitions/bufr/tables/0/wmo/41/codetables/25187.table
new file mode 100644
index 000000000..683c09709
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25187.table
@@ -0,0 +1,3 @@
+0 0 VALID
+1 1 INVALID
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25188.table b/definitions/bufr/tables/0/wmo/41/codetables/25188.table
new file mode 100644
index 000000000..b18013f21
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25188.table
@@ -0,0 +1,6 @@
+0 0 PRESSURE ADJUSTED TO MEAN SEA LEVEL FOLLOWING WMO-NO. 8 FOR LOW LEVEL (< 50 M) STATIONS
+1 1 PRESSURE ADJUSTED TO MEAN SEA LEVEL FOLLOWING WMO-NO. 8 FOR STATIONS BELOW 750 M
+2 2 PRESSURE ADJUSTED TO SEA LEVEL FOLLOWING NATIONAL PRACTICE
+3 3 PRESSURE ADJUSTED TO LOCAL WATER LEVEL FOLLOWING NATIONAL PRACTICE
+4 4 PRESSURE NOT CORRECTED FOR HEIGHT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25190.table b/definitions/bufr/tables/0/wmo/41/codetables/25190.table
new file mode 100644
index 000000000..62fbc7616
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25190.table
@@ -0,0 +1,7 @@
+0 0 LOW-RESOLUTION MODE (LRM)
+1 1 SYNTHETIC APERTURE RADAR (SAR)
+2 2 LRM AND SAR (INTERLEAVED)
+3 3 RESERVED
+4 4 PSEUDO-LRM (PLRM)
+5 5 SAR INTERFEROMETRIC MODE (SARIN)
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/25191.table b/definitions/bufr/tables/0/wmo/41/codetables/25191.table
new file mode 100644
index 000000000..ea22b6872
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/25191.table
@@ -0,0 +1,4 @@
+0 0 OPEN LOOP
+1 1 CLOSED LOOP
+2 2 OPEN LOOP FIXED GAIN
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/26010.table b/definitions/bufr/tables/0/wmo/41/codetables/26010.table
new file mode 100644
index 000000000..f825040f4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/26010.table
@@ -0,0 +1,25 @@
+1 1 0100 INCLUDED
+2 2 0200 INCLUDED
+3 3 0300 INCLUDED
+4 4 0400 INCLUDED
+5 5 0500 INCLUDED
+6 6 0600 INCLUDED
+7 7 0700 INCLUDED
+8 8 0800 INCLUDED
+9 9 0900 INCLUDED
+10 10 1000 INCLUDED
+11 11 1100 INCLUDED
+12 12 1200 INCLUDED
+13 13 1300 INCLUDED
+14 14 1400 INCLUDED
+15 15 1500 INCLUDED
+16 16 1600 INCLUDED
+17 17 1700 INCLUDED
+18 18 1800 INCLUDED
+19 19 1900 INCLUDED
+20 20 2000 INCLUDED
+21 21 2100 INCLUDED
+22 22 2200 INCLUDED
+23 23 2300 INCLUDED
+24 24 2400 INCLUDED
+25 25 UNKNOWN MIXTURE OF HOURS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/29001.table b/definitions/bufr/tables/0/wmo/41/codetables/29001.table
new file mode 100644
index 000000000..884b29a84
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/29001.table
@@ -0,0 +1,8 @@
+0 0 GNOMONIC PROJECTION
+1 1 POLAR STEREOGRAPHIC PROJECTION
+2 2 LAMBERT'S CONFORMAL CONIC PROJECTION
+3 3 MERCATOR'S PROJECTION
+4 4 SCANNING CONE (RADAR)
+5 5 RESERVED
+6 6 NO PROJECTION
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/29002.table b/definitions/bufr/tables/0/wmo/41/codetables/29002.table
new file mode 100644
index 000000000..1d7efd0c8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/29002.table
@@ -0,0 +1,4 @@
+0 0 CARTESIAN
+1 1 POLAR
+2 2 OTHER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3001.table b/definitions/bufr/tables/0/wmo/41/codetables/3001.table
new file mode 100644
index 000000000..e9caa2a14
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3001.table
@@ -0,0 +1,12 @@
+0 0 LAND STATION (SYNOPTIC NETWORK)
+1 1 SHALLOW WATER STATION (FIXED TO SEA/LAKE FLOOR)
+2 2 SHIP
+3 3 RIG/PLATFORM
+4 4 MOORED BUOY
+5 5 DRIFTING BUOY (OR DRIFTER)
+6 6 ICE BUOY
+7 7 LAND STATION (LOCAL NETWORK)
+8 8 LAND VEHICLE
+9 9 AUTONOMOUS MARINE VEHICLE
+10 10 TAG ATTACHED TO MARINE ANIMAL
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3003.table b/definitions/bufr/tables/0/wmo/41/codetables/3003.table
new file mode 100644
index 000000000..cf530237f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3003.table
@@ -0,0 +1,8 @@
+0 0 SCREEN
+1 1 SLING/WHIRLING
+2 2 UNSCREENED
+3 3 RADIATION SHIELD
+4 4 ASPIRATED (E.G. ASSMANN)
+5 5 OTHER SHELTER
+6 6 HANDHELD
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/30031.table b/definitions/bufr/tables/0/wmo/41/codetables/30031.table
new file mode 100644
index 000000000..80cce26f1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/30031.table
@@ -0,0 +1,13 @@
+0 0 PPI
+1 1 COMPOSITE
+2 2 CAPPL
+3 3 VERTICAL SECTION
+4 4 ALPHANUMERIC DATA
+5 5 MAP OF SUBJECT CLUTTER
+6 6 MAP
+7 7 TEST PICTURE
+8 8 COMMENTS
+9 9 MAP OF GROUND OCCULTATION
+10 10 MAP OF RADAR BEAM HEIGHT
+14 14 OTHER
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/30032.table b/definitions/bufr/tables/0/wmo/41/codetables/30032.table
new file mode 100644
index 000000000..942cb5d7f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/30032.table
@@ -0,0 +1,9 @@
+1 1 MAP
+2 2 SATELLITE IR
+3 3 SATELLITE VIS
+4 4 SATELLITE WV
+5 5 SATELLITE MULTISPECTRAL
+6 6 SYNOPTIC OBSERVATIONS
+7 7 FORECAST PARAMETERS
+8 8 LIGHTNING DATA
+15 15 OTHER DATA
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3004.table b/definitions/bufr/tables/0/wmo/41/codetables/3004.table
new file mode 100644
index 000000000..571e234bf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3004.table
@@ -0,0 +1,11 @@
+0 0 STEVENSON SCREEN
+1 1 MARINE STEVENSON SCREEN
+2 2 CYLINDRICAL SECTION PLATE SHIELD
+3 3 CONCENTRIC TUBE
+4 4 RECTANGULAR SECTION SHIELD
+5 5 SQUARE SECTION SHIELD
+6 6 TRIANGULAR SECTION SHIELD
+7 7 OPEN COVERED LEAN-TO
+8 8 OPEN COVERED INVERTED V ROOF
+9 9 INTEGRATED (E.G. CHILLED MIRROR)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3008.table b/definitions/bufr/tables/0/wmo/41/codetables/3008.table
new file mode 100644
index 000000000..e321d5562
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3008.table
@@ -0,0 +1,4 @@
+0 0 NATURAL VENTILATION IN USE
+1 1 ARTIFICIAL ASPIRATION IN USE: CONSTANT FLOW AT TIME OF READING
+2 2 ARTIFICIAL ASPIRATION IN USE: VARIABLE FLOW AT TIME OF READING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3010.table b/definitions/bufr/tables/0/wmo/41/codetables/3010.table
new file mode 100644
index 000000000..75746a1c3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3010.table
@@ -0,0 +1,12 @@
+0 0 RESERVED
+1 1 ADCP
+2 2 GEK (GEOMAGNETIC ELECTROKINETOGRAPH)
+3 3 SHIP'S SET AND DRIFT DETERMINED BY FIXES 3-6 HOURS APART
+4 4 SHIP'S SET AND DRIFT DETERMINED BY FIXES MORE THAN 6 HOURS BUT LESS THAN 12 HOURS APART
+5 5 DRIFT OF BUOY
+6 6 ADCP
+7 7 ADCP BOTTOM TRACKING MODE
+8 8 ELECTROMAGNETIC SENSOR
+9 9 ROTOR AND VANE
+10 10 LOWERED ADCP
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3011.table b/definitions/bufr/tables/0/wmo/41/codetables/3011.table
new file mode 100644
index 000000000..748826848
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3011.table
@@ -0,0 +1,4 @@
+0 0 DEPTH CALCULATED USING FALL RATE EQUATION
+1 1 DEPTH CALCULATED FROM WATER PRESSURE/EQUATION OF STATE
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3012.table b/definitions/bufr/tables/0/wmo/41/codetables/3012.table
new file mode 100644
index 000000000..35bdeadd5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3012.table
@@ -0,0 +1,3 @@
+0 0 ANDERRAA OXYGEN OPTODE
+1 1 WINKLER BOTTLE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3016.table b/definitions/bufr/tables/0/wmo/41/codetables/3016.table
new file mode 100644
index 000000000..792788f42
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3016.table
@@ -0,0 +1,9 @@
+0 0 FAST LANE BETWEEN THE WHEEL TRACKS
+1 1 FAST LANE BETWEEN THE WHEEL TRACKS IN THE OPPOSITE DIRECTION
+2 2 FAST LANE IN THE WHEEL TRACKS
+3 3 FAST LANE IN THE WHEEL TRACKS IN THE OPPOSITE DIRECTION
+4 4 SLOW LANE BETWEEN THE WHEEL TRACKS
+5 5 SLOW LANE BETWEEN THE WHEEL TRACKS IN THE OPPOSITE DIRECTION
+6 6 SLOW LANE IN THE WHEEL TRACKS
+7 7 SLOW LANE IN THE WHEEL TRACKS IN THE OPPOSITE DIRECTION
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3017.table b/definitions/bufr/tables/0/wmo/41/codetables/3017.table
new file mode 100644
index 000000000..e94c0a449
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3017.table
@@ -0,0 +1,5 @@
+1 1 AUTOMATIC
+2 2 MANNED
+3 3 EVENT TRIGGERED
+4 4 LONGER TIME PERIOD THAN THE STANDARD
+5 5 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3018.table b/definitions/bufr/tables/0/wmo/41/codetables/3018.table
new file mode 100644
index 000000000..b3769ae40
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3018.table
@@ -0,0 +1,22 @@
+0 0 FREE TRACK WITHOUT FURTHER INFORMATION
+1 1 FREE TRACK, EMBANKMENT
+2 2 FREE TRACK, FLAT RELATIVE TO SURROUNDINGS
+3 3 FREE TRACK, WATER BASIN(S) IN VICINITY
+4 4 FREE TRACK, FOREST
+5 5 FREE TRACK, CLEFT
+6 6 FREE TRACK, ON HILLTOP
+7 7 FREE TRACK, ON HILLTOP, FOREST
+8 8 FREE TRACK, IN VALLEY
+9 9 FREE TRACK, IN VALLEY, FOREST
+10 10 FREE TRACK, NORTH INCLINATION
+11 11 FREE TRACK, NORTH INCLINATION, FOREST
+12 12 FREE TRACK, SOUTH INCLINATION
+13 13 FREE TRACK, SOUTH INCLINATION, FOREST
+20 20 BRIDGE WITHOUT FURTHER INFORMATION
+21 21 BRIDGE ACROSS A VALLEY IN AN URBAN AREA
+22 22 BRIDGE ACROSS A VALLEY WITH FOREST/MEADOWS/FIELDS
+23 23 BRIDGE ACROSS STREET/TRACK
+24 24 BRIDGE ACROSS BIG RIVER/CANAL
+25 25 BRIDGE ACROSS RIVER/CANAL OF MEDIUM SIZE
+26 26 BRIDGE ACROSS A SMALL STREAM/LOADING CANAL
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3019.table b/definitions/bufr/tables/0/wmo/41/codetables/3019.table
new file mode 100644
index 000000000..2f55b0028
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3019.table
@@ -0,0 +1,8 @@
+0 0 ASPHALT
+1 1 CONCRETE
+2 2 CONCRETE CONSTRUCTION
+3 3 STEEL-GIRDER CONSTRUCTION
+4 4 BOX GIRDER BRIDGE
+5 5 ORTHOTROPIC SLAB
+6 6 DRAIN ASPHALT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3020.table b/definitions/bufr/tables/0/wmo/41/codetables/3020.table
new file mode 100644
index 000000000..9f0feaea7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3020.table
@@ -0,0 +1,5 @@
+0 0 WOOD
+1 1 METAL ALLOY
+2 2 PLASTIC/GRP
+3 3 REED/GRASS/LEAF
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3021.table b/definitions/bufr/tables/0/wmo/41/codetables/3021.table
new file mode 100644
index 000000000..27e1bfad4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3021.table
@@ -0,0 +1,4 @@
+0 0 UNHEATED
+1 1 HEATED
+2 2 NOT APPLICABLE
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3022.table b/definitions/bufr/tables/0/wmo/41/codetables/3022.table
new file mode 100644
index 000000000..daf67e27f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3022.table
@@ -0,0 +1,4 @@
+0 0 NATIONAL HYDROMETEOROLOGICAL/WEATHER SERVICE
+1 1 OTHER
+2 2 STANDARDS INSTITUTE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3023.table b/definitions/bufr/tables/0/wmo/41/codetables/3023.table
new file mode 100644
index 000000000..9e683c891
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3023.table
@@ -0,0 +1,8 @@
+0 0 SINGLE V-SECTION LOUVERS
+1 1 OVERLAPPING LOUVERS
+2 2 DOUBLE V-SECTION LOUVERS
+3 3 NON-OVERLAPPING LOUVERS
+4 4 VENTED, NON-LOUVERED
+5 5 NOT APPLICABLE
+6 6 RESERVED FOR FUTURE USE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3027.table b/definitions/bufr/tables/0/wmo/41/codetables/3027.table
new file mode 100644
index 000000000..8280e8602
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3027.table
@@ -0,0 +1,8 @@
+0 0 SOLO (SINGLE RADIOSONDE)
+1 1 BLOCK
+2 2 BAR
+3 3 CROSS
+4 4 T-RIG
+5 5 DOUBLE T-RIG
+6 6 COMPLEX
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3028.table b/definitions/bufr/tables/0/wmo/41/codetables/3028.table
new file mode 100644
index 000000000..9cc805953
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3028.table
@@ -0,0 +1,8 @@
+0 0 MULTI POINT MANUAL SNOW SURVEY
+1 1 SINGLE POINT MANUAL SNOW WATER EQUIVALENT MEASUREMENT
+2 2 SNOW PILLOW OR SNOW SCALE
+3 3 PASSIVE GAMMA
+4 4 GNSS/GPS METHODS
+5 5 COSMIC RAY ATTENUATION
+6 6 TIME DOMAIN REFLECTOMETRY
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3029.table b/definitions/bufr/tables/0/wmo/41/codetables/3029.table
new file mode 100644
index 000000000..374df7c0e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3029.table
@@ -0,0 +1,3 @@
+0 0 LEFT HAND SIDE
+1 1 RIGHT HAND SIDE
+7 7 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/3030.table b/definitions/bufr/tables/0/wmo/41/codetables/3030.table
new file mode 100644
index 000000000..48033d8f4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/3030.table
@@ -0,0 +1,3 @@
+0 0 TRANSMITTING
+1 1 RECEIVING
+7 7 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/31021.table b/definitions/bufr/tables/0/wmo/41/codetables/31021.table
new file mode 100644
index 000000000..3b4875d89
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/31021.table
@@ -0,0 +1,10 @@
+0 0 RESERVED
+1 1 1-BIT INDICATOR OF QUALITY
+2 2 2-BIT INDICATOR OF QUALITY
+5 5 8-BIT INDICATOR OF QUALITY CONTROL
+6 6 4-BIT INDICATOR OF QUALITY CONTROL CLASS ACCORDING TO GTSPP
+7 7 PERCENTAGE CONFIDENCE
+8 8 0 = NOT SUSPECTED, 1 = SUSPECTED, 2 = RESERVED, 3 = INFORMATION NOT REQUIRED
+9 9 0 = DATA PRESENT, GOOD, COLLOCATED, 1 = DATA AVAILABLE BUT OF DEGRADED QUALITY AND NOT USED, 2 = NO SPATIOTEMPORALLY COLLOCATED DATA AVAILABLE, 3-14 = NOT USED (RESERVED), 15 = MISSING VALUE
+21 21 1-BIT INDICATOR OF CORRECTION
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/31031.table b/definitions/bufr/tables/0/wmo/41/codetables/31031.table
new file mode 100644
index 000000000..d268b380c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/31031.table
@@ -0,0 +1 @@
+1 1 0 = DATA PRESENT, 1 = DATA NOT PRESENT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33002.table b/definitions/bufr/tables/0/wmo/41/codetables/33002.table
new file mode 100644
index 000000000..4177c0577
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33002.table
@@ -0,0 +1,4 @@
+0 0 DATA NOT SUSPECT
+1 1 DATA SUSPECT
+2 2 RESERVED
+3 3 QUALITY INFORMATION NOT GIVEN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33003.table b/definitions/bufr/tables/0/wmo/41/codetables/33003.table
new file mode 100644
index 000000000..7577129b0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33003.table
@@ -0,0 +1,5 @@
+0 0 DATA NOT SUSPECT
+1 1 DATA SLIGHTLY SUSPECT
+2 2 DATA HIGHLY SUSPECT
+3 3 DATA CONSIDERED UNFIT FOR USE
+7 7 QUALITY INFORMATION NOT GIVEN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33005.table b/definitions/bufr/tables/0/wmo/41/codetables/33005.table
new file mode 100644
index 000000000..8d7569ad2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33005.table
@@ -0,0 +1,23 @@
+1 1 NO AUTOMATED METEOROLOGICAL DATA CHECKS PERFORMED
+2 2 PRESSURE DATA SUSPECT
+3 3 WIND DATA SUSPECT
+4 4 AIR TEMPERATURE DATA SUSPECT
+5 5 WET-BULB TEMPERATURE DATA SUSPECT
+6 6 HUMIDITY DATA SUSPECT
+7 7 GROUND TEMPERATURE DATA SUSPECT
+8 8 SOIL TEMPERATURE (DEPTH 1) DATA SUSPECT
+9 9 SOIL TEMPERATURE (DEPTH 2) DATA SUSPECT
+10 10 SOIL TEMPERATURE (DEPTH 3) DATA SUSPECT
+11 11 SOIL TEMPERATURE (DEPTH 4) DATA SUSPECT
+12 12 SOIL TEMPERATURE (DEPTH 5) DATA SUSPECT
+13 13 CLOUD DATA SUSPECT
+14 14 VISIBILITY DATA SUSPECT
+15 15 PRESENT WEATHER DATA SUSPECT
+16 16 LIGHTNING DATA SUSPECT
+17 17 ICE DEPOSIT DATA SUSPECT
+18 18 PRECIPITATION DATA SUSPECT
+19 19 STATE OF GROUND DATA SUSPECT
+20 20 SNOW DATA SUSPECT
+21 21 WATER CONTENT DATA SUSPECT
+22 22 EVAPORATION/EVAPOTRANSPIRATION DATA SUSPECT
+23 23 SUNSHINE DATA SUSPECT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33006.table b/definitions/bufr/tables/0/wmo/41/codetables/33006.table
new file mode 100644
index 000000000..0ea44a50b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33006.table
@@ -0,0 +1,5 @@
+0 0 SELF-CHECK OK
+1 1 AT LEAST ONE WARNING ACTIVE, NO ALARMS
+2 2 AT LEAST ONE ALARM ACTIVE
+3 3 SENSOR FAILURE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33015.table b/definitions/bufr/tables/0/wmo/41/codetables/33015.table
new file mode 100644
index 000000000..f585808d0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33015.table
@@ -0,0 +1,16 @@
+0 0 PASSED ALL CHECKS
+1 1 MISSING DATA CHECK
+2 2 DESCENDING/REASCENDING BALLOON CHECK
+3 3 DATA PLAUSIBILITY CHECK (ABOVE LIMITS)
+4 4 DATA PLAUSIBILITY CHECK (BELOW LIMITS)
+5 5 SUPERADIABATIC LAPSE RATE CHECK
+6 6 LIMITING ANGLES CHECK
+7 7 ASCENSION RATE CHECK
+8 8 EXCESSIVE CHANGE FROM PREVIOUS FLIGHT
+9 9 BALLOON OVERHEAD CHECK
+10 10 WIND SPEED CHECK
+11 11 WIND DIRECTION CHECK
+12 12 DEPENDENCY CHECK
+13 13 DATA VALID BUT MODIFIED
+14 14 DATA OUTLIER CHECK
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33020.table b/definitions/bufr/tables/0/wmo/41/codetables/33020.table
new file mode 100644
index 000000000..ba7a4d4ea
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33020.table
@@ -0,0 +1,8 @@
+0 0 GOOD
+1 1 INCONSISTENT
+2 2 DOUBTFUL
+3 3 WRONG
+4 4 NOT CHECKED
+5 5 HAS BEEN CHANGED
+6 6 ESTIMATED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33021.table b/definitions/bufr/tables/0/wmo/41/codetables/33021.table
new file mode 100644
index 000000000..e3e67ae8c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33021.table
@@ -0,0 +1,4 @@
+0 0 WITHIN LIMITS
+1 1 OUTSIDE LIMITS
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33022.table b/definitions/bufr/tables/0/wmo/41/codetables/33022.table
new file mode 100644
index 000000000..50ef65feb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33022.table
@@ -0,0 +1,4 @@
+0 0 GOOD (SEVERAL IDENTICAL REPORTS HAVE BEEN RECEIVED)
+1 1 DUBIOUS (NO IDENTICAL REPORTS HAVE BEEN RECEIVED)
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33023.table b/definitions/bufr/tables/0/wmo/41/codetables/33023.table
new file mode 100644
index 000000000..896c816a9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33023.table
@@ -0,0 +1,4 @@
+0 0 RELIABLE (LOCATION WAS MADE OVER TWO SATELLITE PASSES)
+1 1 LATEST KNOWN (NO LOCATION OVER THE CORRESPONDING PASS)
+2 2 DUBIOUS (LOCATION MADE OVER ONE PASS ONLY; A SECOND SOLUTION IS POSSIBLE IN 5 PER CENT OF THE CASES)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33024.table b/definitions/bufr/tables/0/wmo/41/codetables/33024.table
new file mode 100644
index 000000000..771e04b81
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33024.table
@@ -0,0 +1,10 @@
+0 0 RESERVED
+1 1 EXCELLENT - WITHIN 3 METRES
+2 2 GOOD - WITHIN 10 METRES
+3 3 FAIR - WITHIN 20 METRES
+4 4 POOR - MORE THAN 20 METRES
+5 5 EXCELLENT - WITHIN 10 FEET
+6 6 GOOD - WITHIN 30 FEET
+7 7 FAIR - WITHIN 60 FEET
+8 8 POOR - MORE THAN 60 FEET
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33025.table b/definitions/bufr/tables/0/wmo/41/codetables/33025.table
new file mode 100644
index 000000000..4da695aa0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33025.table
@@ -0,0 +1,5 @@
+0 0 TIME INTERPOLATED, LATITUDE AND LONGITUDE REPORTED
+1 1 TIME REPORTED, LATITUDE AND LONGITUDE INTERPOLATED
+2 2 TIME, LATITUDE, AND LONGITUDE INTERPOLATED
+3 3 TIME, LATITUDE, AND LONGITUDE REPORTED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33026.table b/definitions/bufr/tables/0/wmo/41/codetables/33026.table
new file mode 100644
index 000000000..08c61254b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33026.table
@@ -0,0 +1,17 @@
+0 0 NORMAL OPERATIONS - MEASUREMENT MODE
+1 1 NORMAL OPERATIONS - NON-MEASUREMENT MODE
+2 2 SMALL RH
+3 3 HUMIDITY ELEMENT IS WET
+4 4 HUMIDITY ELEMENT CONTAMINATED
+5 5 HEATER FAIL
+6 6 HEATER FAIL AND WET/CONTAMINATED HUMIDITY ELEMENT
+7 7 AT LEAST ONE OF THE INPUT PARAMETERS USED IN THE CALCULATION OF MIXING RATIO IS INVALID
+8 8 NUMERIC ERROR
+9 9 SENSOR NOT INSTALLED
+10 10 CALCULATED RH > 100%
+11 11 INPUT LASER POWER TOO LOW
+12 12 PROBE WV TEMPERATURE OUT OF RANGE
+13 13 PROBE WV PRESSURE OUT OF RANGE
+14 14 SPECTRAL LINE OUT OF RANGE
+15 15 NO LASER OUTPUT
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33027.table b/definitions/bufr/tables/0/wmo/41/codetables/33027.table
new file mode 100644
index 000000000..c563af46f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33027.table
@@ -0,0 +1,6 @@
+0 0 RADIUS >= 1500 M
+1 1 500 M =< RADIUS <1500 M
+2 2 250 M =< RADIUS < 500 M
+3 3 RADIUS < 250 M
+4 4 =< 100 M
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33028.table b/definitions/bufr/tables/0/wmo/41/codetables/33028.table
new file mode 100644
index 000000000..688dec0e4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33028.table
@@ -0,0 +1,7 @@
+1 1 NOMINAL
+2 2 DEGRADED BY SW ERROR; ANY ERROR REPORTED BY THE ALGORITHMS
+3 3 DEGRADED BY INSTRUMENT ERROR
+4 4 DEGRADED BY CORRUPTED /MISSING ADF
+5 5 GENERAL DEGRADATION
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33030.table b/definitions/bufr/tables/0/wmo/41/codetables/33030.table
new file mode 100644
index 000000000..c9e36c0f4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33030.table
@@ -0,0 +1,7 @@
+1 1 DO NOT USE SCAN FOR PRODUCT GENERATION
+2 2 TIME SEQUENCE ERROR DETECTED WITH THIS SCAN
+3 3 DATA GAP PRECEDES THIS SCAN
+4 4 NO CALIBRATION
+5 5 NO EARTH LOCATION
+6 6 FIRST GOOD TIME FOLLOWING A CLOCK UPDATE
+7 7 INSTRUMENT STATUS CHANGED WITH THIS SCAN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33031.table b/definitions/bufr/tables/0/wmo/41/codetables/33031.table
new file mode 100644
index 000000000..c11fd4a09
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33031.table
@@ -0,0 +1,21 @@
+1 1 TIME FIELD IS BAD BUT CAN PROBABLY BE INFERRED FROM THE PREVIOUS GOOD TIME
+2 2 TIME FIELD IS BAD AND CANNOT BE INFERRED FROM THE PREVIOUS GOOD TIME
+3 3 THIS RECORD STARTS A SEQUENCE THAT IS INCONSISTENT WITH PREVIOUS TIMES (I.E. THERE IS A TIME DISCONTINUITY). THIS MAY OR MAY NOT BE ASSOCIATED WITH A SPACECRAFT CLOCK UPDATE (SEE SCAN LINE STATUS FLAGS FOR ATOVS)
+4 4 START OF A SEQUENCE THAT APPARENTLY REPEATS SCAN TIMES THAT HAVE BEEN PREVIOUSLY ACCEPTED
+5 5 SCAN LINE WAS NOT CALIBRATED BECAUSE OF BAD TIME
+6 6 SCAN LINE WAS CALIBRATED USING FEWER THAN THE PREFERRED NUMBER OF SCAN LINES BECAUSE OF PROXIMITY TO START OR END OF DATA OR TO A DATA GAP
+7 7 SCAN LINE WAS NOT CALIBRATED BECAUSE OF BAD OR INSUFFICIENT PRT DATA
+8 8 SCAN LINE WAS CALIBRATED BUT WITH MARGINAL PRT DATA
+9 9 SOME UNCALIBRATED CHANNELS ON THIS SCAN
+10 10 UNCALIBRATED DUE TO INSTRUMENT MODE
+11 11 QUESTIONABLE CALIBRATION BECAUSE OF ANTENNA POSITION ERROR OF SPACE VIEW
+12 12 QUESTIONABLE CALIBRATION BECAUSE OF ANTENNA POSITION ERROR OF BLACK BODY
+13 13 NOT EARTH LOCATED BECAUSE OF BAD TIME
+14 14 EARTH LOCATION QUESTIONABLE BECAUSE OF QUESTIONABLE TIME CODE (SEE TIME PROBLEM CODE BITS)
+15 15 EARTH LOCATION QUESTIONABLE - ONLY MARGINAL AGREEMENT WITH REASONABLENESS CHECK
+16 16 EARTH LOCATION QUESTIONABLE - FAILS REASONABLENESS CHECK
+17 17 EARTH LOCATION QUESTIONABLE BECAUSE OF ANTENNA POSITION CHECK
+18 18 SCAN LINE CALIBRATION COLD BLACK BODY
+19 19 SCAN LINE CALIBRATION WARM BLACK BODY
+20 20 SCAN LINE CALIBRATION SPACE VIEW
+21 21 EARTH VIEW
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33032.table b/definitions/bufr/tables/0/wmo/41/codetables/33032.table
new file mode 100644
index 000000000..33307f50a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33032.table
@@ -0,0 +1,7 @@
+1 1 NO GOOD BLACKBODY COUNTS FOR SCAN LINE
+2 2 NO GOOD SPACE VIEW COUNTS FOR THIS LINE
+3 3 NO GOOD PRTS FOR THIS LINE
+4 4 SOME BAD BLACKBODY VIEW COUNTS FOR THIS LINE
+5 5 SOME BAD SPACE VIEW COUNTS FOR THIS LINE
+6 6 SOME BAD PRT TEMPS ON THIS LINE
+7 7 QUALITY FOR THIS SCAN IS REDUCED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33033.table b/definitions/bufr/tables/0/wmo/41/codetables/33033.table
new file mode 100644
index 000000000..6fd320510
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33033.table
@@ -0,0 +1,3 @@
+1 1 SET IF SECONDARY CALIBRATION USED
+22 22 SET IF ALL THE CHANNELS ARE MISSING
+23 23 SUSPECT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33035.table b/definitions/bufr/tables/0/wmo/41/codetables/33035.table
new file mode 100644
index 000000000..01996bae4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33035.table
@@ -0,0 +1,10 @@
+0 0 AUTOMATIC QUALITY CONTROL PASSED AND NOT MANUALLY CHECKED
+1 1 AUTOMATIC QUALITY CONTROL PASSED AND MANUALLY CHECKED AND PASSED
+2 2 AUTOMATIC QUALITY CONTROL PASSED AND MANUALLY CHECKED AND DELETED
+3 3 AUTOMATIC QUALITY CONTROL FAILED AND MANUALLY NOT CHECKED
+4 4 AUTOMATIC QUALITY CONTROL FAILED AND MANUALLY CHECKED AND FAILED
+5 5 AUTOMATIC QUALITY CONTROL FAILED AND MANUALLY CHECKED AND RE-INSERTED
+6 6 AUTOMATIC QUALITY CONTROL FLAGGED DATA AS QUESTIONABLE AND NOT MANUALLY CHECKED
+7 7 AUTOMATIC QUALITY CONTROL FLAGGED DATA AS QUESTIONABLE AND MANUALLY CHECKED AND FAILED
+8 8 MANUALLY CHECKED AND FAILED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33037.table b/definitions/bufr/tables/0/wmo/41/codetables/33037.table
new file mode 100644
index 000000000..9f26652a5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33037.table
@@ -0,0 +1,19 @@
+1 1 U DEPARTURE FROM GUESS
+2 2 V DEPARTURE FROM GUESS
+3 3 U AND V DEPARTURE FROM GUESS
+4 4 U ACCELERATION
+5 5 V ACCELERATION
+6 6 U AND V ACCELERATION
+7 7 POSSIBLE LAND FEATURE
+8 8 U ACCELERATION AND POSSIBLE LAND FEATURE
+9 9 V ACCELERATION AND POSSIBLE LAND FEATURE
+10 10 U AND V ACCELERATION AND POSSIBLE LAND FEATURE
+11 11 BAD WIND GUESS
+12 12 CORRELATION FAILURE
+13 13 SEARCH BOX OFF EDGE OF AREA
+14 14 TARGET BOX OFF EDGE OF AREA
+15 15 PIXEL BRIGHTNESS OUT OF BOUNDS (NOISY LINE)
+16 16 TARGET OUTSIDE OF LATITUDE/LONGITUDE BOX
+17 17 TARGET OUTSIDE OF PRESSURE MINIMUM/MAXIMUM
+18 18 AUTOEDITOR FLAGGED SLOW VECTOR
+19 19 AUTOEDITOR FLAGGED VECTORS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33038.table b/definitions/bufr/tables/0/wmo/41/codetables/33038.table
new file mode 100644
index 000000000..3dc1192e8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33038.table
@@ -0,0 +1,9 @@
+1 1 TOTAL ZENITH DELAY QUALITY IS CONSIDERED POOR
+2 2 GALILEO SATELLITES USED
+3 3 GLONASS SATELLITES USED
+4 4 GPS SATELLITES USED
+5 5 METEOROLOGICAL DATA APPLIED
+6 6 ATMOSPHERIC LOADING CORRECTION APPLIED
+7 7 OCEAN TIDE LOADING APPLIED
+8 8 CLIMATE QUALITY DATA PROCESSING
+9 9 NEAR-REAL TIME DATA PROCESSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33039.table b/definitions/bufr/tables/0/wmo/41/codetables/33039.table
new file mode 100644
index 000000000..c34540914
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33039.table
@@ -0,0 +1,12 @@
+1 1 NON-NOMINAL QUALITY
+2 2 OFFLINE PRODUCT
+3 3 ASCENDING OCCULTATION FLAG
+4 4 EXCESS PHASE PROCESSING NON-NOMINAL
+5 5 BENDING ANGLE PROCESSING NON-NOMINAL
+6 6 REFRACTIVITY PROCESSING NON-NOMINAL
+7 7 METEOROLOGICAL PROCESSING NON-NOMINAL
+8 8 OPEN LOOP DATA INCLUDED
+9 9 SURFACE REFLECTIONS DETECTED
+10 10 L2C GNSS SIGNALS USED
+14 14 BACKGROUND PROFILE NON-NOMINAL
+15 15 BACKGROUND (I.E. NOT RETRIEVED) PROFILE PRESENT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33041.table b/definitions/bufr/tables/0/wmo/41/codetables/33041.table
new file mode 100644
index 000000000..8bbdba90a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33041.table
@@ -0,0 +1,4 @@
+0 0 THE FOLLOWING VALUE IS THE TRUE VALUE
+1 1 THE FOLLOWING VALUE IS HIGHER THAN THE TRUE VALUE (THE MEASUREMENT HIT THE LOWER LIMIT OF THE INSTRUMENT)
+2 2 THE FOLLOWING VALUE IS LOWER THAN THE TRUE VALUE (THE MEASUREMENT HIT THE HIGHER LIMIT OF THE INSTRUMENT)
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33042.table b/definitions/bufr/tables/0/wmo/41/codetables/33042.table
new file mode 100644
index 000000000..b75447a4a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33042.table
@@ -0,0 +1,5 @@
+0 0 EXCLUSIVE LOWER LIMIT (>)
+1 1 INCLUSIVE LOWER LIMIT (>=)
+2 2 EXCLUSIVE UPPER LIMIT (<)
+3 3 INCLUSIVE UPPER LIMIT (=<)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33043.table b/definitions/bufr/tables/0/wmo/41/codetables/33043.table
new file mode 100644
index 000000000..398d9ab2c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33043.table
@@ -0,0 +1,4 @@
+1 1 SEA MDS. NADIR ONLY SST RETRIEVAL USED 3.7 MICRON CHANNEL. LAND MDS RESERVED
+2 2 SEA MDS. DUAL VIEW SST RETRIEVAL USED 3.7 MICRON CHANNEL. LAND MDS RESERVED
+3 3 NADIR VIEW CONTAINS DAY TIME DATA
+4 4 FORWARD VIEW CONTAINS DAY TIME DATA
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33044.table b/definitions/bufr/tables/0/wmo/41/codetables/33044.table
new file mode 100644
index 000000000..01746c795
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33044.table
@@ -0,0 +1,14 @@
+1 1 INPUT DATA MEAN OUTSIDE NOMINAL RANGE FLAG
+2 2 INPUT DATA STANDARD DEVIATION OUTSIDE NOMINAL RANGE FLAG
+3 3 NUMBER OF INPUT DATA GAPS > THRESHOLD VALUE
+4 4 PERCENTAGE OF MISSING LINES > THRESHOLD VALUE
+5 5 DOPPLER CENTROID UNCERTAIN. CONFIDENCE MEASURE < SPECIFIC VALUE
+6 6 DOPPLER AMBIGUITY ESTIMATE UNCERTAIN. CONFIDENCE MEASURE < SPECIFIC VALUE
+7 7 OUTPUT DATA MEAN OUTSIDE NOMINAL RANGE FLAG
+8 8 OUTPUT DATA STANDARD DEVIATION OUTSIDE NOMINAL RANGE FLAG
+9 9 CHIRP RECONSTRUCTION FAILED OR IS OF LOW QUALITY FLAG
+10 10 DATA SET MISSING
+11 11 INVALID DOWNLINK PARAMETERS
+12 12 AZIMUTH CUT-OFF ITERATION COUNT. THE AZIMUTH CUT-OFF FIT DID NOT CONVERGE WITHIN A MINIMUM NUMBER OF ITERATIONS
+13 13 AZIMUTH CUT-OFF FIT DID NOT CONVERGE WITHIN A MINIMUM NUMBER OF ITERATIONS
+14 14 PHASE INFORMATION CONFIDENCE MEASURE. THE IMAGINARY SPECTRAL PEAK IS LESS THAN A MINIMUM THRESHOLD, OR THE ZERO LAG SHIFT IS GREATER THAN A MINIMUM THRESHOLD
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33047.table b/definitions/bufr/tables/0/wmo/41/codetables/33047.table
new file mode 100644
index 000000000..f69b56e18
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33047.table
@@ -0,0 +1,27 @@
+1 1 ERROR DETECTED AND ATTEMPTS TO RECOVER MADE
+2 2 ANOMALY IN ON-BOARD DATA HANDLING (OBDH) VALUE DETECTED
+3 3 ANOMALY IN ULTRA STABLE OSCILLATOR PROCESSING (USOP) VALUE DETECTED
+4 4 ERRORS DETECTED BY ON-BOARD COMPUTER
+5 5 AUTOMATIC GAIN CONTROL (AGC) OUT OF RANGE
+6 6 RECEPTION (RX) DELAY FAULT. RX DISTANCE OUT OF RANGE
+7 7 WAVE FORM SAMPLES FAULT IDENTIFIER. ERROR
+8 8 S BAND ANOMALY/ERROR DETECTED
+12 12 BRIGHTNESS TEMPERATURE (CHANNEL 1) OUT OF RANGE
+13 13 BRIGHTNESS TEMPERATURE (CHANNEL 2) OUT OF RANGE
+14 14 RESERVED
+15 15 KU BAND OCEAN RETRACKING ERROR
+16 16 S BAND OCEAN RETRACKING ERROR
+17 17 KU BAND ICE 1 RETRACKING ERROR
+18 18 S BAND ICE 1 RETRACKING ERROR
+19 19 KU BAND ICE 2 RETRACKING ERROR
+20 20 S BAND ICE 2 RETRACKING ERROR
+21 21 KU BAND SEA ICE RETRACKING ERROR
+22 22 ARITHMETIC FAULT ERROR
+23 23 METEO DATA STATE. NO MAP
+24 24 METEO DATA STATE. 1 MAP
+25 25 METEO DATA STATE. 2 MAPS DEGRADED
+26 26 METEO DATA STATE. 2 MAPS NOMINAL
+27 27 ORBIT PROPAGATOR STATUS FOR PROPAGATION MODE, SEVERAL ERRORS
+28 28 ORBIT PROPAGATOR STATUS FOR PROPAGATION MODE, WARNING DETECTED
+29 29 ORBIT PROPAGATOR STATUS FOR INITIALIZATION MODE, SEVERAL ERRORS
+30 30 ORBIT PROPAGATOR STATUS FOR INITIALIZATION MODE, WARNING DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33048.table b/definitions/bufr/tables/0/wmo/41/codetables/33048.table
new file mode 100644
index 000000000..312ba4071
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33048.table
@@ -0,0 +1,4 @@
+0 0 INVERSION SUCCESSFUL
+1 1 INVERSION NOT SUCCESSFUL
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33049.table b/definitions/bufr/tables/0/wmo/41/codetables/33049.table
new file mode 100644
index 000000000..bdde0619b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33049.table
@@ -0,0 +1,4 @@
+0 0 EXTERNAL WIND DIRECTION USED DURING INVERSION
+1 1 EXTERNAL WIND DIRECTION NOT USED DURING INVERSION
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33050.table b/definitions/bufr/tables/0/wmo/41/codetables/33050.table
new file mode 100644
index 000000000..ee7bb6deb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33050.table
@@ -0,0 +1,9 @@
+0 0 UNQUALIFIED
+1 1 CORRECT VALUE (ALL CHECKS PASSED)
+2 2 PROBABLY GOOD BUT VALUE INCONSISTENT WITH STATISTICS (DIFFER FROM CLIMATOLOGY)
+3 3 PROBABLY BAD (SPIKE, GRADIENT, ETC., IF OTHER TESTS PASSED)
+4 4 BAD VALUE, IMPOSSIBLE VALUE (OUT OF SCALE, VERTICAL INSTABILITY, CONSTANT PROFILE)
+5 5 VALUE MODIFIED DURING QUALITY CONTROL
+8 8 INTERPOLATED VALUE
+9 9 GOOD FOR OPERATIONAL USE; CAUTION; CHECK LITERATURE FOR OTHER USES
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33054.table b/definitions/bufr/tables/0/wmo/41/codetables/33054.table
new file mode 100644
index 000000000..d9ca13cf9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33054.table
@@ -0,0 +1,5 @@
+0 0 PROFILE VALUES GOOD
+1 1 PROFILE VALUES SUSPECTED
+2 2 RESERVED
+3 3 PROFILE VALUES NOT GOOD
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33055.table b/definitions/bufr/tables/0/wmo/41/codetables/33055.table
new file mode 100644
index 000000000..b757af0bb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33055.table
@@ -0,0 +1,13 @@
+11 11 OCEAN SIGMA-0 IS NOT AVAILABLE FOR WIND RETRIEVALS
+12 12 BACKGROUND WIND IS NOT AVAILABLE
+13 13 BACKGROUND MODEL DETECT LAND
+14 14 BACKGROUND MODEL DETECT ICE
+15 15 SIGMA-0 IS NOT LAND/ICE FREE
+16 16 SIGMA-0 LAND CONTAMINATION
+17 17 SIGMA-0 ICE CONTAMINATION
+18 18 NOT ENOUGH AZIMUTHAL DIVERSITY
+19 19 INVERSION IS NOT DONE
+20 20 OVERALL WVC FLAG
+21 21 INVERSION IS ATTEMPTED (FLAG IS SET)
+22 22 RAINFLAG IS ATTEMPTED (FLAG IS SET)
+23 23 RAIN IS DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33056.table b/definitions/bufr/tables/0/wmo/41/codetables/33056.table
new file mode 100644
index 000000000..ce44ca922
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33056.table
@@ -0,0 +1,13 @@
+8 8 ASCENDING
+9 9 VV POLARISATION
+10 10 FORE OF SPACECRAFT
+11 11 LAND
+12 12 POOR SIGMA-0 (SUMMARY)
+13 13 INVALID SIGMA-0 (SUMMARY)
+14 14 POOR BT
+15 15 INVALID BT
+16 16 LAND-SEA BOUNDARY
+17 17 NEGATIVE SIGMA-0
+21 21 ICE
+22 22 MISSING DATA AT A GIVEN LATITUDE-LONGITUDE FOR SEA-ICE FLAGGING PROCESS FOR 2 OR MORE DAYS
+23 23 ICE-OCEAN CONTAMINATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33060.table b/definitions/bufr/tables/0/wmo/41/codetables/33060.table
new file mode 100644
index 000000000..741430292
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33060.table
@@ -0,0 +1,4 @@
+0 0 GOOD
+1 1 BAD
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33066.table b/definitions/bufr/tables/0/wmo/41/codetables/33066.table
new file mode 100644
index 000000000..a80e6ab9a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33066.table
@@ -0,0 +1,4 @@
+20 20 GOOD WIND, BUT AN ALTERNATIVE CHANNEL USED FOR FEATURE TRACKING
+21 21 GOOD WIND, BUT AN ALTERNATIVE SET OF CHANNELS USED FOR THE DETERMINATION OF CLOUD-TOP HEIGHT/AMV HEIGHT ASSIGNMENT
+22 22 CORRELATION SURFACE CONSTRAINT FAILS
+23 23 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33070.table b/definitions/bufr/tables/0/wmo/41/codetables/33070.table
new file mode 100644
index 000000000..8a0467b65
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33070.table
@@ -0,0 +1,14 @@
+0 0 GOOD RETRIEVAL
+1 1 BAD AEROSOL INFORMATION FLAG OR NOAA-16 RADIANCE ANOMALY
+2 2 SOLAR ZENITH ANGLE GREATER THAN 84 DEGREES
+3 3 380 NM RESIDUE GREATER THAN LIMIT
+4 4 OZONE INCONSISTENCY
+5 5 DIFFERENCE BETWEEN PROFILE OZONE AND STEP 3 TOTAL OZONE EXCEEDS THRESHOLD (SET TO 25 DU)
+6 6 STEP 1 OZONE ITERATION DID NOT CONVERGE
+7 7 ANY CHANNEL RESIDUE GREATER THAN 16 OR BAD RADIANCE
+8 8 INSUFFICIENT PIXELS - NOT PROCESSED
+9 9 FIRST GUESS GOOD - OZONE FORECAST DATA USED
+10 10 HIGH CLOUD IN PIXEL - NOT PROCESSED
+11 11 SUCCESSFUL OZONE RETRIEVAL
+12 12 UNSUCCESSFUL OZONE RETRIEVAL
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33071.table b/definitions/bufr/tables/0/wmo/41/codetables/33071.table
new file mode 100644
index 000000000..262a46c89
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33071.table
@@ -0,0 +1,10 @@
+0 0 GOOD RETRIEVAL
+1 1 SOLAR ZENITH ANGLE GREATER THAN 84 DEGREES
+2 2 DIFFERENCE BETWEEN STEP 3 AND PROFILE TOTAL OZONE GREATER THAN LIMIT (25 DU)
+3 3 AVERAGE FINAL RESIDUE FOR WAVELENGTHS USED IN RETRIEVAL GREATER THAN THRESHOLD
+4 4 FINAL RESIDUE GREATER THAN 3 TIMES A PRIORI ERROR
+5 5 DIFFERENCE BETWEEN RETRIEVED AND A PRIORI GREATER THAN 3 TIMES A PRIORI ERROR
+6 6 NON-CONVERGENT SOLUTION
+7 7 UPPER LEVEL PROFILE ANOMALY OR STRAY LIGHT ANOMALY
+8 8 INITIAL RESIDUE GREATER THAN 18.0 N-VALUE UNITS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33072.table b/definitions/bufr/tables/0/wmo/41/codetables/33072.table
new file mode 100644
index 000000000..fcc7f0972
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33072.table
@@ -0,0 +1,18 @@
+0 0 GOOD RETRIEVAL
+1 1 REFLECTIVITY OUT OF RANGE
+2 2 LARGER PIXELS (NUMBER OF CROSS-TRACK PIXELS LESS THAN 32) OR BACKWARD SCANS ERROR
+3 3 SOLAR ZENITH ANGLE GREATER THAN 88 DEGREES
+4 4 LATITUDE/LONGITUDE OUT OF RANGE
+5 5 VIEWING ZENITH ANGLE OR SOLAR ZENITH ANGLE OUT OF RANGE
+6 6 STEP-ONE PROCESS FAILED IN GENERAL
+7 7 FIRST GUESS OZONE OUT OF RANGE
+8 8 TOO MANY ITERATIONS (EXCEED 8)
+9 9 STEP-ONE RESIDUE CALCULATION FAILED
+10 10 STEP-TWO PROCESS FAILED IN GENERAL
+11 11 FIRST GUESS OZONE PROFILE OUT OF RANGE
+12 12 STEP-TWO OZONE VALUE OUT OF RANGE
+13 13 STEP-TWO RESIDUE CALCULATION FAILED
+14 14 STEP-THREE PROCESS FAILED IN GENERAL
+15 15 POLARIZATION CORRECTION ACCURACY ALERT
+16 16 RADIANCE OR IRRADIANCE LESS OR EQUAL TO ZERO
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33075.table b/definitions/bufr/tables/0/wmo/41/codetables/33075.table
new file mode 100644
index 000000000..23edae628
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33075.table
@@ -0,0 +1,5 @@
+1 1 GAP IN RAW DATA RECORD (RDR) DATA DETECTED (I.E., MISSING SCAN(S) PRECEDING THE CURRENT SCAN)
+2 2 RECORDED TIME IS NOT IN SEQUENCE (I.E., THE SCAN START TIME IS OUT OF SEQUENCE)
+3 3 LAMBDA MONITORED CALCULATION CANNOT BE UPDATED
+4 4 THE MEASURED TEMPERATURES OF ANY INSTRUMENT COMPONENTS (E.G., BEAM-SPLITTER, SCAN MIRROR, SCAN BAFFLE) ARE OUTSIDE THE ALLOWABLE RANGES
+5 5 AT LEAST ONE OF THE MONITORED INSTRUMENT TEMPERATURES HAS DRIFTED MORE THAN A SPECIFIED TOLERANCE VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33076.table b/definitions/bufr/tables/0/wmo/41/codetables/33076.table
new file mode 100644
index 000000000..7100c4a0d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33076.table
@@ -0,0 +1,2 @@
+1 1 LUNAR INTRUSION ON FIRST DEEP SPACE VIEW
+2 2 LUNAR INTRUSION ON SECOND DEEP SPACE VIEW
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33077.table b/definitions/bufr/tables/0/wmo/41/codetables/33077.table
new file mode 100644
index 000000000..769be02f2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33077.table
@@ -0,0 +1,12 @@
+1 1 DEGRADED SDR QUALITY
+2 2 INVALID SDR QUALITY
+3 3 INVALID SDR GEOLOCATION INFORMATION
+4 4 DEGRADED RADIOMETRIC CALIBRATION
+5 5 INVALID RADIOMETRIC CALIBRATION
+6 6 DEGRADED SPECTRAL CALIBRATION
+7 7 INVALID SPECTRAL CALIBRATION
+8 8 FRINGE COUNT ERROR DETECTED AND CORRECTED
+9 9 DAY/NIGHT INDICATOR
+10 10 INVALID RDR DATA
+11 11 SIGNIFICANT FRINGE COUNT ERROR DETECTED
+12 12 BIT TRIM FAILED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33078.table b/definitions/bufr/tables/0/wmo/41/codetables/33078.table
new file mode 100644
index 000000000..f3a218067
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33078.table
@@ -0,0 +1,5 @@
+0 0 NOMINAL - ALTITUDE AND EPHEMERIS DATA AVAILABLE
+1 1 MISSING AT MOST A SMALL GAP OF ALTITUDE AND EPHEMERIS DATA
+2 2 MISSING MORE THAN A SMALL GAP OF ALTITUDE AND EPHEMERIS DATA, BUT NO MORE THAN A GRANULE BOUNDARY
+3 3 MISSING MORE THAN A GRANULE BOUNDARY OF ALTITUDE AND EPHEMERIS DATA
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33079.table b/definitions/bufr/tables/0/wmo/41/codetables/33079.table
new file mode 100644
index 000000000..08751431e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33079.table
@@ -0,0 +1,10 @@
+6 6 THE NO. 1-NO. 7 HEALTH CHECKS FAILED
+7 7 THE NO. 8-NO. 15 HEALTH CHECKS FAILED
+8 8 THE NO. 16-NO. 23 HEALTH CHECKS FAILED
+9 9 THE NO. 24-NO. 31 HEALTH CHECKS FAILED
+10 10 THE NO. 32-NO. 39 HEALTH CHECKS FAILED
+11 11 THE NO. 40-NO. 47 HEALTH CHECKS FAILED
+12 12 THE NO. 48-NO. 55 HEALTH CHECKS FAILED
+13 13 THE NO. 56-NO. 63 HEALTH CHECKS FAILED
+14 14 THE NO. 64-NO. 70 HEALTH CHECKS FAILED
+15 15 QUADRATIC CORRECTION APPLIED TO THE RADIOMETRIC TRANSFER FUNCTION FOR NON-LINEARITY CORRECTION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33080.table b/definitions/bufr/tables/0/wmo/41/codetables/33080.table
new file mode 100644
index 000000000..a39dd47ea
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33080.table
@@ -0,0 +1,13 @@
+7 7 DIVIDE-BY-ZERO CONDITION OR COMPUTATION LOOP FAILED TO CONVERGE IN THE K/KA AND V (KAV) BAND PRT
+8 8 DIVIDE-BY-ZERO CONDITION OR COMPUTATION LOOP FAILED TO CONVERGE IN THE WG BAND PRT
+9 9 DIVIDE-BY-ZERO CONDITION OR COMPUTATION LOOP FAILED TO CONVERGE IN THE K/KA, V, W, G BAND RECEIVER SHELF PRT K TEMPERATURE COMPUTATION
+10 10 OUT OF RANGE CONDITION FOR THE K/KA AND V BAND PRT
+11 11 OUT OF RANGE CONDITION FOR THE WG BAND PRT
+12 12 KAV PRT TEMPERATURE INCONSISTENCY
+13 13 WG PRT TEMPERATURE INCONSISTENCY
+14 14 TIME SEQUENCE ERROR
+15 15 DATA GAP - MISSING SCAN(S) PRECEDING THE CURRENT SCAN
+16 16 KAV PRT SUFFICIENCY - INSUFFICIENT KAV PRT DATA ARE AVAILABLE
+17 17 WG PRT SUFFICIENCY - INSUFFICIENT WG PRT DATA ARE AVAILABLE
+18 18 SPACE VIEW ANTENNA POSITION ERROR
+19 19 BLACKBODY ANTENNA POSITION ERROR
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33081.table b/definitions/bufr/tables/0/wmo/41/codetables/33081.table
new file mode 100644
index 000000000..f8759e0ef
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33081.table
@@ -0,0 +1,9 @@
+3 3 MOON IN SPACE VIEW
+4 4 GAIN ERROR - THE LOWEST BLACKBODY COUNT IS SMALLER THAN OR EQUAL TO THE HIGHEST SPACE VIEW COUNT IN A SCAN
+5 5 CALIBRATION WITH FEWER THAN PREFERRED SAMPLES
+6 6 SPACE VIEW DATA SUFFICIENCY CHECK - INSUFFICIENT SPACE VIEW SAMPLES ARE AVAILABLE
+7 7 BLACKBODY VIEW DATA SUFFICIENCY CHECK - INSUFFICIENT BLACKBODY VIEW SAMPLES ARE AVAILABLE
+8 8 OUT OF RANGE CONDITION FOR THE SPACE VIEW
+9 9 OUT OF RANGE CONDITION FOR THE BLACKBODY VIEW
+10 10 SPACE VIEW INCONSISTENCY
+11 11 BLACKBODY VIEW INCONSISTENCY
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33082.table b/definitions/bufr/tables/0/wmo/41/codetables/33082.table
new file mode 100644
index 000000000..467157461
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33082.table
@@ -0,0 +1,10 @@
+6 6 WITHIN SOUTH ATLANTIC ANOMALY
+7 7 INVALID INPUT DATA (INDICATES THAT ANY OF THE SPACECRAFT EPHEMERIS OR ATTITUDE DATA ARE INVALID)
+8 8 BAD POINTING (INDICATES THAT THE SENSOR LOS DOES NOT INTERSECT THE GEOID, IS NEAR THE LIMB, HAS INVALID SENSOR ANGLES OR OTHER SIMILAR CONDITION)
+9 9 BAD TERRAIN (INDICATES THAT THE ALGORITHM COULD NOT OBTAIN A VALID TERRAIN VALUE)
+10 10 INVALID SOLAR ANGLES
+11 11 MISSING AT MOST A SMALL GAP OF ALTITUDE AND EPHEMERIS DATA
+12 12 MISSING MORE THAN A SMALL GAP OF ALTITUDE AND EPHEMERIS DATA, BUT NO MORE THAN A GRANULE BOUNDARY
+13 13 MISSING MORE THAN A GRANULE BOUNDARY OF ALTITUDE AND EPHEMERIS DATA
+14 14 THE NUMBER OF ENCODER PULSE VALUES PER DELTA TIME IS NOT AS EXPECTED
+15 15 SOLAR ECLIPSE DURING EARTH VIEW SCAN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33083.table b/definitions/bufr/tables/0/wmo/41/codetables/33083.table
new file mode 100644
index 000000000..ecd8a1abf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33083.table
@@ -0,0 +1,10 @@
+6 6 PIXEL IS AFFECTED BY RADIO-FREQUENCY INTERFERENCE
+7 7 POOR CALIBRATION QUALITY DUE TO BAD SPACE VIEW OFFSETS, OBC VIEW OFFSETS, ETC. OR USE OF A PREVIOUS CALIBRATION VIEW
+8 8 SATURATED PIXEL
+9 9 MISSING DATA -DATA REQUIRED FOR CALIBRATION PROCESSING ARE NOT AVAILABLE FOR PROCESSING
+10 10 CALIBRATED PIXEL RADIANCE OUT OF RANGE
+11 11 CALIBRATED PIXEL REFLECTANCE OR EBBT OUT OF RANGE
+12 12 THE MOON HAS CORRUPTED THE SPACE VIEW
+13 13 SCAN DATA IS NOT PRESENT (NO VALID DATA)
+14 14 QUALITY FOR THIS SCAN-LINE IS REDUCED. THE VALUE IS DETERMINED BY THE COMBINED NUMBER OF STEPS REQUIRED TO FIND A REPLACEMENT FOR THERMISTOR OR CALIBRATION SOURCE DATA
+15 15 BAD DETECTOR
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33084.table b/definitions/bufr/tables/0/wmo/41/codetables/33084.table
new file mode 100644
index 000000000..accb209c5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33084.table
@@ -0,0 +1,10 @@
+6 6 BULK SST OUTSIDE OF VALIDATION RANGE
+7 7 SKIN SST OUTSIDE OF VALIDATION RANGE
+8 8 SENSOR ZENITH ANGLE > 40 DEGREES (PIXEL IS NOT WITHIN 40 DEGREES OF NADIR AND THEREFORE IS NOT OF HIGH QUALITY)
+9 9 DEGRADATION - HORIZONTAL CELL SIZE (HCS) > 1.3 KM (HCS > 1.3 KM, SWATH WIDTH > 1 700 KM, SENSOR ZENITH ANGLE > 50.3 DEGREES)
+10 10 EXCLUSION: NO OCEAN IN PIXEL
+11 11 DEGRADATION: AEROSOL OPTICAL THICKNESS (AOT) > 0.6 (AOT IN HORIZONTAL CELL > 0.6 ON THE SLANT PATH (AOT @550 NM))
+12 12 EXCLUSION: AOT > 1.0 (AOT IN HORIZONTAL CELL > 1.0 ON THE SLANT PATH (AOT @550 NM))
+13 13 SUN GLINT PRESENT IN PIXEL
+14 14 ICE CONCENTRATION THRESHOLD EXCEEDED (SST NOT RETRIEVED DUE TO ICE CONCENTRATION EXCEEDING THRESHOLD IN SYSTEM SPEC)
+15 15 THIN CIRRUS DETECTED IN PIXEL
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33085.table b/definitions/bufr/tables/0/wmo/41/codetables/33085.table
new file mode 100644
index 000000000..844157b20
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33085.table
@@ -0,0 +1,14 @@
+4 4 ANGSTROM EXPONENT IS OUTSIDE OF THE SYSTEM SPECIFICATION RANGE
+5 5 EXCLUDED, ANGSTROM EXPONENT FOR AOT AT 550 NM < 0.15
+6 6 BRIGHT SURFACE IN CELL (IF OVER LAND), OR SHALLOW OR TURBID WATER IN CELL (IF OVER OCEAN)
+7 7 LOW SUN, EXCLUDED, SOLAR ZENITH ANGLE > 80 DEGREES
+8 8 LOW SUN, DEGRADED, 65 DEGREES < SOLAR ZENITH ANGLE =< 80 DEGREES
+9 9 FIRE DETECTED IN CELL
+10 10 SNOW/ICE IN CELL
+11 11 CLOUD SHADOW IN CELL
+12 12 SUN GLINT IN CELL
+13 13 BAD SDR DATA PRESENT IN HORIZONTAL CELL (QUALITY OF AOT/APSP DEGRADED OR AOT/APSP NOT RETRIEVED DUE TO BAD SDR DATA IN HORIZONTAL CELL)
+14 14 CIRRUS CONTAMINATION IN CELL
+15 15 CLOUD ADJACENT TO CELL
+16 16 CLOUD CONTAMINATION IN CELL
+17 17 AOT IS OUTSIDE OF THE SYSTEM SPECIFICATION RANGE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33086.table b/definitions/bufr/tables/0/wmo/41/codetables/33086.table
new file mode 100644
index 000000000..b7cda3212
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33086.table
@@ -0,0 +1,5 @@
+0 0 NOT RETRIEVED
+1 1 EXCLUDED
+2 2 DEGRADED
+3 3 HIGH QUALITY
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33087.table b/definitions/bufr/tables/0/wmo/41/codetables/33087.table
new file mode 100644
index 000000000..f3000e258
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33087.table
@@ -0,0 +1,10 @@
+0 0 LESS THAN OR EQUAL TO 10%
+1 1 GREATER THAN 10% BUT LESS THAN OR EQUAL TO 20%
+2 2 GREATER THAN 20% BUT LESS THAN OR EQUAL TO 30%
+3 3 GREATER THAN 30% BUT LESS THAN OR EQUAL TO 40%
+4 4 GREATER THAN 40% BUT LESS THAN OR EQUAL TO 50%
+5 5 GREATER THAN 50% BUT LESS THAN OR EQUAL TO 60%
+6 6 GREATER THAN 60% BUT LESS THAN OR EQUAL TO 70%
+7 7 GREATER THAN 70% BUT LESS THAN OR EQUAL TO 80%
+8 8 GREATER THAN 80%
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33088.table b/definitions/bufr/tables/0/wmo/41/codetables/33088.table
new file mode 100644
index 000000000..744a5d31b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33088.table
@@ -0,0 +1,12 @@
+6 6 SURFACE REFLECTIVITY OUT OF RANGE
+7 7 RESIDUAL TOO LARGE
+8 8 AEROSOL INDEX LIMIT EXCEEDED
+9 9 SOLAR ECLIPSE PRESENT (ALL OR PART OF THE IFOV IS AFFECTED BY A SOLAR ECLIPSE, UMBRA OR PENUMBRA VIEWING)
+10 10 SUN GLINT PRESENT WITHIN IFOV
+11 11 SNOW OR ICE SURFACE IS WITHIN THE IFOV
+12 12 SOLAR ZENITH ANGLE IN EXCLUDED (NIGHT) CONDITION (SOLAR ZENITH ANGLE >= 88 DEGREES)
+13 13 SOLAR ZENITH ANGLE IN DEGRADED CONDITION (80 DEGREES =< SOLAR ZENITH ANGLE < 88 DEGREES)
+14 14 SO2 INDEX > 6 DU (DEGRADED CONDITION)
+15 15 RESIDUES ARE NOT CONSISTENT (INDICATES WHETHER THE RESIDUES FROM THE 22 WAVELENGTHS ARE CONSISTENT)
+16 16 O3 TRIPLET SELECTION IS NOT CONSISTENT WITHIN RETRIEVAL (OZONE TRIPLET CONSISTENCY)
+17 17 INPUT DATA QUALITY IS NOT GOOD
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33092.table b/definitions/bufr/tables/0/wmo/41/codetables/33092.table
new file mode 100644
index 000000000..2a9557582
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33092.table
@@ -0,0 +1,2 @@
+1 1 ALTIMETER OPERATING
+2 2 MICROWAVE RADIOMETER (MWR) OPERATING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33093.table b/definitions/bufr/tables/0/wmo/41/codetables/33093.table
new file mode 100644
index 000000000..d872dc664
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33093.table
@@ -0,0 +1,19 @@
+1 1 PATH DELAY QUALITY IS CONSIDERED POOR
+2 2 GALILEO SATELLITES USED
+3 3 GLONASS SATELLITES USED
+4 4 GPS SATELLITES USED
+5 5 BEIDOU SATELLITES USED
+9 9 METEOROLOGICAL DATA APPLIED
+10 10 ATMOSPHERIC LOADING CORRECTION APPLIED
+11 11 OCEAN TIDE LOADING APPLIED
+12 12 SECOND ORDER IONOSPHERE CORRECTIONS APPLIED
+13 13 THIRD ORDER IONOSPHERE CORRECTIONS APPLIED
+14 14 PPP SOLUTION
+15 15 GRADIENTS APPLIED TO PATH DELAY
+16 16 MULTIPATH CORRECTIONS APPLIED TO PATH DELAY
+17 17 RESIDUAL APPLIED TO PATH DELAY
+18 18 CLIMATE QUALITY DATA PROCESSING
+19 19 RE-PROCESSING
+20 20 POST-PROCESSING
+21 21 NEAR-REAL TIME DATA PROCESSING
+22 22 REAL TIME DATA PROCESSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33094.table b/definitions/bufr/tables/0/wmo/41/codetables/33094.table
new file mode 100644
index 000000000..047801771
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33094.table
@@ -0,0 +1,8 @@
+16 16 NON-OCEAN
+17 17 LUNAR OR SOLAR INTRUSION
+18 18 SPACECRAFT MANEUVER
+19 19 COLD CALIBRATION CONSISTENCY
+20 20 WARM CALIBRATION CONSISTENCY
+21 21 DESCENDING
+22 22 NIGHT
+23 23 PAYLOAD REAR ORIENTATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33095.table b/definitions/bufr/tables/0/wmo/41/codetables/33095.table
new file mode 100644
index 000000000..63be174e9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33095.table
@@ -0,0 +1,7 @@
+1 1 PRTS OR THMS TEMPERATURES ARE MISSING OR WITH ANOMALOUS READINGS
+2 2 PRT TEMPERATURES OF OBCT USED IN THE RADIOMETRIC CALIBRATIONS IS MISSING OR WITH ANOMALOUS READINGS
+3 3 THMS TEMPERATURES OF SVR USED IN THE RADIOMETRIC CALIBRATIONS ARE MISSING OR WITH ANOMALOUS READINGS
+4 4 THMS TEMPERATURES OF MAIN REFLECTOR ARE MISSING OR WITH ANOMALOUS READINGS
+5 5 THMS TEMPERATURES OF THE RACETRACK ARE MISSING OR WITH ANOMALOUS READINGS
+6 6 THMS TEMPERATURES OF THE RECEIVERS ARE MISSING OR WITH ANOMALOUS READINGS
+7 7 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33096.table b/definitions/bufr/tables/0/wmo/41/codetables/33096.table
new file mode 100644
index 000000000..398df5d1f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33096.table
@@ -0,0 +1,15 @@
+1 1 RADIOMETRIC CALIBRATION FAILED OR IS DEGRADED
+2 2 OBCT VIEW COUNTS AVERAGED VALUE OVER SCANS IS MISSING (THIS IS VALID FOR THE HIGH-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+3 3 COLD SPACE VIEW COUNTS AVERAGED VALUE OVER SCANS IS MISSING (THIS IS VALID FOR THE LOW-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+4 4 OBCT VIEW COUNTS AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS COUNTS VALUES (THIS IS VALID FOR THE HIGH-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+5 5 COLD SPACE VIEW COUNTS AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS COUNTS VALUES (THIS IS VALID FOR THE LOW-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+6 6 OBCT VIEW RADIANCE AVERAGED VALUE OVER SCANS IS MISSING (THIS IS VALID FOR THE HIGH-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+7 7 COLD SPACE VIEW RADIANCE AVERAGED VALUE OVER SCANS IS MISSING (THIS IS VALID FOR THE LOW-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+8 8 OBCT VIEW RADIANCE AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS VALUES (THIS IS VALID FOR THE HIGH-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+9 9 COLD SPACE VIEW RADIANCE AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS VALUES (THIS IS VALID FOR THE LOW-REFERENCE CALIBRATION LOAD WHEN THE BACK-UP CALIBRATION IS APPLIED FOR CHANNELS MWI-1 TO MWI-3)
+10 10 NON-LINEARITY PARAMETER COMPUTED USING NOISE DIODES IS MISSING (MEANINGFUL ONLY FOR CHANNELS MWI-1 TO MWI-3)
+11 11 NON-LINEARITY PARAMETER COMPUTED USING NOISE DIODES IS DEGRADED (MEANINGFUL ONLY FOR CHANNELS MWI-1 TO MWI-3)
+12 12 PRTS OR THMS TEMPERATURES OF CURRENT SCAN ARE MISSING OR WITH ANOMALOUS READINGS
+13 13 MOON INTRUSION IN COLD SPACE DEGRADED CALIBRATION (LESS THAN NVALID_C VALID SAMPLES ARE NOT AFFECTED BY MOON FOR THE CONSIDERED CHANNEL AND SCAN)
+14 14 BACK-UP CALIBRATION WITH NOISE DIODES PERFORMED (MEANINGFUL ONLY FOR MWI-1 TO MWI-3)
+15 15 DEGRADED RECEIVER TEMPERATURES LEAD TO DEGRADED CALIBRATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33097.table b/definitions/bufr/tables/0/wmo/41/codetables/33097.table
new file mode 100644
index 000000000..4a5ac50f1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33097.table
@@ -0,0 +1,10 @@
+1 1 SCAN IS DEGRADED IN RAW DATA RECORD
+2 2 TIME SEQUENCE ERROR
+3 3 CURRENT SCAN IS ACQUIRED AFTER A GAP
+4 4 SCAN IS IN PERIOD OF INITIALIZATION OF CALIBRATION OF DATA AVERAGES OVER SCANS (BECAUSE OF COLD START/COLD END, MISSING WARM/COLD L0 PACKETS OR DATA GAPS).
+5 5 MOON INTRUSION ANGLE IN SPACE VIEW BELOW THRESHOLD FOR AT LEAST ONE CHANNEL
+6 6 MOON CORRECTION IS APPLIED BUT IS DEGRADED FOR AT LEAST ONE CHANNEL
+7 7 SUN GLINT ANGLE BELOW THRESHOLD FOR AT LEAST ONE CHANNEL
+8 8 RFI CONTAMINATION IN THE EARTH VIEW OR RFI PACKET MISSING FOR THE CONSIDERED SCAN (ONLY FOR MWI-1V AND MWI-1H)
+9 9 SATELLITE MANOEUVRE OCCURS IN CURRENT SCAN
+10 10 MISSING WARM OR COLD L0 PACKETS FOR THE CONSIDERED SCAN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33098.table b/definitions/bufr/tables/0/wmo/41/codetables/33098.table
new file mode 100644
index 000000000..51170985b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33098.table
@@ -0,0 +1,8 @@
+1 1 MWI SPECTRAL RADIANCE DATA OF CHANNEL IS MISSING OR DEGRADED
+2 2 EARTH VIEW COUNTS OF CHANNEL WITHIN SCAN ARE MISSING OR OUT OF BOUNDS
+3 3 RADIOMETRIC CALIBRATION FAILED OR IS DEGRADED
+4 4 GEOLOCATION OF CHANNEL IS ERRONEOUS OR DEGRADED
+5 5 NEΔT OF THIS DATA GRANULE IS ABOVE THRESHOLD
+6 6 MR EMISSIVITY AND SPILLOVER CORRECTION FAILED OR DEGRADED
+7 7 MR SIDELOBE CORRECTION FAILED OR DEGRADED
+8 8 CHANNEL IS DEFECTIVE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33099.table b/definitions/bufr/tables/0/wmo/41/codetables/33099.table
new file mode 100644
index 000000000..40b24e279
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33099.table
@@ -0,0 +1,15 @@
+1 1 GEOLOCATION OF CHANNEL IS ERRONEOUS OR DEGRADED
+2 2 TIME SEQUENCE ERROR
+3 3 MISSING OR CORRUPTED NAVATT FILE LEAD TO THE USE OF PREDICTED ORBIT FILES
+4 4 NAVATT ATTITUDE DATA IS DEGRADED
+5 5 TIME CORRELATION ERROR (MISSING IERS BULLETIN)
+6 6 INVALID EPHEMERIS OR ATTITUDE DATA
+7 7 SATELLITE MANOEUVRE OCCURS IN CURRENT SCAN
+8 8 NON-NOMINAL ATTITUDE WITH YAW, PITCH, ROLL ERROR ABOVE THRESHOLD DELTA_YPR (NOMINALLY THESE ANGLES ARE 0.0 DEG FOR YSM)
+9 9 SAMPLING TIME NOT WITHIN PRESCRIBED LIMITS
+10 10 SCAN VELOCITY NOT WITHIN PRESCRIBED LIMITS
+11 11 BAD POINTING (SENSOR LOS DOES NOT INTERSECT ELLIPSOID OR NOT COMPLIANT WITH OBSERVATION AZIMUTH/ELEVATION LIMITS)
+12 12 INVALID SOLAR AZIMUTH/ZENITH ANGLES COMPUTED
+13 13 DEM GEOLOCATION NOT PERFORMED (WITH USE_DEM_FLAG = 1)
+14 14 ERROR IN LAND FRACTION COMPUTATION
+15 15 PREDICTED ORBIT FILE NOT AVAILABLE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33100.table b/definitions/bufr/tables/0/wmo/41/codetables/33100.table
new file mode 100644
index 000000000..780907a29
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33100.table
@@ -0,0 +1,7 @@
+1 1 PRTS OR THMS TEMPERATURES ARE MISSING OR WITH ANOMALOUS READINGS
+2 2 PRT TEMPERATURES OF OBCT USED IN THE RADIOMETRIC CALIBRATIONS IS MISSING OR WITH ANOMALOUS READINGS
+3 3 PRT TEMPERATURES OF SVR USED IN THE RADIOMETRIC CALIBRATIONS ARE MISSING OR WITH ANOMALOUS READINGS
+4 4 PRT TEMPERATURES OF IRP AND SUN SHIELD ARE MISSING OR WITH ANOMALOUS READINGS
+5 5 THMS TEMPERATURE OF BACK-END ARE MISSING OR WITH ANOMALOUS READINGS
+6 6 THMS TEMPERATURE OF FRONT-END ARE MISSING OR WITH ANOMALOUS READINGS
+7 7 PRT TEMPERATURES OF MAIN REFLECTOR ARE MISSING OR WITH ANOMALOUS READINGS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33101.table b/definitions/bufr/tables/0/wmo/41/codetables/33101.table
new file mode 100644
index 000000000..5b0c65df6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33101.table
@@ -0,0 +1,12 @@
+1 1 RADIOMETRIC CALIBRATION FAILED OR IS DEGRADED
+2 2 OBCT VIEW COUNTS AVERAGED VALUE OVER SCANS IS MISSING
+3 3 COLD SPACE VIEW COUNTS AVERAGED VALUE OVER SCANS IS MISSING
+4 4 OBCT VIEW COUNTS AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS COUNTS VALUES
+5 5 COLD SPACE VIEW COUNTS AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS COUNTS VALUES
+6 6 OBCT VIEW RADIANCE AVERAGED VALUE OVER SCANS IS MISSING
+7 7 COLD SPACE VIEW RADIANCE AVERAGED VALUE OVER SCANS IS MISSING
+8 8 OBCT VIEW RADIANCE AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS VALUES
+9 9 COLD SPACE VIEW RADIANCE AVERAGED VALUE OVER SCANS IS DEGRADED DUE TO MISSING OR ANOMALOUS VALUES
+10 10 PRTS OR THMS TEMPERATURES OF CURRENT SCAN ARE MISSING OR WITH ANOMALOUS READINGS
+11 11 MOON INTRUSION IN COLD SPACE DEGRADED CALIBRATION (LESS THAN NVALID_C VALID SAMPLES ARE NOT AFFECTED BY MOON FOR THE CONSIDERED CHANNEL AND SCAN)
+12 12 DEGRADED OR MISSING BACK-END TEMPERATURES LEAD TO DEGRADED CALIBRATION
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33102.table b/definitions/bufr/tables/0/wmo/41/codetables/33102.table
new file mode 100644
index 000000000..cc406573d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33102.table
@@ -0,0 +1,9 @@
+1 1 SCAN IS DEGRADED IN RAW DATA RECORDS
+2 2 TIME SEQUENCE ERROR
+3 3 CURRENT SCAN IS ACQUIRED AFTER A GAP
+4 4 SCAN IS IN PERIOD OF INITIALIZATION OF CALIBRATION OF DATA AVERAGES OVER SCANS (BECAUSE OF COLD START/COLD END, MISSING WARM/COLD L0 PACKETS OR DATA GAPS)
+5 5 MOON INTRUSION ANGLE IN SPACE VIEW BELOW THRESHOLD FOR AT LEAST ONE CHANNEL
+6 6 MOON CORRECTION IS APPLIED BUT IS DEGRADED FOR AT LEAST ONE CHANNEL
+7 7 SUN GLINT ANGLE BELOW THRESHOLD FOR AT LEAST ONE CHANNEL
+8 8 SATELLITE MANOEUVRE OCCURS IN CURRENT SCAN
+9 9 MISSING WARM OR COLD L0 PACKETS FOR THE CONSIDERED SCAN
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33103.table b/definitions/bufr/tables/0/wmo/41/codetables/33103.table
new file mode 100644
index 000000000..7683c6afa
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33103.table
@@ -0,0 +1,8 @@
+1 1 ICI SPECTRAL RADIANCE DATA OF CHANNEL IS MISSING OR DEGRADED
+2 2 EARTH VIEW COUNTS OF CHANNEL WITHIN SCAN ARE MISSING OR OUT OF BOUNDS
+3 3 RADIOMETRIC CALIBRATION FAILED OR IS DEGRADED
+4 4 GEOLOCATION OF CHANNEL IS ERRONEOUS OR DEGRADED
+5 5 NEΔT OF THIS DATA GRANULE IS ABOVE THRESHOLD
+6 6 MR EMISSIVITY AND SPILLOVER CORRECTION FAILED OR DEGRADED
+7 7 MR SIDELOBE CORRECTION FAILED OR DEGRADED
+8 8 CHANNEL IS DEFECTIVE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33104.table b/definitions/bufr/tables/0/wmo/41/codetables/33104.table
new file mode 100644
index 000000000..7b0ca41d9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33104.table
@@ -0,0 +1,15 @@
+1 1 GEOLOCATION OF CHANNELS IS ERRONEOUS OR DEGRADED
+2 2 TIME SEQUENCE ERROR
+3 3 MISSING OR CORRUPTED NAVATT FILE LEAD TO THE USE OF PREDICTED ORBIT FILES
+4 4 NAVATT ATTITUDE DATA IS DEGRADED
+5 5 TIME CORRELATION ERROR (MISSING IERS BULLETIN)
+6 6 INVALID EPHEMERIS OR ATTITUDE DATA
+7 7 SATELLITE MANOEUVRE OCCURS IN CURRENT SCAN
+8 8 NON-NOMINAL ATTITUDE WITH YAW, PITCH, ROLL ERROR ABOVE THRESHOLD DELTA_YPR (NOMINALLY THESE ANGLES ARE 0.0 DEG FOR YSM)
+9 9 SAMPLING TIME NOT WITHIN PRESCRIBED LIMITS
+10 10 SCAN VELOCITY NOT WITHIN PRESCRIBED LIMITS
+11 11 BAD POINTING (SENSOR LOS DOES NOT INTERSECT ELLIPSOID OR NOT COMPLIANT WITH OBSERVATION AZIMUTH/ELEVATION LIMITS)
+12 12 INVALID SOLAR AZIMUTH/ZENITH ANGLES COMPUTED
+13 13 DEM GEOLOCATION NOT PERFORMED (WITH USE_DEM_FLAG = 1)
+14 14 ERROR IN LAND FRACTION COMPUTATION
+15 15 PREDICTED ORBIT FILE NOT AVAILABLE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33105.table b/definitions/bufr/tables/0/wmo/41/codetables/33105.table
new file mode 100644
index 000000000..c8e6c8af5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33105.table
@@ -0,0 +1,9 @@
+1 1 MOON CONTAMINATION CORRECTION ON COLD SPACE VIEW COUNTS IS NOT APPLIED
+2 2 MR SPILLOVER CORRECTION RELATIVE TO EMISSION BY INSTRUMENT PLATFORM IS NOT APPLIED
+3 3 SVR SPILLOVER CORRECTION RELATIVE TO EMISSION BY INSTRUMENT PLATFORM IS NOT APPLIED
+4 4 SVR SIDELOBE CORRECTION IS NOT APPLIED
+5 5 FULL CROSS-POLARIZATION CORRECTION INCLUDING SMALL ANGLES CORRECTION IS APPLIED
+6 6 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR ICI-1
+7 7 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR ICI-2
+8 8 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR ICI-3
+9 9 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR ICI-4 V AND ICI-4 H
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33106.table b/definitions/bufr/tables/0/wmo/41/codetables/33106.table
new file mode 100644
index 000000000..811926c02
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33106.table
@@ -0,0 +1,12 @@
+1 1 MOON CONTAMINATION CORRECTION ON COLD SPACE VIEW COUNTS IS NOT APPLIED
+2 2 CALIBRATION WITH NOISE DIODES IS NOT APPLIED FOR AT LEAST ONE CHANNEL AMONG MWI-1 TO MWI-3
+3 3 MR SPILLOVER CORRECTION RELATIVE TO EMISSION BY INSTRUMENT PLATFORM IS NOT APPLIED
+4 4 SVR SPILLOVER CORRECTION RELATIVE TO EMISSION BY INSTRUMENT PLATFORM IS NOT APPLIED
+5 5 SVR SIDELOBE CORRECTION IS NOT APPLIED
+6 6 FULL CROSS-POLARIZATION CORRECTION INCLUDING SMALL ANGLES CORRECTION IS APPLIED
+7 7 RFI CORRECTION IN THE EARTH VIEW IS NOT APPLIED
+8 8 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR MWI-1
+9 9 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR MWI-2
+10 10 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR MWI-3
+11 11 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR MWI-4
+12 12 DYNAMIC SIDELOBE CORRECTION IS NOT APPLIED FOR MWI-8
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33107.table b/definitions/bufr/tables/0/wmo/41/codetables/33107.table
new file mode 100644
index 000000000..8487a7300
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33107.table
@@ -0,0 +1,15 @@
+1 1 NON-NOMINAL SCAN DUE TO GAP
+2 2 NON-NOMINAL WARM TARGET TEMPERATURE
+3 3 NON-NOMINAL ALONG-TRACK AVERAGING OF WARM TARGET TEMPERATURES
+4 4 NON-NOMINAL INSTRUMENT TEMPERATURE
+5 5 NON-NOMINAL ALONG-TRACK AVERAGING OF INSTRUMENT TEMPERATURES
+6 6 NON-NOMINAL ROTATING REFLECTOR TEMPERATURE
+7 7 NON-NOMINAL ALONG-TRACK AVERAGING OF ROTATING REFLECTOR TEMPERATURES
+8 8 NON-NOMINAL ANTENNA SCAN ANGLE EARTH VIEW
+9 9 NON-NOMINAL ANTENNA SCAN ANGLE COLD VIEW
+10 10 NON-NOMINAL ANTENNA SCAN ANGLE WARM VIEW
+11 11 NON-NOMINAL GEOLOCATION
+12 12 NON-NOMINAL LSM AND DEM ASSIGNMENT
+13 13 ONGOING SATELLITE MANOEUVRE
+14 14 REDUNDANT 50GHZ REC AND PRT SET IN USE
+15 15 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33108.table b/definitions/bufr/tables/0/wmo/41/codetables/33108.table
new file mode 100644
index 000000000..70f883e37
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33108.table
@@ -0,0 +1,12 @@
+1 1 NON-NOMINAL CONDITION
+2 2 SCAN NOT PROCESSED
+3 3 GEOLOCATION NOT SUCCESSFUL
+4 4 ORBIT NOT INITIALIZED WITH NAVATT
+5 5 ATTITUDE NOT INITIALIZED WITH NAVATT
+6 6 PREDICTED ORBIT FILE INGEST ERROR
+7 7 MANOEUVRE
+8 8 IERS BULLETIN A INGEST ERROR
+9 9 TIME CORRELATION AND EOP INITIALIZED WITH PREDICTED ORBIT FILE
+10 10 FULL ACCURACY OF NAVATT INITIALIZED ATTITUDE NOT REACHED
+11 11 POINTING MODE NOT YSM
+12 12 NAVATT INGEST ERROR
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33109.table b/definitions/bufr/tables/0/wmo/41/codetables/33109.table
new file mode 100644
index 000000000..467f6c0ae
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33109.table
@@ -0,0 +1,6 @@
+1 1 MISSING INPUT PRODUCT(S)
+2 2 DATA GAP(S)
+3 3 CORRUPTED INPUT PRODUCT(S)
+4 4 INSTRUMENT ANOMALY
+5 5 MISSING OR DEGRADED AUXILIARY DATA
+6 6 DEGRADED DUE TO MANOEUVRE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33110.table b/definitions/bufr/tables/0/wmo/41/codetables/33110.table
new file mode 100644
index 000000000..ac33f50c9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33110.table
@@ -0,0 +1,8 @@
+1 1 CHANNEL IS OFF
+2 2 NON-NOMINAL MEAN WARM VIEW COUNT
+3 3 NON-NOMINAL ALONG-TRACK AVERAGING OF WARM VIEW COUNTS
+4 4 NON-NOMINAL MEAN COLD VIEW COUNT
+5 5 NON-NOMINAL ALONG-TRACK AVERAGING OF COLD VIEW COUNTS
+6 6 NON-NOMINAL CALIBRATION COEFFICIENTS
+7 7 MOON INTRUSION IN SOME OF THE COLD VIEW FOVS
+8 8 NON-NOMINAL PROCESSING OR EXCESSIVE VALUE FOR NEDT (COLD OR WARM)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33111.table b/definitions/bufr/tables/0/wmo/41/codetables/33111.table
new file mode 100644
index 000000000..fea38a90b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33111.table
@@ -0,0 +1,31 @@
+1 1 PREDICTED ORBIT FILE USED
+2 2 MANOEUVRE TAKING PLACE
+3 3 RESERVED
+4 4 SATELLITE IS NOT IN YAW STEERING MODE
+5 5 TRANSPONDER SIGNAL IS PRESENT
+6 6 NOISE ESTIMATE IS POOR
+7 7 NOISE ESTIMATE IS VERY POOR
+8 8 NOISE OUTLIER IS PRESENT
+9 9 ANCILLARY DATA IS POOR
+10 10 ANCILLARY DATA IS VERY POOR
+11 11 CHARACTERISATION TABLE LIMITS EXCEEDED
+12 12 POWER-GAIN ESTIMATE IS POOR
+13 13 POWER-GAIN ESTIMATE IS VERY POOR
+14 14 POWER-GAIN OUT OF LIMITS
+15 15 WAVEGUIDE LOSS ESTIMATE IS POOR
+16 16 WAVEGUIDE LOSS ESTIMATE IS VERY POOR
+17 17 WAVEGUIDE TABLE LIMITS EXCEEDED
+18 18 ECHO IS OUT OF ADC RANGE
+19 19 RESERVED
+20 20 MISSING NORMALISATION TABLES
+21 21 NUMBER OF SAMPLES IN WINDOW IS LOW
+22 22 NUMBER OF SAMPLES IN WINDOW IS VERY LOW
+23 23 NEGATIVE BACKSCATTER IN RESAMPLED DATA
+24 24 POSSIBLE INTERFERENCE FROM SOLAR ARRAY
+25 25 RESERVED
+26 26 RESERVED
+27 27 RESERVED
+28 28 LAND
+29 29 WATER
+30 30 ASCENDING PASS
+31 31 DESCENDING PASS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33113.table b/definitions/bufr/tables/0/wmo/41/codetables/33113.table
new file mode 100644
index 000000000..a8f4ce101
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33113.table
@@ -0,0 +1,11 @@
+1 1 GENERAL QUALITY (0 IF BITS 2 TO 11 ARE ALL 0, 1 OTHERWISE)
+2 2 SOUNDER RADIOMETRIC
+3 3 SOUNDER SPECTRAL
+4 4 IMAGER GEOMETRIC
+5 5 IMAGER CLASSIFICATION
+6 6 IMAGER RADIOMETRIC
+7 7 GENERAL SOUNDER
+8 8 PRESENCE OF MATHEMATICAL ERRORS
+9 9 TM DATA MISSING
+10 10 TM DATA CORRUPT
+11 11 TM INTEGRITY INSTRUMENT
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33114.table b/definitions/bufr/tables/0/wmo/41/codetables/33114.table
new file mode 100644
index 000000000..576d09d85
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33114.table
@@ -0,0 +1,16 @@
+1 1 TEMPERATURE PROFILE
+2 2 WATER VAPOUR PROFILE
+3 3 OZONE PROFILE
+4 4 SURFACE SKIN TEMPERATURE
+5 5 SURFACE AIR TEMPERATURE
+6 6 SURFACE AIR DEW POINT TEMPERATURE
+7 7 SURFACE PRESSURE
+8 8 SURFACE SKIN TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+9 9 SURFACE AIR TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+10 10 SURFACE AIR DEW POINT TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+11 11 SURFACE PRESSURE ERROR ESTIMATE (QUALITY INDICATOR)
+12 12 SURFACE EMISSIVITY COARSE INFRARED SPECTRUM
+13 13 SURFACE EMISSIVITY MICROWAVE SPECTRUM
+14 14 CO2 PROFILE
+15 15 CH4 PROFILE
+16 16 N2O PROFILE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33115.table b/definitions/bufr/tables/0/wmo/41/codetables/33115.table
new file mode 100644
index 000000000..911a3c2e7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33115.table
@@ -0,0 +1,6 @@
+0 0 GOOD
+1 1 CLOUDY NADIR
+2 2 CLOUDY OBLIQUE
+3 3 GLINT NADIR
+4 4 GLINT OBLIQUE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33116.table b/definitions/bufr/tables/0/wmo/41/codetables/33116.table
new file mode 100644
index 000000000..576d09d85
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33116.table
@@ -0,0 +1,16 @@
+1 1 TEMPERATURE PROFILE
+2 2 WATER VAPOUR PROFILE
+3 3 OZONE PROFILE
+4 4 SURFACE SKIN TEMPERATURE
+5 5 SURFACE AIR TEMPERATURE
+6 6 SURFACE AIR DEW POINT TEMPERATURE
+7 7 SURFACE PRESSURE
+8 8 SURFACE SKIN TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+9 9 SURFACE AIR TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+10 10 SURFACE AIR DEW POINT TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+11 11 SURFACE PRESSURE ERROR ESTIMATE (QUALITY INDICATOR)
+12 12 SURFACE EMISSIVITY COARSE INFRARED SPECTRUM
+13 13 SURFACE EMISSIVITY MICROWAVE SPECTRUM
+14 14 CO2 PROFILE
+15 15 CH4 PROFILE
+16 16 N2O PROFILE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/33117.table b/definitions/bufr/tables/0/wmo/41/codetables/33117.table
new file mode 100644
index 000000000..576d09d85
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/33117.table
@@ -0,0 +1,16 @@
+1 1 TEMPERATURE PROFILE
+2 2 WATER VAPOUR PROFILE
+3 3 OZONE PROFILE
+4 4 SURFACE SKIN TEMPERATURE
+5 5 SURFACE AIR TEMPERATURE
+6 6 SURFACE AIR DEW POINT TEMPERATURE
+7 7 SURFACE PRESSURE
+8 8 SURFACE SKIN TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+9 9 SURFACE AIR TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+10 10 SURFACE AIR DEW POINT TEMPERATURE ERROR ESTIMATE (QUALITY INDICATOR)
+11 11 SURFACE PRESSURE ERROR ESTIMATE (QUALITY INDICATOR)
+12 12 SURFACE EMISSIVITY COARSE INFRARED SPECTRUM
+13 13 SURFACE EMISSIVITY MICROWAVE SPECTRUM
+14 14 CO2 PROFILE
+15 15 CH4 PROFILE
+16 16 N2O PROFILE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35000.table b/definitions/bufr/tables/0/wmo/41/codetables/35000.table
new file mode 100644
index 000000000..8c57023e3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35000.table
@@ -0,0 +1 @@
+1023 1023 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35001.table b/definitions/bufr/tables/0/wmo/41/codetables/35001.table
new file mode 100644
index 000000000..bba0c812e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35001.table
@@ -0,0 +1,4 @@
+0 0 REAL TIME
+1 1 NEAR-REAL TIME
+2 2 NON-REAL TIME
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35030.table b/definitions/bufr/tables/0/wmo/41/codetables/35030.table
new file mode 100644
index 000000000..5b83f8b81
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35030.table
@@ -0,0 +1,10 @@
+0 0 NO DISCREPANCIES
+1 1 NON-COMPLIANCE WITH STANDARD AND RECOMMENDED PRACTICES AND PROCEDURES INCLUDING THOSE OF MONITORING
+2 2 CATALOGUES OF METEOROLOGICAL BULLETINS NOT UPDATED IN A TIMELY MANNER
+3 3 INCORRECT ROUTING DIRECTORIES
+4 4 LACK OF FLEXIBILITY IN THE ROUTING ARRANGEMENTS
+5 5 DEFICIENCIES IN THE OPERATION OF GTS CENTRES AND CIRCUITS
+6 6 LOSS OF DATA OR DELAYS IN RELAYING DATA ON THE GTS
+7 7 ROUTING OF DATA DIFFERENT FROM THE ROUTING PROVIDED IN THE PLAN
+8 8 VARIOUS MALPRACTICES
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35031.table b/definitions/bufr/tables/0/wmo/41/codetables/35031.table
new file mode 100644
index 000000000..bdd705ddd
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35031.table
@@ -0,0 +1,20 @@
+1 1 SUFFICIENT AND ALL OF ACCEPTABLE QUALITY
+2 2 SUFFICIENT BUT PARTLY OF ACCEPTABLE QUALITY
+3 3 INSUFFICIENT BUT ALL OF ACCEPTABLE QUALITY
+4 4 INSUFFICIENT AND OF UNACCEPTABLE QUALITY
+5 5 SOME MESSAGES NOT COMPLETE
+6 6 SUSPECT OR WRONGLY CODED GROUPS COULD NOT BE INTERPRETED CONFIDENTLY
+7 7 GROSS CODING ERRORS
+8 8 TRANSMISSION SEQUENTIAL ORDER NOT OBSERVED
+9 9 REPORT COMPLETELY GARBLED AND THUS DISCARDED
+10 10 DEFICIENCIES IDENTIFIED AND RECTIFIED
+11 11 DEFICIENCIES IDENTIFIED BUT NOT RECTIFIED
+12 12 DEFICIENCIES NOT IDENTIFIED
+13 13 MEASURING ERRORS
+14 14 MUTUAL INCONSISTENCY
+15 15 TEMPORAL INCONSISTENCY
+16 16 FORECAST ERROR
+17 17 BIAS
+18 18 IMPROVE SYSTEM OF QUALITY CONTROL
+19 19 EXPAND TRAINING PROGRAMMES
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35032.table b/definitions/bufr/tables/0/wmo/41/codetables/35032.table
new file mode 100644
index 000000000..7f53a05f9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35032.table
@@ -0,0 +1,10 @@
+1 1 DATA GROUPS MISSING DUE TO RADIO FADING
+2 2 DATA GROUPS MISSING DUE TO OUTAGE OF CENTRE
+3 3 DATA GROUPS MISSING DUE TO OUTAGE OF CIRCUIT
+4 4 NON-IMPLEMENTATION OR MAINTENANCE OF REQUIRED RBSN DENSITY
+5 5 SHORTAGE OF QUALIFIED STAFF TO MAN STATIONS
+6 6 LACK OF CONSUMABLES
+7 7 INSTRUMENT FAILURE
+8 8 NON-ADHERENCE TO TELECOMMUNICATION PROCEDURES
+9 9 SOME OBSERVING PROGRAMMES CEASED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35033.table b/definitions/bufr/tables/0/wmo/41/codetables/35033.table
new file mode 100644
index 000000000..86e9592ef
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35033.table
@@ -0,0 +1,12 @@
+1 1 NO DEFICIENCY
+2 2 OBSERVATIONS NOT MADE REGULARLY
+3 3 OBSERVATIONS NOT MADE AT RIGHT TIME
+4 4 OBSERVATIONS MADE BUT NOT DISSEMINATED
+5 5 OBSERVATIONS MADE AND SENT TO INCORRECT USERS
+6 6 COLLECTION NOT RECEIVED
+7 7 COLLECTION TRANSMITTED LATE
+8 8 COLLECTION NOT TRANSMITTED
+9 9 DIFFICULTIES IN HF PROPAGATION AND SELECTION OF SUITABLE FREQUENCY
+10 10 DIFFICULTIES IN MAINTENANCE OF COMMUNICATION EQUIPMENT AT REMOTE STATIONS
+11 11 NO ALTERNATIVE ARRANGEMENT FOR ROUTING METEOROLOGICAL OBSERVATION
+123 123 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35034.table b/definitions/bufr/tables/0/wmo/41/codetables/35034.table
new file mode 100644
index 000000000..7297664cf
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35034.table
@@ -0,0 +1,7 @@
+1 1 SLIGHT IMPROVEMENT
+2 2 SIGNIFICANT IMPROVEMENT
+3 3 MOST SIGNIFICANT IMPROVEMENT
+4 4 STEADY
+5 5 DECREASING
+6 6 EFFORTS REQUIRED TO IMPROVE NIGHT-TIME OBSERVATIONS
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/35035.table b/definitions/bufr/tables/0/wmo/41/codetables/35035.table
new file mode 100644
index 000000000..0fce6ddb7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/35035.table
@@ -0,0 +1,20 @@
+0 0 RESERVED
+1 1 BALLOON BURST
+2 2 BALLOON FORCED DOWN BY ICING
+3 3 LEAKING OR FLOATING BALLOON
+4 4 WEAK OR FADING SIGNAL
+5 5 BATTERY FAILURE
+6 6 GROUND EQUIPMENT FAILURE
+7 7 SIGNAL INTERFERENCE
+8 8 RADIOSONDE FAILURE
+9 9 EXCESSIVE MISSING DATA FRAMES
+10 10 RESERVED
+11 11 EXCESSIVE MISSING TEMPERATURE
+12 12 EXCESSIVE MISSING PRESSURE
+13 13 USER TERMINATED
+14 14 SUDDEN LOSS OF SIGNAL
+15 15 TRACKING LOST
+16 16 INCREASING PRESSURE
+17 17 INVALID AND/OR MISSED DATA TIME LIMITS EXCEEDED
+30 30 OTHER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40005.table b/definitions/bufr/tables/0/wmo/41/codetables/40005.table
new file mode 100644
index 000000000..045a4f1b1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40005.table
@@ -0,0 +1,5 @@
+1 1 SOIL MOISTURE BETWEEN -20% AND 0%
+2 2 SOIL MOISTURE BETWEEN 100% AND 120%
+3 3 CORRECTION OF WET BACKSCATTER REFERENCE
+4 4 CORRECTION OF DRY BACKSCATTER REFERENCE
+5 5 CORRECTION OF VOLUME SCATTERING IN SAND
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40006.table b/definitions/bufr/tables/0/wmo/41/codetables/40006.table
new file mode 100644
index 000000000..d53382eff
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40006.table
@@ -0,0 +1,8 @@
+1 1 NOT SOIL
+2 2 SENSITIVITY TO SOIL MOISTURE BELOW LIMIT
+3 3 AZIMUTHAL NOISE ABOVE LIMIT
+4 4 BACKSCATTER FORE-AFT BEAM OUT OF RANGE
+5 5 SLOPE MID-FORE BEAM OUT OF RANGE
+6 6 SLOPE MID-AFT BEAM OUT OF RANGE
+7 7 SOIL MOISTURE BELOW -20%
+8 8 SOIL MOISTURE ABOVE 120%
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40011.table b/definitions/bufr/tables/0/wmo/41/codetables/40011.table
new file mode 100644
index 000000000..ddc7e8672
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40011.table
@@ -0,0 +1,4 @@
+1 1 MEAN SEA-SURFACE (MSS) INTERPOLATION FLAG
+2 2 OCEAN TIDE SOLUTION 1 INTERPOLATION FLAG (0 = 4 POINTS OVER OCEAN, 1 = LESS THAN 4 POINTS)
+3 3 OCEAN TIDE SOLUTION 2 INTERPOLATION FLAG (0 = 4 POINTS OVER OCEAN, 1 = LESS THAN 4 POINTS)
+4 4 METEOROLOGICAL DATA INTERPOLATION FLAG (0 = 4 POINTS OVER OCEAN, 1 = LESS THAN 4 POINTS)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40012.table b/definitions/bufr/tables/0/wmo/41/codetables/40012.table
new file mode 100644
index 000000000..d8ce14d86
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40012.table
@@ -0,0 +1,3 @@
+1 1 18.7 GHZ BRIGHTNESS TEMPERATURE
+2 2 23.8 GHZ BRIGHTNESS TEMPERATURE
+3 3 34 GHZ BRIGHTNESS TEMPERATURE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40013.table b/definitions/bufr/tables/0/wmo/41/codetables/40013.table
new file mode 100644
index 000000000..766e93f79
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40013.table
@@ -0,0 +1,5 @@
+0 0 INTERPOLATION WITH NO GAP BETWEEN JMR DATA
+1 1 INTERPOLATION WITH GAPS BETWEEN JMR DATA
+2 2 EXTRAPOLATION OF JMR DATA
+3 3 FAILURE OF EXTRAPOLATION AND INTERPOLATION
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40020.table b/definitions/bufr/tables/0/wmo/41/codetables/40020.table
new file mode 100644
index 000000000..fa1d1f5c5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40020.table
@@ -0,0 +1,16 @@
+1 1 NZPD AND COMPLEX CALIBRATION ERROR
+2 2 BAND 3 AFFECTED BY SPIKE
+3 3 BAND 3 AFFECTED BY SATURATION
+4 4 BAND 2 AFFECTED BY SPIKE
+5 5 BAND 1 AFFECTED BY SPIKE
+6 6 OVERFLOW/UNDER FLOW
+7 7 ON-BOARD PROCESSING ERROR
+8 8 SPECTRAL CALIBRATION ERROR
+9 9 RADIOMETRIC CALIBRATION ERROR
+10 10 MISSING AVHRR DATA
+11 11 MISSING IIS DATA
+12 12 MISSING SOUNDER DATA
+13 13 GQISFLAGQUAL SUMMARY FLAG FOR ALL BANDS
+14 14 ON-GROUND PROCESSING ERROR
+15 15 INTER-CALIBRATION ERROR IASI/AVHRR
+16 16 SPARE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40023.table b/definitions/bufr/tables/0/wmo/41/codetables/40023.table
new file mode 100644
index 000000000..2e4cbfb69
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40023.table
@@ -0,0 +1,4 @@
+1 1 BAND SEQUENCE (0 = 3KU_1C_3KU, 1 = 2KU_1C_2KU)
+2 2 C BAND FREQUENCY (0 = 320 MHZ, 1 = 100 MHZ)
+3 3 C BAND STATUS (0 = ON, 1 = OFF)
+4 4 KU BAND STATUS (0 = ON, 1 = OFF)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40024.table b/definitions/bufr/tables/0/wmo/41/codetables/40024.table
new file mode 100644
index 000000000..c8421e5af
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40024.table
@@ -0,0 +1,5 @@
+0 0 2 MAPS AVAILABLE (6 HOURS APART)
+1 1 2 MAPS AVAILABLE (> 6 HOURS APART)
+2 2 1 MAP AVAILABLE; DATA EXTRAPOLATED
+3 3 NO MAPS USED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40025.table b/definitions/bufr/tables/0/wmo/41/codetables/40025.table
new file mode 100644
index 000000000..741430292
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40025.table
@@ -0,0 +1,4 @@
+0 0 GOOD
+1 1 BAD
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40028.table b/definitions/bufr/tables/0/wmo/41/codetables/40028.table
new file mode 100644
index 000000000..e094f29dc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40028.table
@@ -0,0 +1,16 @@
+0 0 GOOD DATA
+1 1 POSSIBLE SUN GLINT
+2 2 POSSIBLE RADIO-FREQUENCY INTERFERENCE
+3 3 DEGRADED GEOLOCATION DATA
+4 4 DATA CORRECTED FOR WARM LOAD INTRUSION
+5 5 SCAN BLANKING ON
+6 6 DATA IS MISSING FROM FILE OR UNREADABLE
+7 7 UNPHYSICAL BRIGHTNESS TEMPERATURE
+8 8 ERROR IN GEOLOCATION DATA
+9 9 DATA MISSING IN ONE CHANNEL
+10 10 DATA MISSING IN MULTIPLE CHANNELS
+11 11 LAT/LON VALUES ARE OUT OF RANGE
+12 12 NON-NORMAL STATUS MODES
+13 13 DISTANCE TO CORRESPONDING LOW FREQUENCY PIXEL > 7 KM
+14 14 RESERVED
+15 15 MISSING VALUE (NO QUALITY INFORMATION AVAILABLE)
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40036.table b/definitions/bufr/tables/0/wmo/41/codetables/40036.table
new file mode 100644
index 000000000..9a5418e3a
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40036.table
@@ -0,0 +1,3 @@
+0 0 CLEAR
+1 1 CLOUD
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40043.table b/definitions/bufr/tables/0/wmo/41/codetables/40043.table
new file mode 100644
index 000000000..859484624
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40043.table
@@ -0,0 +1,4 @@
+0 0 THE PLATFORM IS NOT UNDERGOING A MANOEUVRE
+1 1 THE PLATFORM IS UNDERGOING A MANOEUVRE, NOMINAL PROCESSING
+2 2 THE PLATFORM IS UNDERGOING A MANOEUVRE, NO PROCESSING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40045.table b/definitions/bufr/tables/0/wmo/41/codetables/40045.table
new file mode 100644
index 000000000..08b600150
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40045.table
@@ -0,0 +1,4 @@
+1 1 CLOUD PRODUCTS RETRIEVED WITH THE CHI-SQUARED METHOD
+2 2 CLOUD PRODUCTS RETRIEVED WITH THE CO2-SLICING
+3 3 HEIGHT ASSIGNMENT PERFORMED WITH STATISTICAL FIRST GUESS RETRIEVAL
+4 4 HEIGHT ASSIGNMENT PERFORMED WITH NWP FORECASTS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40046.table b/definitions/bufr/tables/0/wmo/41/codetables/40046.table
new file mode 100644
index 000000000..31077db10
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40046.table
@@ -0,0 +1,5 @@
+0 0 THE IASI IFOV IS CLEAR
+1 1 SMALL CLOUD CONTAMINATION POSSIBLE
+2 2 THE IASI IFOV IS PARTIALLY COVERED BY CLOUDS
+3 3 HIGH OR FULL CLOUD COVERAGE
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40047.table b/definitions/bufr/tables/0/wmo/41/codetables/40047.table
new file mode 100644
index 000000000..f7f29c7b8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40047.table
@@ -0,0 +1,4 @@
+0 0 THE MEASUREMENTS AND SIDE INFORMATION ARE AVAILABLE AND OF GOOD QUALITY FOR L2 PROCESSING
+1 1 THE L1C PRODUCTS ARE OF DEGRADED QUALITY ACCORDING TO L1C FLAGS, NO L2 PROCESSING
+2 2 QUALITY CONTROL INDICATES THAT THE L1C DATA ARE OF DEGRADED QUALITY (NOT INDICATED BY THE IASI L1C FLAGS), NO L2 PROCESSING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40048.table b/definitions/bufr/tables/0/wmo/41/codetables/40048.table
new file mode 100644
index 000000000..ee5d4fe0f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40048.table
@@ -0,0 +1,4 @@
+0 0 THE EXPECTED AMSU MEASUREMENTS ARE AVAILABLE, OF GOOD QUALITY AND COLLOCATED WITH IASI FOR PROCESSING
+1 1 AMSU-A DATA ARE AVAILABLE BUT OF DEGRADED QUALITY (ACCORDING TO AMSU L1 FLAGS OR QC TESTS) AND NOT USED FOR PROCESSING
+2 2 NO COINCIDENT (TIME AND SPACE) AMSU MEASUREMENTS AVAILABLE FOR PROCESSING
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40049.table b/definitions/bufr/tables/0/wmo/41/codetables/40049.table
new file mode 100644
index 000000000..19d1fe9d8
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40049.table
@@ -0,0 +1,12 @@
+4 4 IASI CLOUD OPTICAL THICKNESS INDICATES A CLOUD
+5 5 IASI CLOUD OPTICAL THICKNESS COMPUTED
+6 6 AVHRR HETEROGENEITY TEST INDICATES A CLOUD
+7 7 AVHRR HETEROGENEITY TEST EXECUTED
+8 8 IASI-AVHRR ANN CLOUD TEST INDICATES A CLOUD
+9 9 IASI-AVHRR ANN CLOUD TEST EXECUTED
+10 10 AVHRR INTEGRATED CLOUD FRACTION INDICATES A CLOUD
+11 11 AVHRR INTEGRATED CLOUD FRACTION ASSESSED
+12 12 AMSU CLOUD TEST INDICATES A CLOUD
+13 13 AMSU CLOUD TEST EXECUTED
+14 14 IASI WINDOW CLOUD TEST INDICATES A CLOUD
+15 15 IASI WINDOW CLOUD TEST EXECUTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40050.table b/definitions/bufr/tables/0/wmo/41/codetables/40050.table
new file mode 100644
index 000000000..503ab1443
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40050.table
@@ -0,0 +1,3 @@
+5 5 MHS INCLUDED
+6 6 AMSU INCLUDED
+7 7 IASI INCLUDED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40051.table b/definitions/bufr/tables/0/wmo/41/codetables/40051.table
new file mode 100644
index 000000000..60542bc0f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40051.table
@@ -0,0 +1,8 @@
+0 0 OPTIMAL ESTIMATION METHODS (OEM) NOT ATTEMPTED
+1 1 OEM ABORTED BECAUSE FIRST GUESS RESIDUALS TOO HIGH
+2 2 THE MINIMIZATION DID NOT CONVERGE, SOUNDING REJECTED
+3 3 THE MINIMIZATION DID NOT CONVERGE, SOUNDING ACCEPTED
+4 4 THE MINIMIZATION CONVERGED BUT SOUNDING REJECTED
+5 5 THE MINIMIZATION CONVERGED, SOUNDING ACCEPTED
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40052.table b/definitions/bufr/tables/0/wmo/41/codetables/40052.table
new file mode 100644
index 000000000..1f48809c0
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40052.table
@@ -0,0 +1,4 @@
+4 4 SUPERSATURATION CONDITIONS IN THE OEM RETRIEVAL
+5 5 SUPERADIABATIC CONDITIONS IN THE OEM RETRIEVAL
+6 6 SUPERSATURATION CONDITIONS IN THE FIRST GUESS
+7 7 SUPERADIABATIC CONDITIONS IN THE FIRST GUESS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40054.table b/definitions/bufr/tables/0/wmo/41/codetables/40054.table
new file mode 100644
index 000000000..a034bc322
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40054.table
@@ -0,0 +1,12 @@
+1 1 AN ERROR HAS BEEN DETECTED
+2 2 MESSAGE FROM L1
+3 3 MESSAGE FROM L2
+4 4 MESSAGE FROM ANCILLARY DATA
+5 5 MESSAGE FROM FITTING PROCEDURE
+6 6 FILE OPENING
+7 7 FILE READING
+8 8 QUALITY FLAG
+9 9 LEVEL 2 FROM LINEAR REGRESSION(F_QUAL), REPORT A PIXEL WHERE L2 ARE NOT FULLY TRUSTED
+10 10 EMPTY FIELD OR DATA
+11 11 MISSING SURFACE PRESSURE VALUE
+12 12 RADIANCE FILTERING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40055.table b/definitions/bufr/tables/0/wmo/41/codetables/40055.table
new file mode 100644
index 000000000..7aa99d433
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40055.table
@@ -0,0 +1,20 @@
+1 1 RADIANCE FILTERING
+2 2 POLAR REGIONS
+3 3 LOCATION IN THE NIGHT
+4 4 NEGATIVE ALTITUDE SURFACE BELOW MEAN SEA LEVEL
+5 5 CLOUD COVERED SCENE
+6 6 SCENE ABOVE THE SEA
+7 7 SCENE ABOVE DESERT
+8 8 SKIN TEMPERATURE
+9 9 SKIN TEMPERATURE DIFFERENTIAL
+10 10 SPECTRAL LINE CONTRAST TOO WEAK
+11 11 MAXIMUM NUMBER OF ITERATIONS EXCEEDED
+12 12 NEGATIVE PARTIAL COLUMNS
+13 13 MATRIX ILL CONDITIONED
+14 14 FIT DIVERGED
+15 15 ERROR IN GNU SCIENTIFIC LIBRARY (GSL) USAGE
+16 16 RESIDUALS BIASED
+17 17 RESIDUALS SLOPED
+18 18 RESIDUALS ROOT MEAN SQUARE (RMS) ERROR IS LARGE
+19 19 WEIRD AVERAGING KERNELS
+20 20 ICE PRESENCE DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40056.table b/definitions/bufr/tables/0/wmo/41/codetables/40056.table
new file mode 100644
index 000000000..f4a31d340
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40056.table
@@ -0,0 +1,4 @@
+0 0 USE NOT RECOMMENDED
+1 1 USE WITH CAUTION
+2 2 BEST QUALITY
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40057.table b/definitions/bufr/tables/0/wmo/41/codetables/40057.table
new file mode 100644
index 000000000..c8a50e778
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40057.table
@@ -0,0 +1,30 @@
+1 1 AN ERROR HAS BEEN DETECTED
+2 2 MESSAGE FROM L1
+3 3 MESSAGE FROM L2
+4 4 MESSAGE FROM ANCILLARY DATA
+5 5 MESSAGE FROM FITTING PROCEDURE
+6 6 RESERVED
+7 7 BAD L1 OR L2 FLAG RAISED
+8 8 LEVEL 2 NOT FULLY TRUSTED
+9 9 MISSING TEMPERATURE OR HUMIDITY LEVELS IN THE VERTICAL PROFILE
+10 10 MISSING SURFACE PRESSURE VALUE
+11 11 RADIANCE FILTERING
+12 12 POLAR REGIONS
+13 13 LOCATION IN THE NIGHT
+14 14 NEGATIVE ALTITUDE
+15 15 CLOUD COVERED SCENE
+16 16 SCENE ABOVE THE SEA
+17 17 SCENE ABOVE DESERT
+18 18 MISSING SKIN TEMPERATURE
+19 19 RETRIEVED SKIN TEMPERATURE TOO DIFFERENT FROM MODEL
+20 20 SPECTRAL LINE CONTRAST TOO WEAK
+21 21 MAXIMUM NUMBER OF ITERATIONS EXCEEDS
+22 22 NEGATIVE PARTIAL COLUMNS
+23 23 MATRIX ILL CONDITIONED
+24 24 FIT DIVERGED
+25 25 ERROR IN GSL USAGE
+26 26 RESIDUALS BIASED
+27 27 RESIDUALS SLOPED
+28 28 RESIDUALS RMS ERROR IS LARGE
+29 29 WEIRD AVERAGING KERNELS
+30 30 ICE PRESENCE DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40068.table b/definitions/bufr/tables/0/wmo/41/codetables/40068.table
new file mode 100644
index 000000000..0b1484e0b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40068.table
@@ -0,0 +1,4 @@
+0 0 VALUES CALCULATED WITH IASI L2
+1 1 PRESSURE AND TEMPERATURE PROFILES MISSING IN IASI L2 DATA; MODEL/FORECAST DATA USED INSTEAD
+2 2 BEST QUALITY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40074.table b/definitions/bufr/tables/0/wmo/41/codetables/40074.table
new file mode 100644
index 000000000..911a95245
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40074.table
@@ -0,0 +1,10 @@
+1 1 INCOMPATIBILITY OF A SCAN ANGLE FOR ELECTROENCEPHALOGRAM
+2 2 CALIBRATION FAILURE (LIMIT OF BLACK BODY TEMPERATURE REACHED, NOT ENOUGH SOURCES FOR INTERFEROMETRY, ETC.)
+3 3 GEOLOCATION EXECUTED TAKING INTO ACCOUNT THE ORIENTATION OF THE SPACECRAFT AND USING THE STAR CATALOGUE
+4 4 HIGH LEVEL OF CRYOGENIC SEDIMENT REACHED, REQUIRING OUTGASSING OF THE RADIATION COOLER. SET WHEN NESR LEVEL OF THE ICE COVER THRESHOLD CROSSED
+5 5 INTERFEROMETRY PACKAGE FLAG
+6 6 GENERAL ACCURACY FLAG
+7 7 NOISE PRESENT DURING THE INTERFEROMETRY
+8 8 OUTGASSING OF THE RADIATION COOLER
+9 9 FLAG PRECEDING THE FIRST 24 HOURS/DAY MARK (SET TO ON AS A RULE)
+10 10 TELEMETRY PACKAGE FLAG
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/40080.table b/definitions/bufr/tables/0/wmo/41/codetables/40080.table
new file mode 100644
index 000000000..b62c5f888
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/40080.table
@@ -0,0 +1,4 @@
+1 1 THIN CIRRUS DETECTION EXECUTED
+2 2 THIN CIRRUS DETECTION INDICATES A CLOUD
+3 3 AEROSOL DUST DETECTION EXECUTED
+4 4 AEROSOL DUST DETECTED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/4059.table b/definitions/bufr/tables/0/wmo/41/codetables/4059.table
new file mode 100644
index 000000000..91fc6f4f9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/4059.table
@@ -0,0 +1,5 @@
+1 1 0000 UTC
+2 2 0600 UTC
+3 3 1200 UTC
+4 4 1800 UTC
+5 5 OTHER HOURS
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/4080.table b/definitions/bufr/tables/0/wmo/41/codetables/4080.table
new file mode 100644
index 000000000..84caf2108
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/4080.table
@@ -0,0 +1,6 @@
+0 0 SPOT VALUES
+1 1 LESS THAN 15 MINUTES
+2 2 FROM 15 TO 45 MINUTES
+3 3 MORE THAN 45 MINUTES
+9 9 DATA NOT AVAILABLE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/42004.table b/definitions/bufr/tables/0/wmo/41/codetables/42004.table
new file mode 100644
index 000000000..15a91da16
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/42004.table
@@ -0,0 +1,3 @@
+0 0 WAVE DIRECTION RESOLVED
+1 1 180-DEGREE AMBIGUITY NOT RESOLVED
+15 15 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/5069.table b/definitions/bufr/tables/0/wmo/41/codetables/5069.table
new file mode 100644
index 000000000..24c2f5bbb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/5069.table
@@ -0,0 +1,4 @@
+0 0 MIE
+1 1 RAYLEIGH
+2 2 CROSS POLAR
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8001.table b/definitions/bufr/tables/0/wmo/41/codetables/8001.table
new file mode 100644
index 000000000..6210da3b3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8001.table
@@ -0,0 +1,6 @@
+1 1 SURFACE
+2 2 STANDARD LEVEL
+3 3 TROPOPAUSE LEVEL
+4 4 MAXIMUM WIND LEVEL
+5 5 SIGNIFICANT LEVEL, TEMPERATURE AND/OR RELATIVE HUMIDITY
+6 6 SIGNIFICANT LEVEL, WIND
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8002.table b/definitions/bufr/tables/0/wmo/41/codetables/8002.table
new file mode 100644
index 000000000..6ab4fd72d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8002.table
@@ -0,0 +1,19 @@
+0 0 OBSERVING RULES FOR BASE OF LOWEST CLOUD AND CLOUD TYPES OF FM 12 SYNOP AND FM 13 SHIP APPLY
+1 1 FIRST NON-CUMULONIMBUS SIGNIFICANT LAYER
+2 2 SECOND NON-CUMULONIMBUS SIGNIFICANT LAYER
+3 3 THIRD NON-CUMULONIMBUS SIGNIFICANT LAYER
+4 4 CUMULONIMBUS LAYER
+5 5 CEILING
+6 6 CLOUDS NOT DETECTED BELOW THE FOLLOWING HEIGHT(S)
+7 7 LOW CLOUD
+8 8 MIDDLE CLOUD
+9 9 HIGH CLOUD
+10 10 CLOUD LAYER WITH BASE BELOW AND TOP ABOVE THE STATION
+11 11 CLOUD LAYER WITH BASE AND TOP BELOW THE STATION LEVEL
+20 20 NO CLOUDS DETECTED BY THE CLOUD DETECTION SYSTEM
+21 21 FIRST INSTRUMENT DETECTED CLOUD LAYER
+22 22 SECOND INSTRUMENT DETECTED CLOUD LAYER
+23 23 THIRD INSTRUMENT DETECTED CLOUD LAYER
+24 24 FOURTH INSTRUMENT DETECTED CLOUD LAYER
+62 62 VALUE NOT APPLICABLE
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8003.table b/definitions/bufr/tables/0/wmo/41/codetables/8003.table
new file mode 100644
index 000000000..373135140
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8003.table
@@ -0,0 +1,12 @@
+0 0 SURFACE
+1 1 BASE OF SATELLITE SOUNDING
+2 2 CLOUD TOP
+3 3 TROPOPAUSE
+4 4 PRECIPITABLE WATER
+5 5 SOUNDING RADIANCES
+6 6 MEAN TEMPERATURES
+7 7 OZONE
+8 8 LOW CLOUD
+9 9 MED CLOUD
+10 10 HIGH CLOUD
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8004.table b/definitions/bufr/tables/0/wmo/41/codetables/8004.table
new file mode 100644
index 000000000..2a8925eeb
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8004.table
@@ -0,0 +1,6 @@
+2 2 UNSTEADY (UNS)
+3 3 LEVEL FLIGHT, ROUTINE OBSERVATION (LVR)
+4 4 LEVEL FLIGHT, HIGHEST WIND ENCOUNTERED (LVW)
+5 5 ASCENDING (ASC)
+6 6 DESCENDING (DES)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8005.table b/definitions/bufr/tables/0/wmo/41/codetables/8005.table
new file mode 100644
index 000000000..587ea9924
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8005.table
@@ -0,0 +1,7 @@
+0 0 RESERVED
+1 1 STORM CENTRE
+2 2 OUTER LIMIT OR EDGE OF STORM
+3 3 LOCATION OF MAXIMUM WIND
+4 4 LOCATION OF THE STORM IN THE PERTURBED ANALYSIS
+5 5 LOCATION OF THE STORM IN THE ANALYSIS
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8006.table b/definitions/bufr/tables/0/wmo/41/codetables/8006.table
new file mode 100644
index 000000000..9f56c628d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8006.table
@@ -0,0 +1,8 @@
+1 1 SURFACE
+2 2 STANDARD LEVEL
+3 3 TROPOPAUSE LEVEL
+4 4 PROMINENT MAXIMUM LEVEL
+5 5 PROMINENT MINIMUM LEVEL
+6 6 MINIMUM PRESSURE LEVEL
+7 7 RESERVED
+8 8 LEVEL OF UNDETERMINED SIGNIFICANCE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8007.table b/definitions/bufr/tables/0/wmo/41/codetables/8007.table
new file mode 100644
index 000000000..3e4d2cc3c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8007.table
@@ -0,0 +1,5 @@
+0 0 POINT
+1 1 LINE
+2 2 AREA
+3 3 VOLUME
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8008.table b/definitions/bufr/tables/0/wmo/41/codetables/8008.table
new file mode 100644
index 000000000..2714b5aa2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8008.table
@@ -0,0 +1,8 @@
+1 1 SURFACE
+2 2 STANDARD LEVEL
+3 3 TROPOPAUSE LEVEL
+4 4 LEVEL OF BETA RADIATION MAXIMUM
+5 5 LEVEL OF GAMMA RADIATION MAXIMUM
+6 6 MINIMUM PRESSURE LEVEL
+7 7 RESERVED
+8 8 LEVEL OF UNDETERMINED SIGNIFICANCE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8009.table b/definitions/bufr/tables/0/wmo/41/codetables/8009.table
new file mode 100644
index 000000000..b03398230
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8009.table
@@ -0,0 +1,16 @@
+0 0 LEVEL FLIGHT, ROUTINE OBSERVATION, UNSTEADY
+1 1 LEVEL FLIGHT, HIGHEST WIND ENCOUNTERED, UNSTEADY
+2 2 UNSTEADY (UNS)
+3 3 LEVEL FLIGHT, ROUTINE OBSERVATION (LVR)
+4 4 LEVEL FLIGHT, HIGHEST WIND ENCOUNTERED (LVW)
+5 5 ASCENDING (ASC)
+6 6 DESCENDING (DES)
+7 7 ASCENDING, OBSERVATION INTERVALS SELECTED BY TIME INCREMENTS
+8 8 ASCENDING, OBSERVATION INTERVALS SELECTED BY TIME INCREMENTS, UNSTEADY
+9 9 ASCENDING, OBSERVATION INTERVALS SELECTED BY PRESSURE INCREMENTS
+10 10 ASCENDING, OBSERVATION INTERVALS SELECTED BY PRESSURE INCREMENTS, UNSTEADY
+11 11 DESCENDING, OBSERVATION INTERVALS SELECTED BY TIME INCREMENTS
+12 12 DESCENDING, OBSERVATION INTERVALS SELECTED BY TIME INCREMENTS, UNSTEADY
+13 13 DESCENDING, OBSERVATION INTERVALS SELECTED BY PRESSURE INCREMENTS
+14 14 DESCENDING, OBSERVATION INTERVALS SELECTED BY PRESSURE INCREMENTS, UNSTEADY
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8010.table b/definitions/bufr/tables/0/wmo/41/codetables/8010.table
new file mode 100644
index 000000000..3c5fe71f3
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8010.table
@@ -0,0 +1,14 @@
+0 0 RESERVED
+1 1 BARE SOIL
+2 2 BARE ROCK
+3 3 LAND GRASS COVER
+4 4 WATER (LAKE, SEA)
+5 5 FLOOD WATER UNDERNEATH
+6 6 SNOW
+7 7 ICE
+8 8 RUNWAY OR ROAD
+9 9 SHIP OR PLATFORM DECK IN STEEL
+10 10 SHIP OR PLATFORM DECK IN WOOD
+11 11 SHIP OR PLATFORM DECK PARTLY COVERED WITH RUBBER MAT
+12 12 BUILDING ROOF
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8011.table b/definitions/bufr/tables/0/wmo/41/codetables/8011.table
new file mode 100644
index 000000000..e7a822114
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8011.table
@@ -0,0 +1,27 @@
+0 0 QUASI-STATIONARY FRONT AT THE SURFACE
+1 1 QUASI-STATIONARY FRONT ABOVE THE SURFACE
+2 2 WARM FRONT AT THE SURFACE
+3 3 WARM FRONT ABOVE THE SURFACE
+4 4 COLD FRONT AT THE SURFACE
+5 5 COLD FRONT ABOVE THE SURFACE
+6 6 OCCLUSION
+7 7 INSTABILITY LINE
+8 8 INTERTROPICAL FRONT
+9 9 CONVERGENCE LINE
+10 10 JET STREAM
+11 11 CLOUD CLEAR
+12 12 CLOUD
+13 13 TURBULENCE
+14 14 STORM
+15 15 AIRFRAME ICING
+16 16 PHENOMENON
+17 17 VOLCANO
+18 18 ATMOSPHERICS
+19 19 RESERVED
+20 20 SPECIAL CLOUDS
+21 21 THUNDERSTORM
+22 22 TROPICAL CYCLONE
+23 23 MOUNTAIN WAVE
+24 24 DUSTSTORM
+25 25 SANDSTORM
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8012.table b/definitions/bufr/tables/0/wmo/41/codetables/8012.table
new file mode 100644
index 000000000..769bc0bb7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8012.table
@@ -0,0 +1,4 @@
+0 0 LAND
+1 1 SEA
+2 2 COAST
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8013.table b/definitions/bufr/tables/0/wmo/41/codetables/8013.table
new file mode 100644
index 000000000..e18d2959b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8013.table
@@ -0,0 +1,4 @@
+0 0 NIGHT
+1 1 DAY
+2 2 TWILIGHT
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8014.table b/definitions/bufr/tables/0/wmo/41/codetables/8014.table
new file mode 100644
index 000000000..e6f2e46b6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8014.table
@@ -0,0 +1,10 @@
+0 0 10-MINUTE MEAN VALUE - NORMAL VALUE
+1 1 10-MINUTE MEAN VALUE - ABOVE THE UPPER LIMIT FOR ASSESSMENTS OF RVR (P)
+2 2 10-MINUTE MEAN VALUE - BELOW THE LOWER LIMIT FOR ASSESSMENTS OF RVR (M)
+3 3 ONE-MINUTE MINIMUM VALUE - NORMAL VALUE
+4 4 ONE-MINUTE MINIMUM VALUE - ABOVE THE UPPER LIMIT FOR ASSESSMENTS OF RVR (P)
+5 5 ONE-MINUTE MINIMUM VALUE - BELOW THE LOWER LIMIT FOR ASSESSMENTS OF RVR (M)
+6 6 ONE-MINUTE MAXIMUM VALUE - NORMAL VALUE
+7 7 ONE-MINUTE MAXIMUM VALUE - ABOVE THE UPPER LIMIT FOR ASSESSMENTS OF RVR (P)
+8 8 ONE-MINUTE MAXIMUM VALUE - BELOW THE LOWER LIMIT FOR ASSESSMENTS OF RVR (M)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8015.table b/definitions/bufr/tables/0/wmo/41/codetables/8015.table
new file mode 100644
index 000000000..6830b9591
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8015.table
@@ -0,0 +1,4 @@
+0 0 SINGLE SENSOR
+1 1 PRIMARY SENSOR
+2 2 SECONDARY SENSOR (BACKUP)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8016.table b/definitions/bufr/tables/0/wmo/41/codetables/8016.table
new file mode 100644
index 000000000..6b8a1fa66
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8016.table
@@ -0,0 +1,5 @@
+0 0 NOSIG
+1 1 BECMG
+2 2 TEMPO
+3 3 FM
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8017.table b/definitions/bufr/tables/0/wmo/41/codetables/8017.table
new file mode 100644
index 000000000..b3156f87e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8017.table
@@ -0,0 +1,4 @@
+0 0 FM
+1 1 TL
+2 2 AT
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8018.table b/definitions/bufr/tables/0/wmo/41/codetables/8018.table
new file mode 100644
index 000000000..f91e554ea
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8018.table
@@ -0,0 +1,4 @@
+1 1 LAND IS PRESENT
+2 2 SURFACE ICE MAP INDICATES ICE IS PRESENT
+11 11 ICE MAP DATA NOT AVAILABLE
+12 12 ATTENUATION MAP DATA NOT AVAILABLE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8019.table b/definitions/bufr/tables/0/wmo/41/codetables/8019.table
new file mode 100644
index 000000000..4ed413301
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8019.table
@@ -0,0 +1,8 @@
+0 0 RESERVED
+1 1 ATS (AIR TRAFFIC SERVICE) UNIT SERVING FIR (FLIGHT INFORMATION REGION)
+2 2 FIR (FLIGHT INFORMATION REGION)
+3 3 UIR (UPPER FLIGHT INFORMATION REGION)
+4 4 CTA (CONTROL AREA)
+5 5 VAAC (VOLCANIC ASH ADVISORY CENTRE)
+6 6 MWO (METEOROLOGICAL WATCH OFFICE) ISSUING SIGMET
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8021.table b/definitions/bufr/tables/0/wmo/41/codetables/8021.table
new file mode 100644
index 000000000..8fbd35dd4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8021.table
@@ -0,0 +1,32 @@
+0 0 RESERVED
+1 1 TIME SERIES
+2 2 TIME AVERAGED
+3 3 ACCUMULATED
+4 4 FORECAST
+5 5 FORECAST TIME SERIES
+6 6 FORECAST TIME AVERAGED
+7 7 FORECAST ACCUMULATED
+8 8 ENSEMBLE MEAN
+9 9 ENSEMBLE MEAN TIME SERIES
+10 10 ENSEMBLE MEAN TIME AVERAGED
+11 11 ENSEMBLE MEAN ACCUMULATED
+12 12 ENSEMBLE MEAN FORECAST
+13 13 ENSEMBLE MEAN FORECAST TIME SERIES
+14 14 ENSEMBLE MEAN FORECAST TIME AVERAGED
+15 15 ENSEMBLE MEAN FORECAST ACCUMULATED
+16 16 ANALYSIS
+17 17 START OF PHENOMENON
+18 18 RADIOSONDE LAUNCH TIME
+19 19 START OF ORBIT
+20 20 END OF ORBIT
+21 21 TIME OF ASCENDING NODE
+22 22 TIME OF OCCURRENCE OF WIND SHIFT
+23 23 MONITORING PERIOD
+24 24 AGREED TIME LIMIT FOR REPORT RECEPTION
+25 25 NOMINAL REPORTING TIME
+26 26 TIME OF LAST KNOWN POSITION
+27 27 FIRST GUESS
+28 28 START OF SCAN
+29 29 END OF SCAN OR TIME OF ENDING
+30 30 TIME OF OCCURRENCE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8023.table b/definitions/bufr/tables/0/wmo/41/codetables/8023.table
new file mode 100644
index 000000000..4f78743a5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8023.table
@@ -0,0 +1,15 @@
+2 2 MAXIMUM VALUE
+3 3 MINIMUM VALUE
+4 4 MEAN VALUE
+5 5 MEDIAN VALUE
+6 6 MODAL VALUE
+7 7 MEAN ABSOLUTE ERROR
+8 8 RESERVED
+9 9 BEST ESTIMATE OF STANDARD DEVIATION (N-1)
+10 10 STANDARD DEVIATION (N)
+11 11 HARMONIC MEAN
+12 12 ROOT-MEAN-SQUARE VECTOR ERROR
+13 13 ROOT-MEAN-SQUARE
+14 14 ROOT-MEAN-SQUARE ERROR
+32 32 VECTOR MEAN
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8024.table b/definitions/bufr/tables/0/wmo/41/codetables/8024.table
new file mode 100644
index 000000000..377858bb1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8024.table
@@ -0,0 +1,12 @@
+2 2 OBSERVED MINUS MAXIMUM
+3 3 OBSERVED MINUS MINIMUM
+4 4 OBSERVED MINUS MEAN
+5 5 OBSERVED MINUS MEDIAN
+6 6 OBSERVED MINUS MODE
+11 11 OBSERVED MINUS CLIMATOLOGY (ANOMALY)
+12 12 OBSERVED MINUS ANALYSED VALUE
+13 13 OBSERVED MINUS INITIALIZED ANALYSED VALUE
+14 14 OBSERVED MINUS FORECAST VALUE
+21 21 OBSERVED MINUS INTERPOLATED VALUE
+22 22 OBSERVED MINUS HYDROSTATICALLY CALCULATED VALUE
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8025.table b/definitions/bufr/tables/0/wmo/41/codetables/8025.table
new file mode 100644
index 000000000..1d88fa54f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8025.table
@@ -0,0 +1,5 @@
+0 0 UNIVERSAL TIME COORDINATED (UTC) MINUS LOCAL STANDARD TIME (LST)
+1 1 LOCAL STANDARD TIME
+2 2 UNIVERSAL TIME COORDINATED (UTC) MINUS SATELLITE CLOCK
+5 5 TIME DIFFERENCE FROM EDGE OF PROCESSING SEGMENT
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8026.table b/definitions/bufr/tables/0/wmo/41/codetables/8026.table
new file mode 100644
index 000000000..9bcef7864
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8026.table
@@ -0,0 +1,5 @@
+0 0 AVERAGING KERNEL MATRIX
+1 1 CORRELATION MATRIX (C)
+2 2 LOWER TRIANGULAR CORRELATION MATRIX SQUARE ROOT (L FROM C=LLT)
+3 3 INVERSE OF LOWER TRIANGULAR CORRELATION MATRIX SQUARE ROOT (L-1)
+63 63 MISSING OR UNDEFINED SIGNIFICANCE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8029.table b/definitions/bufr/tables/0/wmo/41/codetables/8029.table
new file mode 100644
index 000000000..ef493dbde
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8029.table
@@ -0,0 +1,24 @@
+0 0 OPEN OCEAN OR SEMI-ENCLOSED SEA
+1 1 ENCLOSED SEA OR LAKE
+2 2 CONTINENTAL ICE
+3 3 LAND
+4 4 LOW INLAND (BELOW SEA LEVEL)
+5 5 MIX OF LAND AND WATER
+6 6 MIX OF LAND AND LOW INLAND
+11 11 RIVER
+12 12 LAKE
+13 13 SEA
+14 14 GLACIER
+15 15 URBAN LAND
+16 16 RURAL LAND
+17 17 SUBURBAN LAND
+18 18 SEA ICE
+19 19 FOREST
+20 20 SHRUBLANDS
+21 21 SAVANNA
+22 22 DESERT
+23 23 GRASSLANDS
+24 24 WETLANDS
+25 25 SNOW/ICE
+26 26 COAST
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8032.table b/definitions/bufr/tables/0/wmo/41/codetables/8032.table
new file mode 100644
index 000000000..712400dd1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8032.table
@@ -0,0 +1,7 @@
+0 0 ROUTINE OPERATION
+1 1 EVENT TRIGGERED BY STORM SURGE
+2 2 EVENT TRIGGERED BY TSUNAMI
+3 3 EVENT TRIGGERED MANUALLY
+4 4 INSTALLATION TESTING
+5 5 MAINTENANCE TESTING
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8033.table b/definitions/bufr/tables/0/wmo/41/codetables/8033.table
new file mode 100644
index 000000000..1c695372b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8033.table
@@ -0,0 +1,6 @@
+0 0 RESERVED
+1 1 PERCENTAGE CONFIDENCE CALCULATED USING CLOUD FRACTION
+2 2 PERCENTAGE CONFIDENCE CALCULATED USING STANDARD DEVIATION OF TEMPERATURE
+3 3 PERCENTAGE CONFIDENCE CALCULATED USING PROBABILITY OF CLOUD CONTAMINATION
+4 4 PERCENTAGE CONFIDENCE CALCULATED USING NORMALITY OF DISTRIBUTION
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8034.table b/definitions/bufr/tables/0/wmo/41/codetables/8034.table
new file mode 100644
index 000000000..879f27400
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8034.table
@@ -0,0 +1,10 @@
+0 0 SECONDARY SAMPLING: AVERAGED
+1 1 SECONDARY SAMPLING: DISCRETE
+2 2 SECONDARY SAMPLING: MIXED
+3 3 NEAR-SURFACE SAMPLING: AVERAGED, PUMPED
+4 4 NEAR-SURFACE SAMPLING: AVERAGED, UNPUMPED
+5 5 NEAR-SURFACE SAMPLING: DISCRETE, PUMPED
+6 6 NEAR-SURFACE SAMPLING: DISCRETE, UNPUMPED
+7 7 NEAR-SURFACE SAMPLING: MIXED, PUMPED
+8 8 NEAR-SURFACE SAMPLING: MIXED, UNPUMPED
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8035.table b/definitions/bufr/tables/0/wmo/41/codetables/8035.table
new file mode 100644
index 000000000..3d641fd15
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8035.table
@@ -0,0 +1,8 @@
+0 0 GLOBAL
+1 1 REGIONAL
+2 2 NATIONAL
+3 3 SPECIAL
+4 4 BILATERAL
+5 5 RESERVED
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8036.table b/definitions/bufr/tables/0/wmo/41/codetables/8036.table
new file mode 100644
index 000000000..6436989e6
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8036.table
@@ -0,0 +1,8 @@
+0 0 WMO SECRETARIAT
+1 1 WMO
+2 2 RSMC
+3 3 NMC
+4 4 RTH
+5 5 OBSERVING SITE
+6 6 OTHER
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8037.table b/definitions/bufr/tables/0/wmo/41/codetables/8037.table
new file mode 100644
index 000000000..a5f9be382
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8037.table
@@ -0,0 +1,4 @@
+0 0 MANUFACTURER'S BASELINE CHECK UNIT
+1 1 WEATHER SCREEN
+2 2 GRUAN STANDARD HUMIDITY CHAMBER
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8038.table b/definitions/bufr/tables/0/wmo/41/codetables/8038.table
new file mode 100644
index 000000000..aa4d7b77b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8038.table
@@ -0,0 +1,3 @@
+0 0 VERIFIED INSTRUMENT READING
+1 1 REFERENCE INSTRUMENT READING
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8039.table b/definitions/bufr/tables/0/wmo/41/codetables/8039.table
new file mode 100644
index 000000000..f4403c63d
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8039.table
@@ -0,0 +1,8 @@
+0 0 ISSUE TIME OF FORECAST
+1 1 TIME OF COMMENCEMENT OF PERIOD OF THE FORECAST
+2 2 TIME OF ENDING OF PERIOD OF THE FORECAST
+3 3 FORECAST TIME OF MAXIMUM TEMPERATURE
+4 4 FORECAST TIME OF MINIMUM TEMPERATURE
+5 5 TIME OF BEGINNING OF THE FORECAST CHANGE
+6 6 TIME OF ENDING OF THE FORECAST CHANGE
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8040.table b/definitions/bufr/tables/0/wmo/41/codetables/8040.table
new file mode 100644
index 000000000..42c5af0e5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8040.table
@@ -0,0 +1,49 @@
+0 0 HIGH-RESOLUTION DATA SAMPLE
+1 1 WITHIN 20 HPA OF SURFACE
+2 2 PRESSURE LESS THAN 10 HPA (I.E., 9, 8, 7, ETC.) WHEN NO OTHER REASON APPLIES
+3 3 BASE PRESSURE LEVEL FOR STABILITY INDEX
+4 4 BEGIN DOUBTFUL TEMPERATURE, HEIGHT DATA
+5 5 BEGIN MISSING DATA (ALL ELEMENTS)
+6 6 BEGIN MISSING RELATIVE HUMIDITY DATA
+7 7 BEGIN MISSING TEMPERATURE DATA
+8 8 HIGHEST LEVEL REACHED BEFORE BALLOON DESCENT BECAUSE OF ICING OR TURBULENCE
+9 9 END DOUBTFUL TEMPERATURE, HEIGHT DATA
+10 10 END MISSING DATA (ALL ELEMENTS)
+11 11 END MISSING RELATIVE HUMIDITY DATA
+12 12 END MISSING TEMPERATURE DATA
+13 13 ZERO DEGREES CELSIUS CROSSING(S) FOR RADAT
+14 14 STANDARD PRESSURE LEVEL
+15 15 OPERATOR-ADDED LEVEL
+16 16 OPERATOR-DELETED LEVEL
+17 17 BALLOON RE-ASCENDED BEYOND PREVIOUS HIGHEST ASCENT LEVEL
+18 18 SIGNIFICANT RELATIVE HUMIDITY LEVEL
+19 19 RELATIVE HUMIDITY LEVEL SELECTION TERMINATED
+20 20 SURFACE LEVEL
+21 21 SIGNIFICANT TEMPERATURE LEVEL
+22 22 MANDATORY TEMPERATURE LEVEL
+23 23 FLIGHT TERMINATION LEVEL
+24 24 TROPOPAUSE(S)
+25 25 AIRCRAFT REPORT
+26 26 INTERPOLATED (GENERATED) LEVEL
+27 27 MANDATORY WIND LEVEL
+28 28 SIGNIFICANT WIND LEVEL
+29 29 MAXIMUM WIND LEVEL
+30 30 INCREMENTAL WIND LEVEL (FIXED REGIONAL)
+31 31 INCREMENTAL HEIGHT LEVEL (GENERATED)
+32 32 WIND TERMINATION LEVEL
+33 33 PRESSURE 100 TO 110 HPA, WHEN NO OTHER REASON APPLIES
+34 34 FREEZING LEVEL BASE
+35 35 FREEZING LEVEL TOP
+36 36 FLIGHT LEVEL BASE
+37 37 FLIGHT LEVEL TOP
+38 38 TOP OF WIND SOUNDING
+39 39 BOTTOM OF WIND SOUNDING
+40 40 SIGNIFICANT THERMODYNAMIC LEVEL (INVERSION)
+41 41 SIGNIFICANT RELATIVE HUMIDITY LEVEL (ACCORDING TO NCDC CRITERIA)
+42 42 SIGNIFICANT TEMPERATURE LEVEL (ACCORDING TO NCDC)
+43 43 BEGIN MISSING WIND DATA
+44 44 END MISSING WIND DATA
+60 60 LEVEL OF 80-KNOT ISOTACH ABOVE JET
+61 61 LEVEL OF 80-KNOT ISOTACH BELOW JET
+62 62 OTHER
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8041.table b/definitions/bufr/tables/0/wmo/41/codetables/8041.table
new file mode 100644
index 000000000..1f48fbedc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8041.table
@@ -0,0 +1,15 @@
+0 0 PARENT SITE
+1 1 OBSERVATION SITE
+2 2 BALLOON MANUFACTURE DATE
+3 3 BALLOON LAUNCH POINT
+4 4 SURFACE OBSERVATION
+5 5 SURFACE OBSERVATION DISPLACEMENT FROM LAUNCH POINT
+6 6 FLIGHT LEVEL OBSERVATION
+7 7 FLIGHT LEVEL TERMINATION POINT
+8 8 IFR CEILING AND VISIBILITY
+9 9 MOUNTAIN OBSCURATION
+10 10 STRONG SURFACE WIND
+11 11 FREEZING LEVEL
+12 12 MULTIPLE FREEZING LEVEL
+13 13 INSTRUMENT MANUFACTURE DATE
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8042.table b/definitions/bufr/tables/0/wmo/41/codetables/8042.table
new file mode 100644
index 000000000..c71709a4c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8042.table
@@ -0,0 +1,17 @@
+1 1 SURFACE
+2 2 STANDARD LEVEL
+3 3 TROPOPAUSE LEVEL
+4 4 MAXIMUM WIND LEVEL
+5 5 SIGNIFICANT TEMPERATURE LEVEL
+6 6 SIGNIFICANT HUMIDITY LEVEL
+7 7 SIGNIFICANT WIND LEVEL
+8 8 BEGINNING OF MISSING TEMPERATURE DATA
+9 9 END OF MISSING TEMPERATURE DATA
+10 10 BEGINNING OF MISSING HUMIDITY DATA
+11 11 END OF MISSING HUMIDITY DATA
+12 12 BEGINNING OF MISSING WIND DATA
+13 13 END OF MISSING WIND DATA
+14 14 TOP OF WIND SOUNDING
+15 15 LEVEL DETERMINED BY REGIONAL DECISION
+16 16 FREEZING LEVEL
+17 17 PRESSURE LEVEL ORIGINALLY INDICATED BY HEIGHT AS THE VERTICAL COORDINATE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8043.table b/definitions/bufr/tables/0/wmo/41/codetables/8043.table
new file mode 100644
index 000000000..b6975ed39
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8043.table
@@ -0,0 +1,20 @@
+0 0 OZONE
+1 1 WATER VAPOUR
+2 2 METHANE
+3 3 CARBON DIOXIDE
+4 4 CARBON MONOXIDE
+5 5 NITROGEN DIOXIDE
+6 6 NITROUS OXIDE
+7 7 FORMALDEHYDE
+8 8 SULPHUR DIOXIDE
+9 9 VOLCANIC SULPHUR DIOXIDE
+25 25 PARTICULATE MATTER < 1.0 MICRONS
+26 26 PARTICULATE MATTER < 2.5 MICRONS
+27 27 PARTICULATE MATTER < 10 MICRONS
+28 28 AEROSOLS (GENERIC)
+29 29 SMOKE (GENERIC)
+30 30 CRUSTAL MATERIAL (GENERIC DUST)
+31 31 VOLCANIC ASH
+32 32 CLOUD
+33 33 CLOUD AND AEROSOLS
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8045.table b/definitions/bufr/tables/0/wmo/41/codetables/8045.table
new file mode 100644
index 000000000..18cf53d29
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8045.table
@@ -0,0 +1,5 @@
+0 0 AEROSOLS ALL TYPES
+1 1 DESERT DUST
+2 2 BLACK CARBON
+3 3 SEA SALT
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8046.table b/definitions/bufr/tables/0/wmo/41/codetables/8046.table
new file mode 100644
index 000000000..21d0933ea
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8046.table
@@ -0,0 +1,520 @@
+0 0 OZONE
+1 1 WATER VAPOUR
+2 2 METHANE
+3 3 CARBON DIOXIDE
+4 4 CARBON MONOXIDE
+5 5 NITROGEN DIOXIDE
+6 6 NITROUS OXIDE
+7 7 FORMALDEHYDE
+8 8 SULPHUR DIOXIDE
+9 9 AMMONIA
+10 10 AMMONIUM CATION
+11 11 NITROGEN MONOXIDE
+12 12 ATOMIC OXYGEN
+13 13 NITRATE RADICAL
+14 14 HYDROPEROXYL RADICAL
+15 15 DINITROGEN PENTOXIDE
+16 16 NITROUS ACID
+17 17 NITRIC ACID
+18 18 PEROXYNITRIC ACID
+19 19 HYDROGEN PEROXIDE
+20 20 DIHYDROGEN
+21 21 ATOMIC NITROGEN
+22 22 SULPHATE ANION
+23 23 ATOMIC RADON
+24 24 MERCURY VAPOUR
+25 25 MERCURY(II) CATION
+26 26 ATOMIC CHLORINE
+27 27 CHLORINE MONOXIDE
+28 28 DICHLORINE PEROXIDE
+29 29 HYPOCHLOROUS ACID
+30 30 CHLORINE NITRATE
+31 31 CHLORINE DIOXIDE
+32 32 ATOMIC BROMINE
+33 33 BROMINE MONOXIDE
+34 34 BROMINE CHLORIDE
+35 35 HYDROGEN BROMIDE
+36 36 HYPOBROMOUS ACID
+37 37 BROMINE NITRATE
+38 38 DIOXYGEN
+39 39 NITRYL CHLORIDE
+40 40 SULPHURIC ACID
+41 41 HYDROGEN SULPHIDE
+42 42 SULPHUR TRIOXIDE
+43 43 BROMINE
+44 44 HYDROFLUORIC ACID
+45 45 SULPHUR HEXAFLUORIDE
+46 46 CHLORINE
+10000 10000 HYDROXYL RADICAL
+10001 10001 METHYL PEROXY RADICAL
+10002 10002 METHYL HYDROPEROXIDE
+10004 10004 METHANOL
+10005 10005 FORMIC ACID
+10006 10006 HYDROGEN CYANIDE
+10007 10007 ACETO NITRILE
+10008 10008 ETHANE
+10009 10009 ETHENE (= ETHYLENE)
+10010 10010 ETHYNE (= ACETYLENE)
+10011 10011 ETHANOL
+10012 10012 ACETIC ACID
+10013 10013 PEROXYACETYL NITRATE
+10014 10014 PROPANE
+10015 10015 PROPENE
+10016 10016 BUTANE (ALL ISOMERS)
+10017 10017 ISOPRENE
+10018 10018 ALPHA PINENE
+10019 10019 BETA PINENE
+10020 10020 LIMONENE
+10021 10021 BENZENE
+10022 10022 TOLUENE
+10023 10023 XYLENE
+10024 10024 METHANESULPHONIC ACID
+10025 10025 METHYLGLYOXAL (2-OXOPROPANAL)
+10026 10026 PEROXYACETYL RADICAL
+10027 10027 METHACRYLIC ACID (2-METHYLPROP-2-ENOIC ACID)
+10028 10028 METHACROLEIN (2-METHYLPROP-2-ENAL)
+10029 10029 ACETONE (PROPAN-2-ONE)
+10030 10030 ETHYL DIOXIDANYL RADICAL
+10031 10031 BUTADIENE (BUTA-1,3-DIENE)
+10032 10032 ACETALDEHYDE (ETHANAL)
+10033 10033 GLYCOLALDEHYDE (HYDROXYETHANAL)
+10034 10034 CRESOL (METHYLPHENOL), ALL ISOMERS
+10035 10035 PERACETIC ACID (ETHANEPEROXOIC ACID)
+10036 10036 2-HYDROXYETHYL OXIDANYL RADICAL
+10037 10037 2-HYDROXYETHYL DIOXIDANYL RADICAL
+10038 10038 GLYOXAL (OXALDEHYDE)
+10039 10039 ISOPROPYL DIOXIDANYL RADICAL
+10040 10040 ISOPROPYL HYDROPEROXIDE (2-HYDROPEROXYPROPANE)
+10041 10041 HYDROXYACETONE (1-HYDROXYPROPAN-2-ONE)
+10042 10042 PEROXYACETIC ACID (ETHANEPEROXOIC ACID)
+10043 10043 METHYL VINYL KETONE (BUT-3-EN-2-ONE)
+10044 10044 PHENOXY RADICAL
+10045 10045 METHYL RADICAL
+10046 10046 CARBONYL SULPHIDE (CARBON OXIDE SULPHIDE)
+10047 10047 DIBROMOMETHANE
+10048 10048 METHOXY RADICAL
+10049 10049 TRIBROMOMETHANE
+10050 10050 FORMYL RADICAL (OXOMETHYL RADICAL)
+10051 10051 HYDROXYMETHYL DIOXIDANYL RADICAL
+10052 10052 ETHYL HYDROPEROXIDE
+10053 10053 3-HYDROXYPROPYL DIOXIDANYL RADICAL
+10054 10054 3-HYDROXYPROPYL HYDROPEROXIDE
+10055 10055 METHYL-PEROXY-NITRATE (NITROPEROXY-METHANE)
+10056 10056 2-LAMBDA^1-OXIDANYLOXY-2-METHYLBUT-3-EN-1-OL (4-HYDROXY-3-METHYL-1-BUTENE-3-YLPEROXY RADICAL)
+10057 10057 2-LAMBDA^1-OXIDANYLOXY-3-METHYLBUT-3-EN-1-OL (2-HYDROXY-1-ISOPROPENYLETHYLPEROXY RADICAL)
+10058 10058 (Z)-4-HYDROPEROXY-2-METHYL-2-BUTENAL
+10059 10059 (Z)-4-HYDROPEROXY-3-METHYL-2-BUTENAL
+10500 10500 DIMETHYL SULPHIDE
+10501 10501 DMSO (DIMETHYL SULFOXIDE)
+20001 20001 HYDROGEN CHLORIDE
+20002 20002 CFC-11 (TRICHLOROFLUOROMETHANE)
+20003 20003 CFC-12 (DICHLORODIFLUOROMETHANE)
+20004 20004 CFC-113 (1,1,2-TRICHLORO-1,2,2-TRIFLUOROETHANE)
+20005 20005 CFC-113A (1,1,1-TRICHLORO-2,2,2-TRIFLUOROETHANE)
+20006 20006 CFC-114 (1,2-DICHLORO-1,1,2,2-TETRAFLUOROETHANE)
+20007 20007 CFC-115 (1-CHLORO-1,1,2,2,2-PENTAFLUOROETHANE)
+20008 20008 HCFC-22 (CHLORODIFLUOROMETHANE)
+20009 20009 HCFC-141B (1,1-DICHLORO-1-FLUOROETHANE)
+20010 20010 HCFC-142B (1-CHLORO-1,1-DIFLUOROETHANE)
+20011 20011 HALON-1202 (DIBROMODIFLUOROMETHANE)
+20012 20012 HALON-1211 (BROMOCHLORODIFLUOROMETHANE)
+20013 20013 HALON-1301 (BROMOTRIFLUOROMETHANE)
+20014 20014 HALON-2402 (1,2-DIBROMO-1,1,2,2-TETRAFLUOROETHANE)
+20015 20015 HCC-40 (METHYL CHLORIDE)
+20016 20016 HCC-10 (CARBON TETRACHLORIDE)
+20017 20017 HCC-140A (1,1,1-TRICHLOROETHANE)
+20018 20018 HBC-40B1 (METHYL BROMIDE)
+20019 20019 HCH (HEXACHLOROCYCLOHEXANE) ALL ISOMERS
+20020 20020 ALPHA-HCH (ALPHA-HEXACHLOROCYCLOHEXANE) BOTH ENANTIOMERS
+20021 20021 PCB-153 (2,2',4,4',5,5'-HEXACHLOROBIPHENYL)
+20022 20022 HCFC-141A (1,1-DICHLORO-2-FLUOROETHANE)
+30000 30000 RADIOACTIVE POLLUTANT (TRACER, DEFINED BY ORIGINATING CENTRE)
+30010 30010 TRITIUM (HYDROGEN 3)
+30011 30011 TRITIUM ORGANIC BOUNDED
+30012 30012 TRITIUM INORGANIC
+30013 30013 BERYLLIUM 7
+30014 30014 BERYLLIUM 10
+30015 30015 CARBON 14
+30016 30016 CARBON 14 CO2
+30017 30017 CARBON 14 OTHER GASES
+30018 30018 NITROGEN 13
+30019 30019 NITROGEN 16
+30020 30020 FLUORINE 18
+30021 30021 SODIUM 22
+30022 30022 PHOSPHATE 32
+30023 30023 PHOSPHATE 33
+30024 30024 SULPHUR 35
+30025 30025 CHLORINE 36
+30026 30026 POTASSIUM 40
+30027 30027 ARGON 41
+30028 30028 CALCIUM 41
+30029 30029 CALCIUM 45
+30030 30030 TITANIUM 44
+30031 30031 SCANDIUM 46
+30032 30032 VANADIUM 48
+30033 30033 VANADIUM 49
+30034 30034 CHROME 51
+30035 30035 MANGANESE 52
+30036 30036 MANGANESE 54
+30037 30037 IRON 55
+30038 30038 IRON 59
+30039 30039 COBALT 56
+30040 30040 COBALT 57
+30041 30041 COBALT 58
+30042 30042 COBALT 60
+30043 30043 NICKEL 59
+30044 30044 NICKEL 63
+30045 30045 ZINC 65
+30046 30046 GALLIUM 67
+30047 30047 GALLIUM 68
+30048 30048 GERMANIUM 68
+30049 30049 GERMANIUM 69
+30050 30050 ARSENIC 73
+30051 30051 SELENIUM 75
+30052 30052 SELENIUM 79
+30053 30053 RUBIDIUM 81
+30054 30054 RUBIDIUM 83
+30055 30055 RUBIDIUM 84
+30056 30056 RUBIDIUM 86
+30057 30057 RUBIDIUM 87
+30058 30058 RUBIDIUM 88
+30059 30059 KRYPTON 85
+30060 30060 KRYPTON 85 METASTABLE
+30061 30061 KRYPTON 87
+30062 30062 KRYPTON 88
+30063 30063 KRYPTON 89
+30064 30064 STRONTIUM 85
+30065 30065 STRONTIUM 89
+30066 30066 STRONTIUM 89/90
+30067 30067 STRONTIUM 90
+30068 30068 STRONTIUM 91
+30069 30069 STRONTIUM 92
+30070 30070 YTTRIUM 87
+30071 30071 YTTRIUM 88
+30072 30072 YTTRIUM 90
+30073 30073 YTTRIUM 91
+30074 30074 YTTRIUM 91 METASTABLE
+30075 30075 YTTRIUM 92
+30076 30076 YTTRIUM 93
+30077 30077 ZIRCONIUM 89
+30078 30078 ZIRCONIUM 93
+30079 30079 ZIRCONIUM 95
+30080 30080 ZIRCONIUM 97
+30081 30081 NIOBIUM 93 METASTABLE
+30082 30082 NIOBIUM 94
+30083 30083 NIOBIUM 95
+30084 30084 NIOBIUM 95 METASTABLE
+30085 30085 NIOBIUM 97
+30086 30086 NIOBIUM 97 METASTABLE
+30087 30087 MOLYBDENUM 93
+30088 30088 MOLYBDENUM 99
+30089 30089 TECHNETIUM 95 METASTABLE
+30090 30090 TECHNETIUM 96
+30091 30091 TECHNETIUM 99
+30092 30092 TECHNETIUM 99 METASTABLE
+30093 30093 RHODIUM 99
+30094 30094 RHODIUM 101
+30095 30095 RHODIUM 102 METASTABLE
+30096 30096 RHODIUM 103 METASTABLE
+30097 30097 RHODIUM 105
+30098 30098 RHODIUM 106
+30099 30099 PALLADIUM 100
+30100 30100 PALLADIUM 103
+30101 30101 PALLADIUM 107
+30102 30102 RUTHENIUM 103
+30103 30103 RUTHENIUM 105
+30104 30104 RUTHENIUM 106
+30105 30105 SILVER 108 METASTABLE
+30106 30106 SILVER 110 METASTABLE
+30107 30107 CADMIUM 109
+30108 30108 CADMIUM 113 METASTABLE
+30109 30109 CADMIUM 115 METASTABLE
+30110 30110 INDIUM 114 METASTABLE
+30111 30111 TIN 113
+30112 30112 TIN 119 METASTABLE
+30113 30113 TIN 121 METASTABLE
+30114 30114 TIN 122
+30115 30115 TIN 123
+30116 30116 TIN 126
+30117 30117 ANTIMONY 124
+30118 30118 ANTIMONY 125
+30119 30119 ANTIMONY 126
+30120 30120 ANTIMONY 127
+30121 30121 ANTIMONY 129
+30122 30122 TELLURIUM 123 METASTABLE
+30123 30123 TELLURIUM 125 METASTABLE
+30124 30124 TELLURIUM 127
+30125 30125 TELLURIUM 127 METASTABLE
+30126 30126 TELLURIUM 129
+30127 30127 TELLURIUM 129 METASTABLE
+30128 30128 TELLURIUM 131 METASTABLE
+30129 30129 TELLURIUM 132
+30130 30130 IODINE 123
+30131 30131 IODINE 124
+30132 30132 IODINE 125
+30133 30133 IODINE 126
+30134 30134 IODINE 129
+30135 30135 IODINE 129 ELEMENTARY GASEOUS
+30136 30136 IODINE 129 ORGANIC BOUNDED
+30137 30137 IODINE 131
+30138 30138 IODINE 131 ELEMENTARY GASEOUS
+30139 30139 IODINE 131 ORGANIC BOUNDED
+30140 30140 IODINE 131 GASEOUS ELEMENTARY AND ORGANIC BOUNDED
+30141 30141 IODINE 131 AEROSOL
+30142 30142 IODINE 132
+30143 30143 IODINE 132 ELEMENTARY GASEOUS
+30144 30144 IODINE 132 ORGANIC BOUNDED
+30145 30145 IODINE 132 GASEOUS ELEMENTARY AND ORGANIC BOUNDED
+30146 30146 IODINE 132 AEROSOL
+30147 30147 IODINE 133
+30148 30148 IODINE 133 ELEMENTARY GASEOUS
+30149 30149 IODINE 133 ORGANIC BOUNDED
+30150 30150 IODINE 133 GASEOUS ELEMENTARY AND ORGANIC BOUNDED
+30151 30151 IODINE 133 AEROSOL
+30152 30152 IODINE 134
+30153 30153 IODINE 134 ELEMENTARY GASEOUS
+30154 30154 IODINE 134 ORGANIC BOUNDED
+30155 30155 IODINE 135
+30156 30156 IODINE 135 ELEMENTARY GASEOUS
+30157 30157 IODINE 135 ORGANIC BOUNDED
+30158 30158 IODINE 135 GASEOUS ELEMENTARY AND ORGANIC BOUNDED
+30159 30159 IODINE 135 AEROSOL
+30160 30160 XENON 131 METASTABLE
+30161 30161 XENON 133
+30162 30162 XENON 133 METASTABLE
+30163 30163 XENON 135
+30164 30164 XENON 135 METASTABLE
+30165 30165 XENON 137
+30166 30166 XENON 138
+30167 30167 XENON SUM OF ALL XENON ISOTOPES
+30168 30168 CAESIUM 131
+30169 30169 CAESIUM 134
+30170 30170 CAESIUM 135
+30171 30171 CAESIUM 136
+30172 30172 CAESIUM 137
+30173 30173 BARIUM 133
+30174 30174 BARIUM 137 METASTABLE
+30175 30175 BARIUM 140
+30176 30176 CERIUM 139
+30177 30177 CERIUM 141
+30178 30178 CERIUM 143
+30179 30179 CERIUM 144
+30180 30180 LANTHANUM 140
+30181 30181 LANTHANUM 141
+30182 30182 PRASEODYMIUM 143
+30183 30183 PRASEODYMIUM 144
+30184 30184 PRASEODYMIUM 144 METASTABLE
+30185 30185 SAMARIUM 145
+30186 30186 SAMARIUM 147
+30187 30187 SAMARIUM 151
+30188 30188 NEODYMIUM 147
+30189 30189 PROMETHIUM 146
+30190 30190 PROMETHIUM 147
+30191 30191 PROMETHIUM 151
+30192 30192 EUROPIUM 152
+30193 30193 EUROPIUM 154
+30194 30194 EUROPIUM 155
+30195 30195 GADOLINIUM 153
+30196 30196 TERBIUM 160
+30197 30197 HOLMIUM 166 METASTABLE
+30198 30198 THULIUM 170
+30199 30199 YTTERBIUM 169
+30200 30200 HAFNIUM 175
+30201 30201 HAFNIUM 181
+30202 30202 TANTALUM 179
+30203 30203 TANTALUM 182
+30204 30204 RHENIUM 184
+30205 30205 IRIDIUM 192
+30206 30206 MERCURY 203
+30207 30207 THALLIUM 204
+30208 30208 THALLIUM 207
+30209 30209 THALLIUM 208
+30210 30210 THALLIUM 209
+30211 30211 BISMUTH 205
+30212 30212 BISMUTH 207
+30213 30213 BISMUTH 210
+30214 30214 BISMUTH 211
+30215 30215 BISMUTH 212
+30216 30216 BISMUTH 213
+30217 30217 BISMUTH 214
+30218 30218 POLONIUM 208
+30219 30219 POLONIUM 210
+30220 30220 POLONIUM 212
+30221 30221 POLONIUM 213
+30222 30222 POLONIUM 214
+30223 30223 POLONIUM 215
+30224 30224 POLONIUM 216
+30225 30225 POLONIUM 218
+30226 30226 LEAD 209
+30227 30227 LEAD 210
+30228 30228 LEAD 211
+30229 30229 LEAD 212
+30230 30230 LEAD 214
+30231 30231 ASTATINE 217
+30232 30232 RADON 219
+30233 30233 RADON 220
+30234 30234 RADON 222
+30235 30235 FRANCIUM 221
+30236 30236 FRANCIUM 223
+30237 30237 RADIUM 223
+30238 30238 RADIUM 224
+30239 30239 RADIUM 225
+30240 30240 RADIUM 226
+30241 30241 RADIUM 228
+30242 30242 ACTINIUM 225
+30243 30243 ACTINIUM 227
+30244 30244 ACTINIUM 228
+30245 30245 THORIUM 227
+30246 30246 THORIUM 228
+30247 30247 THORIUM 229
+30248 30248 THORIUM 230
+30249 30249 THORIUM 231
+30250 30250 THORIUM 232
+30251 30251 THORIUM 234
+30252 30252 PROTACTINIUM 231
+30253 30253 PROTACTINIUM 233
+30254 30254 PROTACTINIUM 234 METASTABLE
+30255 30255 URANIUM 232
+30256 30256 URANIUM 233
+30257 30257 URANIUM 234
+30258 30258 URANIUM 235
+30259 30259 URANIUM 236
+30260 30260 URANIUM 237
+30261 30261 URANIUM 238
+30262 30262 PLUTONIUM 236
+30263 30263 PLUTONIUM 238
+30264 30264 PLUTONIUM 239
+30265 30265 PLUTONIUM 240
+30266 30266 PLUTONIUM 241
+30267 30267 PLUTONIUM 242
+30268 30268 PLUTONIUM 244
+30269 30269 NEPTUNIUM 237
+30270 30270 NEPTUNIUM 238
+30271 30271 NEPTUNIUM 239
+30272 30272 AMERICIUM 241
+30273 30273 AMERICIUM 242
+30274 30274 AMERICIUM 242 METASTABLE
+30275 30275 AMERICIUM 243
+30276 30276 CURIUM 242
+30277 30277 CURIUM 243
+30278 30278 CURIUM 244
+30279 30279 CURIUM 245
+30280 30280 CURIUM 246
+30281 30281 CURIUM 247
+30282 30282 CURIUM 248
+30283 30283 CURIUM 243/244
+30284 30284 PLUTONIUM 238/AMERICIUM 241
+30285 30285 PLUTONIUM 239/240
+30286 30286 BERKELIUM 249
+30287 30287 CALIFORNIUM 249
+30288 30288 CALIFORNIUM 250
+30289 30289 CALIFORNIUM 252
+30290 30290 SUM AEROSOL PARTICULATES
+30291 30291 SUM IODINE
+30292 30292 SUM NOBLE GAS
+30293 30293 ACTIVATION GAS
+30294 30294 CS-137 EQUIVALENT
+30295 30295 CARBON-13
+30296 30296 LEAD
+30297 30297 TELLURIUM 131
+30298 30298 NEODYMIUM 137
+40000 40000 SINGLET SIGMA OXYGEN (DIOXYGEN (SIGMA SINGLET))
+40001 40001 SINGLET DELTA OXYGEN (DIOXYGEN (DELTA SINGLET))
+40002 40002 SINGLET EXCITED OXYGEN ATOM
+40003 40003 TRIPLET GROUND STATE OXYGEN ATOM
+60000 60000 HOX RADICAL (OH+HO2)
+60001 60001 TOTAL INORGANIC AND ORGANIC PEROXY RADICALS (HOO* + ROO*)
+60002 60002 PASSIVE OZONE
+60003 60003 NOX EXPRESSED AS NITROGEN
+60004 60004 ALL NITROGEN OXIDES (NOY) EXPRESSED AS NITROGEN
+60005 60005 TOTAL INORGANIC CHLORINE
+60006 60006 TOTAL INORGANIC BROMINE
+60007 60007 TOTAL INORGANIC CHLORINE EXCEPT HCL, CLONO2: CLOX
+60008 60008 TOTAL INORGANIC BROMINE EXCEPT HBR, BRONO2: BROX
+60009 60009 LUMPED ALKANES
+60010 60010 LUMPED ALKENES
+60011 60011 LUMPED AROMATIC COMPOUNDS
+60012 60012 LUMPED TERPENES
+60013 60013 NON-METHANE VOLATILE ORGANIC COMPOUNDS EXPRESSED AS CARBON
+60014 60014 ANTHROPOGENIC NON-METHANE VOLATILE ORGANIC COMPOUNDS EXPRESSED AS CARBON
+60015 60015 BIOGENIC NON-METHANE VOLATILE ORGANIC COMPOUNDS EXPRESSED AS CARBON
+60016 60016 LUMPED OXYGENATED HYDROCARBONS
+60017 60017 NOX EXPRESSED AS NITROGEN DIOXIDE (NO2)
+60018 60018 ORGANIC ALDEHYDES
+60019 60019 ORGANIC PEROXIDES
+60020 60020 ORGANIC NITRATES
+60021 60021 ETHERS
+60022 60022 AMINES
+60023 60023 KETONES
+60024 60024 DICARBONYLS UNSATURATED
+60025 60025 HYDROXY DICARBONYLS UNSATURATED
+60026 60026 HYDROXY KETONES
+60027 60027 OXIDES
+60028 60028 PEROXYACYL NITRATES
+60029 60029 AROMATIC PEROXIDE RADICAL (ARYL DIOXYDANYL RADICALS)
+60030 60030 BIOGENIC SECONDARY ORGANIC COMPOUND
+60031 60031 ANTHROPOGENIC SECONDARY ORGANIC COMPOUND
+60032 60032 ALL HYDROXY-PEROXIDES PRODUCTS OF THE REACTION OF HYDROXY-ISOPRENE ADDUCTS WITH O2
+60033 60033 ANTHROPOGENIC VOLATILE ORGANIC COMPOUNDS
+60034 60034 BIOMASS BURNING VOLATILE ORGANIC COMPOUNDS
+62000 62000 TOTAL AEROSOL
+62001 62001 DUST DRY
+62002 62002 WATER IN AMBIENT
+62003 62003 AMMONIUM DRY
+62004 62004 NITRATE DRY
+62005 62005 NITRIC ACID TRIHYDRATE
+62006 62006 SULPHATE DRY
+62007 62007 MERCURY DRY
+62008 62008 SEA SALT DRY
+62009 62009 BLACK CARBON DRY
+62010 62010 PARTICULATE ORGANIC MATTER DRY
+62011 62011 PRIMARY PARTICULATE ORGANIC MATTER DRY
+62012 62012 SECONDARY PARTICULATE ORGANIC MATTER DRY
+62013 62013 BLACK CARBON HYDROPHILIC DRY
+62014 62014 BLACK CARBON HYDROPHOBIC DRY
+62015 62015 PARTICULATE ORGANIC MATTER HYDROPHILIC DRY
+62016 62016 PARTICULATE ORGANIC MATTER HYDROPHOBIC DRY
+62017 62017 NITRATE HYDROPHILIC DRY
+62018 62018 NITRATE HYDROPHOBIC DRY
+62019 62019 RESERVED
+62020 62020 SMOKE - HIGH ABSORPTION
+62021 62021 SMOKE - LOW ABSORPTION
+62022 62022 AEROSOL - HIGH ABSORPTION
+62023 62023 AEROSOL - LOW ABSORPTION
+62024 62024 RESERVED
+62025 62025 VOLCANIC ASH
+62026 62026 PARTICULATE MATTER (PM)
+62027 62027 RESERVED
+62028 62028 TOTAL AEROSOL HYDROPHILIC
+62029 62029 TOTAL AEROSOL HYDROPHOBIC
+62030 62030 PRIMARY PARTICULATE INORGANIC MATTER DRY
+62031 62031 SECONDARY PARTICULATE INORGANIC MATTER DRY
+62032 62032 BIOGENIC SECONDARY ORGANIC AEROSOL
+62033 62033 ANTHROPOGENIC SECONDARY ORGANIC AEROSOL
+62034 62034 RAIN WATER
+62035 62035 CLOUD WATER
+62036 62036 BROWN CARBON DRY
+62100 62100 ALNUS (ALDER) POLLEN
+62101 62101 BETULA (BIRCH) POLLEN
+62102 62102 CASTANEA (CHESTNUT) POLLEN
+62103 62103 CARPINUS (HORNBEAM) POLLEN
+62104 62104 CORYLUS (HAZEL) POLLEN
+62105 62105 FAGUS (BEECH) POLLEN
+62106 62106 FRAXINUS (ASH) POLLEN
+62107 62107 PINUS (PINE) POLLEN
+62108 62108 PLATANUS (PLANE) POLLEN
+62109 62109 POPULUS (COTTONWOOD, POPLAR) POLLEN
+62110 62110 QUERCUS (OAK) POLLEN
+62111 62111 SALIX (WILLOW) POLLEN
+62112 62112 TAXUS (YEW) POLLEN
+62113 62113 TILIA (LIME, LINDEN) POLLEN
+62114 62114 ULMUS (ELM) POLLEN
+62115 62115 OLEA (OLIVE) POLLEN
+62200 62200 AMBROSIA (RAGWEED, BURR-RAGWEED) POLLEN
+62201 62201 ARTEMISIA (SAGEBRUSH, WORMWOOD, MUGWORT) POLLEN
+62202 62202 BRASSICA (RAPE, BROCCOLI, BRUSSELS SPROUTS, CABBAGE, CAULIFLOWER, COLLARDS, KALE, KOHLRABI, MUSTARD, RUTABAGA) POLLEN
+62203 62203 PLANTAGO (PLANTAIN) POLLEN
+62204 62204 RUMEX (DOCK, SORREL) POLLEN
+62205 62205 URTICA (NETTLE) POLLEN
+62300 62300 POACEAE (GRASS FAMILY) POLLEN
+65535 65535 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8050.table b/definitions/bufr/tables/0/wmo/41/codetables/8050.table
new file mode 100644
index 000000000..4b401f1d2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8050.table
@@ -0,0 +1,11 @@
+0 0 RESERVED
+1 1 PRESSURE
+2 2 TEMPERATURE
+3 3 EXTREME TEMPERATURE
+4 4 VAPOUR PRESSURE
+5 5 PRECIPITATION
+6 6 SUNSHINE DURATION
+7 7 MAXIMUM TEMPERATURE
+8 8 MINIMUM TEMPERATURE
+9 9 WIND
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8051.table b/definitions/bufr/tables/0/wmo/41/codetables/8051.table
new file mode 100644
index 000000000..5249fe6a2
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8051.table
@@ -0,0 +1,7 @@
+1 1 PRESSURE
+2 2 TEMPERATURE
+3 3 EXTREME TEMPERATURE
+4 4 VAPOUR PRESSURE
+5 5 PRECIPITATION
+6 6 SUNSHINE DURATION
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8052.table b/definitions/bufr/tables/0/wmo/41/codetables/8052.table
new file mode 100644
index 000000000..46dcbbe21
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8052.table
@@ -0,0 +1,26 @@
+0 0 MEAN WIND SPEED OVER A 10-MINUTE PERIOD OBSERVED OR RECORDED EQUAL TO OR MORE THAN 10 M S-1 OR 20 KNOTS
+1 1 MEAN WIND SPEED OVER A 10-MINUTE PERIOD OBSERVED OR RECORDED EQUAL TO OR MORE THAN 20 M S-1 OR 40 KNOTS
+2 2 MEAN WIND SPEED OVER A 10-MINUTE PERIOD OBSERVED OR RECORDED EQUAL TO OR MORE THAN 30 M S-1 OR 60 KNOTS
+3 3 MAXIMUM TEMPERATURE LESS THAN 273.15 K
+4 4 MAXIMUM TEMPERATURE EQUAL TO OR MORE THAN 298.15 K
+5 5 MAXIMUM TEMPERATURE EQUAL TO OR MORE THAN 303.15 K
+6 6 MAXIMUM TEMPERATURE EQUAL TO OR MORE THAN 308.15 K
+7 7 MAXIMUM TEMPERATURE EQUAL TO OR MORE THAN 313.15 K
+8 8 MINIMUM TEMPERATURE LESS THAN 273.15 K
+9 9 MAXIMUM TEMPERATURE EQUAL TO OR MORE THAN 273.15 K
+10 10 PRECIPITATION EQUAL TO OR MORE THAN 1.0 KG M-2
+11 11 PRECIPITATION EQUAL TO OR MORE THAN 5.0 KG M-2
+12 12 PRECIPITATION EQUAL TO OR MORE THAN 10.0 KG M-2
+13 13 PRECIPITATION EQUAL TO OR MORE THAN 50.0 KG M-2
+14 14 PRECIPITATION EQUAL TO OR MORE THAN 100.0 KG M-2
+15 15 PRECIPITATION EQUAL TO OR MORE THAN 150.0 KG M-2
+16 16 SNOW DEPTH MORE THAN 0.00 M
+17 17 SNOW DEPTH MORE THAN 0.01 M
+18 18 SNOW DEPTH MORE THAN 0.10 M
+19 19 SNOW DEPTH MORE THAN 0.50 M
+20 20 HORIZONTAL VISIBILITY LESS THAN 50 M
+21 21 HORIZONTAL VISIBILITY LESS THAN 100 M
+22 22 HORIZONTAL VISIBILITY LESS THAN 1000 M
+23 23 HAIL
+24 24 THUNDERSTORM
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8053.table b/definitions/bufr/tables/0/wmo/41/codetables/8053.table
new file mode 100644
index 000000000..cbc11c9a7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8053.table
@@ -0,0 +1,4 @@
+0 0 VALUE OCCURRED ON ONLY ONE DAY IN THE MONTH
+1 1 VALUE OCCURRED ON MORE THAN ONE DAY IN THE MONTH
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8054.table b/definitions/bufr/tables/0/wmo/41/codetables/8054.table
new file mode 100644
index 000000000..51b908e08
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8054.table
@@ -0,0 +1,3 @@
+0 0 WIND SPEED OR GUST IS AS REPORTED
+1 1 WIND SPEED IS GREATER THAN THAT REPORTED (P IN METAR/TAF/SPECI)
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8060.table b/definitions/bufr/tables/0/wmo/41/codetables/8060.table
new file mode 100644
index 000000000..2865fece5
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8060.table
@@ -0,0 +1,8 @@
+0 0 RESERVED
+1 1 RANGE
+2 2 AZIMUTH
+3 3 HORIZONTAL
+4 4 VERTICAL
+5 5 NORTH/SOUTH
+6 6 EAST/WEST
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8065.table b/definitions/bufr/tables/0/wmo/41/codetables/8065.table
new file mode 100644
index 000000000..69b80ea33
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8065.table
@@ -0,0 +1,4 @@
+0 0 NO SUN-GLINT
+1 1 SUN-GLINT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8066.table b/definitions/bufr/tables/0/wmo/41/codetables/8066.table
new file mode 100644
index 000000000..fcc0252c9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8066.table
@@ -0,0 +1,4 @@
+0 0 OPAQUE
+1 1 SEMI-TRANSPARENT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8070.table b/definitions/bufr/tables/0/wmo/41/codetables/8070.table
new file mode 100644
index 000000000..f58061757
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8070.table
@@ -0,0 +1,6 @@
+0 0 RESERVED
+1 1 RESERVED
+2 2 EARTH LOCATED INSTRUMENT COUNTS, CALIBRATION COEFFICIENTS AND HOUSEKEEPING (LEVEL 1B)
+3 3 EARTH LOCATED CALIBRATED RADIANCES (LEVEL 1C)
+4 4 MAPPED TO A COMMON FOOTPRINT, EARTH LOCATED CALIBRATED RADIANCES (LEVEL 1D)
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8071.table b/definitions/bufr/tables/0/wmo/41/codetables/8071.table
new file mode 100644
index 000000000..8890d5739
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8071.table
@@ -0,0 +1,4 @@
+0 0 FIRST GUESS
+1 1 Y VECTOR
+2 2 X VECTOR
+7 7 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8072.table b/definitions/bufr/tables/0/wmo/41/codetables/8072.table
new file mode 100644
index 000000000..033dd5850
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8072.table
@@ -0,0 +1,8 @@
+0 0 MIXED
+1 1 CLEAR
+2 2 CLOUDY
+3 3 PROBABLY CLEAR
+4 4 PROBABLY CLOUDY
+5 5 ASH
+6 6 RESERVED
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8074.table b/definitions/bufr/tables/0/wmo/41/codetables/8074.table
new file mode 100644
index 000000000..5778e6552
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8074.table
@@ -0,0 +1,4 @@
+0 0 OPEN OCEAN OR SEMI-ENCLOSED SEA
+1 1 NON-OCEAN LIKE
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8075.table b/definitions/bufr/tables/0/wmo/41/codetables/8075.table
new file mode 100644
index 000000000..5f5e3a24c
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8075.table
@@ -0,0 +1,4 @@
+0 0 ASCENDING ORBIT
+1 1 DESCENDING ORBIT
+2 2 RESERVED
+3 3 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8076.table b/definitions/bufr/tables/0/wmo/41/codetables/8076.table
new file mode 100644
index 000000000..431496fbc
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8076.table
@@ -0,0 +1,9 @@
+0 0 KU
+1 1 C
+2 2 LONG-WAVE INFRARED
+3 3 MEDIUM-WAVE INFRARED
+4 4 SHORT-WAVE INFRARED
+5 5 M
+6 6 I
+7 7 DAY/NIGHT
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8077.table b/definitions/bufr/tables/0/wmo/41/codetables/8077.table
new file mode 100644
index 000000000..2c7902bd7
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8077.table
@@ -0,0 +1,7 @@
+0 0 LAND
+1 1 SEA
+2 2 COASTAL
+3 3 OPEN OCEAN OR SEMI-ENCLOSED SEA
+4 4 ENCLOSED SEA OR LAKE
+5 5 CONTINENTAL ICE
+127 127 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8079.table b/definitions/bufr/tables/0/wmo/41/codetables/8079.table
new file mode 100644
index 000000000..735a09c37
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8079.table
@@ -0,0 +1,9 @@
+0 0 NORMAL ISSUE
+1 1 CORRECTION TO A PREVIOUSLY ISSUED PRODUCT (COR)
+2 2 AMENDMENT TO A PREVIOUSLY ISSUED PRODUCT (AMD)
+3 3 CORRECTION TO A PREVIOUSLY ISSUED AMENDED PRODUCT (COR AMD)
+4 4 CANCELLATION OF A PREVIOUSLY ISSUED PRODUCT (CNL)
+5 5 NO PRODUCT AVAILABLE (NIL)
+6 6 SPECIAL REPORT (SPECI)
+7 7 CORRECTED SPECIAL REPORT (SPECI COR)
+15 15 MISSING OR NOT APPLICABLE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8080.table b/definitions/bufr/tables/0/wmo/41/codetables/8080.table
new file mode 100644
index 000000000..596dfc676
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8080.table
@@ -0,0 +1,20 @@
+0 0 TOTAL WATER PRESSURE PROFILE
+1 1 TOTAL WATER TEMPERATURE PROFILE
+2 2 TOTAL WATER SALINITY PROFILE
+3 3 TOTAL WATER CONDUCTIVITY PROFILE
+4 4 TOTAL WATER DEPTH
+10 10 WATER PRESSURE AT A LEVEL
+11 11 WATER TEMPERATURE AT A LEVEL
+12 12 SALINITY AT A LEVEL
+13 13 WATER DEPTH AT A LEVEL
+14 14 SEA/WATER CURRENT SPEED AT A LEVEL
+15 15 SEA/WATER CURRENT DIRECTION AT A LEVEL
+16 16 DISSOLVED OXYGEN AT A LEVEL
+20 20 POSITION
+21 21 CHLOROPHYLL-A AT A LEVEL
+22 22 NITRATE AT A LEVEL
+23 23 PH AT A LEVEL
+24 24 BBP700 AT A LEVEL
+25 25 WATER CONDUCTIVITY AT A LEVEL
+26 26 SEA WATER POTENTIAL DENSITY REFERENCED TO SEA SURFACE AT A LEVEL
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8081.table b/definitions/bufr/tables/0/wmo/41/codetables/8081.table
new file mode 100644
index 000000000..75d288732
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8081.table
@@ -0,0 +1,5 @@
+0 0 SENSOR
+1 1 TRANSMITTER
+2 2 RECEIVER
+3 3 OBSERVING PLATFORM
+63 63 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8082.table b/definitions/bufr/tables/0/wmo/41/codetables/8082.table
new file mode 100644
index 000000000..1f24db866
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8082.table
@@ -0,0 +1,3 @@
+0 0 SENSOR HEIGHT IS NOT MODIFIED
+1 1 SENSOR HEIGHT IS MODIFIED TO STANDARD LEVEL
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8083.table b/definitions/bufr/tables/0/wmo/41/codetables/8083.table
new file mode 100644
index 000000000..174ef3428
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8083.table
@@ -0,0 +1,9 @@
+1 1 ADJUSTED TO OR WITH RESPECT TO REPRESENTATIVE HEIGHT OF SENSOR ABOVE LOCAL GROUND (OR DECK OF MARINE PLATFORM)
+2 2 ADJUSTED TO OR WITH RESPECT TO REPRESENTATIVE HEIGHT OF SENSOR ABOVE WATER SURFACE
+3 3 ADJUSTED WITH RESPECT TO STANDARD SURFACE ROUGHNESS
+4 4 ADJUSTED WITH RESPECT TO WIND SPEED
+5 5 ADJUSTED WITH RESPECT TO TEMPERATURE
+6 6 ADJUSTED WITH RESPECT TO PRESSURE
+7 7 ADJUSTED WITH RESPECT TO HUMIDITY
+8 8 ADJUSTED WITH RESPECT TO EVAPORATION
+9 9 ADJUSTED WITH RESPECT TO WETTING LOSSES
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8085.table b/definitions/bufr/tables/0/wmo/41/codetables/8085.table
new file mode 100644
index 000000000..79e1a3d90
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8085.table
@@ -0,0 +1,4 @@
+0 0 FORE BEAM
+1 1 MID BEAM
+2 2 AFT BEAM
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8086.table b/definitions/bufr/tables/0/wmo/41/codetables/8086.table
new file mode 100644
index 000000000..a9ecd0351
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8086.table
@@ -0,0 +1,11 @@
+1 1 MODEL GROUND SURFACE
+2 2 STANDARD LEVEL
+3 3 TROPOPAUSE LEVEL
+4 4 MAXIMUM WIND LEVEL
+5 5 SIGNIFICANT TEMPERATURE LEVEL
+6 6 SIGNIFICANT HUMIDITY LEVEL
+7 7 SIGNIFICANT WIND LEVEL
+8 8 VERTICALLY INTERPOLATED LEVEL (THIS SHOULD BE SET TO 1 FOR POINTS ON THE VERTICAL PROFILE THAT FALL BETWEEN THE MODEL'S NATIVE VERTICAL LEVELS.)
+9 9 VIRTUAL STATION HEIGHT
+10 10 LEVEL OF BEST FIT
+11 11 RESERVED
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8087.table b/definitions/bufr/tables/0/wmo/41/codetables/8087.table
new file mode 100644
index 000000000..d556c98de
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8087.table
@@ -0,0 +1,5 @@
+0 0 UPPER LEFT
+1 1 UPPER RIGHT
+2 2 LOWER RIGHT
+3 3 LOWER LEFT
+7 7 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8088.table b/definitions/bufr/tables/0/wmo/41/codetables/8088.table
new file mode 100644
index 000000000..d6f51be70
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8088.table
@@ -0,0 +1,4 @@
+0 0 TOP VIEW (GEOGRAPHICAL LONGITUDE ON X-AXIS AND LATITUDE ON Y-AXIS)
+1 1 NORTH-SOUTH VIEW (TRANSECT WITH GEOGRAPHICAL LONGITUDE ON X-AXIS AND VERTICAL HEIGHT ON Y-AXIS)
+2 2 EAST-WEST VIEW (TRANSECT WITH GEOGRAPHICAL LATITUDE ON X-AXIS AND VERTICAL HEIGHT ON Y-AXIS)
+63 63 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8091.table b/definitions/bufr/tables/0/wmo/41/codetables/8091.table
new file mode 100644
index 000000000..3a8c44df1
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8091.table
@@ -0,0 +1,11 @@
+0 0 SATELLITE COORDINATES
+1 1 OBSERVATION COORDINATES
+2 2 START OF OBSERVATION
+3 3 END OF OBSERVATION
+4 4 HORIZONTAL CENTRE OF GRAVITY OF THE OBSERVATION
+5 5 VERTICAL CENTRE OF GRAVITY OF THE OBSERVATION
+6 6 TOP OF THE OBSERVATION
+7 7 BOTTOM OF THE OBSERVATION
+8 8 PROJECTION ORIGIN
+9 9 COORDINATES OF TRUE SCALE
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8092.table b/definitions/bufr/tables/0/wmo/41/codetables/8092.table
new file mode 100644
index 000000000..e40754f8e
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8092.table
@@ -0,0 +1,3 @@
+0 0 STANDARD UNCERTAINTY
+1 1 COMBINED STANDARD UNCERTAINTY
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8093.table b/definitions/bufr/tables/0/wmo/41/codetables/8093.table
new file mode 100644
index 000000000..74f5c3a63
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8093.table
@@ -0,0 +1,4 @@
+0 0 TOTAL UNCERTAINTY
+1 1 SYSTEMATIC COMPONENT OF UNCERTAINTY
+2 2 RANDOM COMPONENT OF UNCERTAINTY
+31 31 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8094.table b/definitions/bufr/tables/0/wmo/41/codetables/8094.table
new file mode 100644
index 000000000..e2ead0bc9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8094.table
@@ -0,0 +1,8 @@
+0 0 AVERAGE OF MAXIMUM AND MINIMUM VALUES: TM = (TX + TN)/2
+1 1 AVERAGE OF THE 8 OBSERVATIONS TAKEN EVERY THREE HOURS
+2 2 AVERAGE OF THE 24 HOURLY OBSERVATIONS
+3 3 WEIGHTED AVERAGE OF 3 OBSERVATIONS: TM = (AT1 +BT2 + CT3)
+4 4 WEIGHTED AVERAGE OF 3 OBSERVATIONS AND ALSO MAXIMUM AND MINIMUM VALUES: TM= (AT1 +BT2 + CT3 +DTX + ETN)
+5 5 AUTOMATIC WEATHER STATION COMPLETE INTEGRATION FROM MINUTE DATA
+6 6 AVERAGE OF THE 4 OBSERVATIONS TAKEN EVERY SIX HOURS
+255 255 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8095.table b/definitions/bufr/tables/0/wmo/41/codetables/8095.table
new file mode 100644
index 000000000..f9d14f75f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8095.table
@@ -0,0 +1,36 @@
+0 0 RESERVED
+1 1 1A
+2 2 1B
+3 3 1C
+4 4 1D
+5 5 RESERVED
+6 6 2A
+7 7 2B
+8 8 2C
+9 9 2D
+10 10 RESERVED
+11 11 3A
+12 12 3B
+13 13 3C
+14 14 3D
+15 15 RESERVED
+16 16 4A
+17 17 4B
+18 18 4C
+19 19 4D
+20 20 RESERVED
+21 21 5A
+22 22 5B
+23 23 5C
+24 24 5D
+25 25 RESERVED
+26 26 1
+27 27 2
+28 28 3
+29 29 4
+30 30 5
+31 31 A
+32 32 B
+33 33 C
+34 34 D
+255 255 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8096.table b/definitions/bufr/tables/0/wmo/41/codetables/8096.table
new file mode 100644
index 000000000..f9d14f75f
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8096.table
@@ -0,0 +1,36 @@
+0 0 RESERVED
+1 1 1A
+2 2 1B
+3 3 1C
+4 4 1D
+5 5 RESERVED
+6 6 2A
+7 7 2B
+8 8 2C
+9 9 2D
+10 10 RESERVED
+11 11 3A
+12 12 3B
+13 13 3C
+14 14 3D
+15 15 RESERVED
+16 16 4A
+17 17 4B
+18 18 4C
+19 19 4D
+20 20 RESERVED
+21 21 5A
+22 22 5B
+23 23 5C
+24 24 5D
+25 25 RESERVED
+26 26 1
+27 27 2
+28 28 3
+29 29 4
+30 30 5
+31 31 A
+32 32 B
+33 33 C
+34 34 D
+255 255 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8097.table b/definitions/bufr/tables/0/wmo/41/codetables/8097.table
new file mode 100644
index 000000000..1107d7b19
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8097.table
@@ -0,0 +1,4 @@
+0 0 THE AVERAGE OF SIX TEMPERATURE SENSORS PLACED THROUGHOUT THE PAYLOAD
+1 1 AVERAGE OF WF-BAND IFP AND RFE SENSORS FOR CHANNELS 1 TO 8
+2 2 AVERAGE OF G-BAND RFE SENSOR FOR CHANNELS 9 TO 12
+127 127 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8098.table b/definitions/bufr/tables/0/wmo/41/codetables/8098.table
new file mode 100644
index 000000000..63fb59bb9
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8098.table
@@ -0,0 +1,7 @@
+0 0 ON-BOARD CALIBRATION TARGET
+1 1 SPACE VIEW REFLECTOR
+2 2 MAIN REFLECTOR
+3 3 RACETRACK
+4 4 SUN SHIELD
+5 5 ROTATING REFLECTOR
+15 15 MISSING
diff --git a/definitions/bufr/tables/0/wmo/41/codetables/8099.table b/definitions/bufr/tables/0/wmo/41/codetables/8099.table
new file mode 100644
index 000000000..b8c9664c4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/codetables/8099.table
@@ -0,0 +1,3 @@
+0 0 NADIR
+1 1 OBLIQUE
+15 15 MISSING VALUE
diff --git a/definitions/bufr/tables/0/wmo/41/element.table b/definitions/bufr/tables/0/wmo/41/element.table
new file mode 100644
index 000000000..f334717b4
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/element.table
@@ -0,0 +1,1830 @@
+#code|abbreviation|type|name|unit|scale|reference|width|crex_unit|crex_scale|crex_width
+000001|tableAEntry|string|TABLE A: ENTRY|CCITT IA5|0|0|24|Character|0|3
+000002|tableALine1|string|TABLE A: DATA CATEGORY DESCRIPTION, LINE 1|CCITT IA5|0|0|256|Character|0|32
+000003|tableALine2|string|TABLE A: DATA CATEGORY DESCRIPTION, LINE 2|CCITT IA5|0|0|256|Character|0|32
+000004|masterTable|string|BUFR/CREX MASTER TABLE|CCITT IA5|0|0|16|Character|0|2
+000005|editionNumber|string|BUFR/CREX EDITION NUMBER|CCITT IA5|0|0|24|Character|0|3
+000006|bufrMasterTableVersionNumber|string|BUFR MASTER TABLE VERSION NUMBER|CCITT IA5|0|0|16|Character|0|2
+000007|crexMasterTableVersionNumber|string|CREX MASTER TABLE VERSION NUMBER|CCITT IA5|0|0|16|Character|0|2
+000008|bufrLocalTableVersionNumber|string|BUFR LOCAL TABLE VERSION NUMBER|CCITT IA5|0|0|16|Character|0|2
+000010|fDescriptorToBeAddedOrDefined|string|F DESCRIPTOR TO BE ADDED OR DEFINED|CCITT IA5|0|0|8|Character|0|1
+000011|xDescriptorToBeAddedOrDefined|string|X DESCRIPTOR TO BE ADDED OR DEFINED|CCITT IA5|0|0|16|Character|0|2
+000012|yDescriptorToBeAddedOrDefined|string|Y DESCRIPTOR TO BE ADDED OR DEFINED|CCITT IA5|0|0|24|Character|0|3
+000013|elementNameLine1|string|ELEMENT NAME, LINE 1|CCITT IA5|0|0|256|Character|0|32
+000014|elementNameLine2|string|ELEMENT NAME, LINE 2|CCITT IA5|0|0|256|Character|0|32
+000015|unitsName|string|UNITS NAME|CCITT IA5|0|0|192|Character|0|24
+000016|unitsScaleSign|string|UNITS SCALE SIGN|CCITT IA5|0|0|8|Character|0|1
+000017|unitsScale|string|UNITS SCALE|CCITT IA5|0|0|24|Character|0|3
+000018|unitsReferenceSign|string|UNITS REFERENCE SIGN|CCITT IA5|0|0|8|Character|0|1
+000019|unitsReferenceValue|string|UNITS REFERENCE VALUE|CCITT IA5|0|0|80|Character|0|10
+000020|elementDataWidth|string|ELEMENT DATA WIDTH|CCITT IA5|0|0|24|Character|0|3
+000024|codeFigure|string|CODE FIGURE|CCITT IA5|0|0|64|Character|0|8
+000025|codeFigureMeaning|string|CODE FIGURE MEANING|CCITT IA5|0|0|496|Character|0|62
+000026|bitNumber|string|BIT NUMBER|CCITT IA5|0|0|48|Character|0|6
+000027|bitNumberMeaning|string|BIT NUMBER MEANING|CCITT IA5|0|0|496|Character|0|62
+000030|descriptorDefiningSequence|string|DESCRIPTOR DEFINING SEQUENCE|CCITT IA5|0|0|48|Character|0|6
+001001|blockNumber|long|WMO BLOCK NUMBER|Numeric|0|0|7|Numeric|0|2
+001002|stationNumber|long|WMO STATION NUMBER|Numeric|0|0|10|Numeric|0|3
+001003|regionNumber|table|WMO REGION NUMBER/GEOGRAPHICAL AREA|CODE TABLE|0|0|3|CODE TABLE|0|1
+001004|wmoRegionSubArea|long|WMO REGION SUB-AREA|Numeric|0|0|3|Numeric|0|1
+001005|buoyOrPlatformIdentifier|long|BUOY/PLATFORM IDENTIFIER|Numeric|0|0|17|Numeric|0|5
+001006|aircraftFlightNumber|string|AIRCRAFT FLIGHT NUMBER|CCITT IA5|0|0|64|Character|0|8
+001007|satelliteIdentifier|table|SATELLITE IDENTIFIER|CODE TABLE|0|0|10|CODE TABLE|0|4
+001008|aircraftRegistrationNumberOrOtherIdentification|string|AIRCRAFT REGISTRATION NUMBER OR OTHER IDENTIFICATION|CCITT IA5|0|0|64|Character|0|8
+001009|commercialAircraftType|string|TYPE OF COMMERCIAL AIRCRAFT|CCITT IA5|0|0|64|Character|0|8
+001010|stationaryBuoyPlatformIdentifierEGCManBuoys|string|STATIONARY BUOY PLATFORM IDENTIFIER; E.G. C-MAN BUOYS|CCITT IA5|0|0|64|Character|0|8
+001011|shipOrMobileLandStationIdentifier|string|SHIP OR MOBILE LAND STATION IDENTIFIER|CCITT IA5|0|0|72|Character|0|9
+001012|directionOfMotionOfMovingObservingPlatform|long|DIRECTION OF MOTION OF MOVING OBSERVING PLATFORM|deg|0|0|9|deg|0|3
+001013|movingObservingPlatformSpeed|long|SPEED OF MOTION OF MOVING OBSERVING PLATFORM|m/s|0|0|10|m/s|0|3
+001014|platformDriftSpeed|double|PLATFORM DRIFT SPEED (HIGH PRECISION)|m/s|2|0|10|m/s|2|4
+001015|stationOrSiteName|string|STATION OR SITE NAME|CCITT IA5|0|0|160|Character|0|20
+001016|satelliteSubIdentifier|long|SATELLITE SUB-IDENTIFIER|Numeric|0|0|16|Numeric|0|5
+001018|shortStationName|string|SHORT STATION OR SITE NAME|CCITT IA5|0|0|40|Character|0|5
+001019|longStationName|string|LONG STATION OR SITE NAME|CCITT IA5|0|0|256|Character|0|32
+001020|wmoRegionSubArea|long|WMO REGION SUB-AREA|Numeric|0|0|4|Numeric|0|2
+001021|synopticFeatureIdentifier|long|SYNOPTIC FEATURE IDENTIFIER|Numeric|0|0|14|Numeric|0|4
+001022|featureName|string|NAME OF FEATURE|CCITT IA5|0|0|224|Character|0|28
+001023|observationSequenceNumber|long|OBSERVATION SEQUENCE NUMBER|Numeric|0|0|9|Numeric|0|3
+001024|windSpeedSource|table|WIND SPEED SOURCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+001025|stormIdentifier|string|STORM IDENTIFIER|CCITT IA5|0|0|24|Character|0|3
+001026|stormName|string|WMO STORM NAME|CCITT IA5|0|0|64|Character|0|8
+001027|longStormName|string|WMO LONG STORM NAME|CCITT IA5|0|0|80|Character|0|10
+001028|aerosolOpticalDepthSource|table|AEROSOL OPTICAL DEPTH (AOD) SOURCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+001029|ssiSource|table|SSI SOURCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+001030|numericalModelIdentifier|string|NUMERICAL MODEL IDENTIFIER|CCITT IA5|0|0|128|Character|0|16
+001031|centre|table|IDENTIFICATION OF ORIGINATING/GENERATING CENTRE|CODE TABLE|0|0|16|CODE TABLE|0|5
+001032|generatingApplication|table|GENERATING APPLICATION|CODE TABLE defined by originating/generating centre|0|0|8|CODE TABLE|0|3
+001033|centre|table|IDENTIFICATION OF ORIGINATING/GENERATING CENTRE|Common CODE TABLE C-1|0|0|8|Common CODE TABLE C-1|0|3
+001034|subCentre|table|IDENTIFICATION OF ORIGINATING/GENERATING SUB-CENTRE|Common CODE TABLE C-12|0|0|8|Common CODE TABLE C-12|0|3
+001035|centre|table|ORIGINATING CENTRE|Common CODE TABLE C-11|0|0|16|Common CODE TABLE C-11|0|5
+001036|agencyInChargeOfOperatingObservingPlatform|table|AGENCY IN CHARGE OF OPERATING THE OBSERVING PLATFORM|CODE TABLE|0|0|20|CODE TABLE|0|7
+001037|sigmetSequenceIdentifier|string|SIGMET SEQUENCE IDENTIFIER|CCITT IA5|0|0|24|Character|0|3
+001038|sourceOfSeaIceFraction|table|SOURCE OF SEA ICE FRACTION|CODE TABLE|0|0|5|CODE TABLE|0|2
+001039|graphicalAreaForecastSequenceIdentifier|string|GRAPHICAL AREA FORECAST (GFA) SEQUENCE IDENTIFIER|CCITT IA5|0|0|40|Character|0|5
+001040|processingCentreIdCode|string|PROCESSING CENTRE ID CODE|CCITT IA5|0|0|48|Character|0|6
+001041|absolutePlatformVelocityFirstComponent|double|ABSOLUTE PLATFORM VELOCITY - FIRST COMPONENT|m/s|5|-1073741824|31|m/s|5|10
+001042|absolutePlatformVelocitySecondComponent|double|ABSOLUTE PLATFORM VELOCITY - SECOND COMPONENT|m/s|5|-1073741824|31|m/s|5|10
+001043|absolutePlatformVelocityThirdComponent|double|ABSOLUTE PLATFORM VELOCITY - THIRD COMPONENT|m/s|5|-1073741824|31|m/s|5|10
+001044|standardGeneratingApplication|table|STANDARD GENERATING APPLICATION|CODE TABLE|0|0|8|CODE TABLE|0|3
+001050|platformTransmitterIdNumber|long|PLATFORM TRANSMITTER ID NUMBER|Numeric|0|0|17|Numeric|0|6
+001051|platformTransmitterIdNumber|string|PLATFORM TRANSMITTER ID NUMBER|CCITT IA5|0|0|96|Character|0|12
+001052|platformTransmitterId|table|PLATFORM TRANSMITTER ID|CODE TABLE|0|0|3|CODE TABLE|0|1
+001053|tsunameterReportSequenceNumber|long|TSUNAMETER REPORT SEQUENCE NUMBER TRIGGERED BY A TSUNAMI EVENT|Numeric|0|0|7|Numeric|0|2
+001060|aircraftReportingPointBeaconIdentifier|string|AIRCRAFT REPORTING POINT (BEACON IDENTIFIER)|CCITT IA5|0|0|64|Character|0|8
+001062|shortIcaoLocationIndicator|string|SHORT ICAO LOCATION INDICATOR|CCITT IA5|0|0|32|Character|0|4
+001063|icaoLocationIndicator|string|ICAO LOCATION INDICATOR|CCITT IA5|0|0|64|Character|0|8
+001064|runwayDesignator|string|RUNWAY DESIGNATOR|CCITT IA5|0|0|32|Character|0|4
+001065|icaoRegionIdentifier|string|ICAO REGION IDENTIFIER|CCITT IA5|0|0|256|Character|0|32
+001075|tideStationIdentification|string|TIDE STATION IDENTIFICATION|CCITT IA5|0|0|40|Character|0|5
+001079|uniqueIdentifierForProfile|string|UNIQUE IDENTIFIER FOR THE PROFILE|CCITT IA5|0|0|64|Character|0|8
+001080|shipLineNumberAccordingToSoop|string|SHIP LINE NUMBER ACCORDING TO SOOP|CCITT IA5|0|0|32|Character|0|4
+001081|radiosondeSerialNumber|string|RADIOSONDE SERIAL NUMBER|CCITT IA5|0|0|160|Character|0|20
+001082|radiosondeAscensionNumber|long|RADIOSONDE ASCENSION NUMBER|Numeric|0|0|14|Numeric|0|4
+001083|radiosondeReleaseNumber|long|RADIOSONDE RELEASE NUMBER|Numeric|0|0|3|Numeric|0|1
+001085|observingPlatformManufacturerModel|string|OBSERVING PLATFORM MANUFACTURER'S MODEL|CCITT IA5|0|0|160|Character|0|20
+001086|observingPlatformManufacturerSerialNumber|string|OBSERVING PLATFORM MANUFACTURER'S SERIAL NUMBER|CCITT IA5|0|0|256|Character|0|32
+001087|marineObservingPlatformIdentifier|long|WMO MARINE OBSERVING PLATFORM EXTENDED IDENTIFIER|Numeric|0|0|23|Numeric|0|7
+001090|techniqueForMakingUpInitialPerturbations|table|TECHNIQUE FOR MAKING UP INITIAL PERTURBATIONS|CODE TABLE|0|0|8|CODE TABLE|0|3
+001091|ensembleMemberNumber|long|ENSEMBLE MEMBER NUMBER|Numeric|0|0|10|Numeric|0|4
+001092|ensembleForecastType|table|TYPE OF ENSEMBLE FORECAST|CODE TABLE|0|0|8|CODE TABLE|0|3
+001093|balloonLotNumber|string|BALLOON LOT NUMBER|CCITT IA5|0|0|96|Character|0|12
+001094|wbanNumber|long|WBAN NUMBER|Numeric|0|0|17|Numeric|0|5
+001095|observerIdentification|string|OBSERVER IDENTIFICATION|CCITT IA5|0|0|32|Character|0|4
+001096|stationAcquisition|string|STATION ACQUISITION|CCITT IA5|0|0|160|Character|0|20
+001099|uniqueProductDefinition|string|UNIQUE PRODUCT DEFINITION|CCITT IA5|0|0|248|Character|0|31
+001101|stateIdentifier|table|STATE IDENTIFIER|CODE TABLE|0|0|10|CODE TABLE|0|3
+001102|nationalStationNumber|long|NATIONAL STATION NUMBER|Numeric|0|0|30|Numeric|0|9
+001103|imoNumber|long|IMO NUMBER. UNIQUE LLOYD'S REGISTER|Numeric|0|0|24|Numeric|0|7
+001104|stateOrFederalStateIdentifier|string|STATE/FEDERAL STATE IDENTIFIER|CCITT IA5|0|0|32|Character|0|4
+001105|highwayDesignator|string|HIGHWAY DESIGNATOR|CCITT IA5|0|0|40|Character|0|5
+001106|locationAlongHighwayAsIndicatedByPositionMarkers|long|LOCATION ALONG HIGHWAY AS INDICATED BY POSITION MARKERS|m|-2|0|14|m|-2|5
+001110|aircraftTailNumber|string|AIRCRAFT TAIL NUMBER|CCITT IA5|0|0|48|Character|0|6
+001111|originationAirport|string|ORIGINATION AIRPORT|CCITT IA5|0|0|24|Character|0|3
+001112|destinationAirport|string|DESTINATION AIRPORT|CCITT IA5|0|0|24|Character|0|3
+001113|templateVersionNumberDefinedByOriginatingCentre|long|TEMPLATE VERSION NUMBER DEFINED BY ORIGINATING CENTRE|Numeric|1|0|9|Numeric|1|3
+001114|encryptedStationIdentifierBase64Encoding|string|ENCRYPTED SHIP OR MOBILE LAND STATION IDENTIFIER (BASE64 ENCODING)|CCITT IA5|0|0|352|Character|0|44
+001115|identifierOfTheCruiseOrMission|string|IDENTIFIER OF THE CRUISE OR MISSION UNDER WHICH THE DATA WERE COLLECTED|CCITT IA5|0|0|160|Character|0|20
+001124|gridPointIdentifier|long|GRID POINT IDENTIFIER|Numeric|0|0|24|Numeric|0|8
+001125|wigosIdentifierSeries|long|WIGOS IDENTIFIER SERIES|Numeric|0|0|4|Numeric|0|2
+001126|wigosIssuerOfIdentifier|long|WIGOS ISSUER OF IDENTIFIER|Numeric|0|0|16|Numeric|0|5
+001127|wigosIssueNumber|long|WIGOS ISSUE NUMBER|Numeric|0|0|16|Numeric|0|5
+001128|wigosLocalIdentifierCharacter|string|WIGOS LOCAL IDENTIFIER (CHARACTER)|CCITT IA5|0|0|128|Character|0|16
+001144|snapshotIdentifier|long|SNAPSHOT IDENTIFIER|Numeric|0|0|31|Numeric|0|10
+001145|lightSourceIdentifier|long|LIGHT SOURCE IDENTIFIER|Numeric|0|-8|20|Numeric|0|7
+001150|coordinateReferenceSystem|table|COORDINATE REFERENCE SYSTEM|CODE TABLE|0|0|16|CODE TABLE|0|5
+001151|fixedMeanSeaLevelReferenceDatum|table|FIXED MEAN SEA-LEVEL REFERENCE DATUM|CODE TABLE|0|0|12|CODE TABLE|0|4
+001152|semiMajorAxisOfRotationEllipsoid|double|SEMI-MAJOR AXIS OF ROTATION ELLIPSOID|m|2|0|31|m|2|11
+001153|semiMinorAxisOfRotationEllipsoid|double|SEMI-MINOR AXIS OF ROTATION ELLIPSOID|m|2|0|31|m|2|11
+001154|sensorIdentifier|long|SENSOR IDENTIFIER|Numeric|0|0|12|Numeric|0|4
+001155|retrievalIdentifier|table|RETRIEVAL IDENTIFIER|CODE TABLE|0|0|8|CODE TABLE|0|3
+002001|stationType|table|TYPE OF STATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+002002|instrumentationForWindMeasurement|flag|TYPE OF INSTRUMENTATION FOR WIND MEASUREMENT|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+002003|measuringEquipmentType|table|TYPE OF MEASURING EQUIPMENT USED|CODE TABLE|0|0|4|CODE TABLE|0|2
+002004|typeOfInstrumentationForEvaporationMeasurement|table|TYPE OF INSTRUMENTATION FOR EVAPORATION MEASUREMENT OR TYPE OF CROP FOR WHICH EVAPOTRANSPIRATION IS REPORTED|CODE TABLE|0|0|4|CODE TABLE|0|2
+002005|temperatureObservationPrecision|double|PRECISION OF TEMPERATURE OBSERVATION|K|2|0|7|K|2|3
+002006|upperAirRemoteSensingInstrumentType|table|UPPER AIR REMOTE SENSING INSTRUMENT TYPE|CODE TABLE|0|0|6|CODE TABLE|0|0
+002007|sensorForWaterLevelMeasuringInstrumentType|table|TYPE OF SENSOR FOR WATER LEVEL MEASURING INSTRUMENT|CODE TABLE|0|0|6|CODE TABLE|0|2
+002008|typeOfOffshorePlatform|table|TYPE OF OFFSHORE PLATFORM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002009|modisAerosolAlgorithm|table|MODIS AEROSOL ALGORITHM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002011|radiosondeType|table|RADIOSONDE TYPE|CODE TABLE|0|0|8|CODE TABLE|0|3
+002012|radiosondeComputationalMethod|table|RADIOSONDE COMPUTATIONAL METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+002013|solarAndInfraredRadiationCorrection|table|SOLAR AND INFRARED RADIATION CORRECTION|CODE TABLE|0|0|4|CODE TABLE|0|2
+002014|trackingTechniqueOrStatusOfSystem|table|TRACKING TECHNIQUE/STATUS OF SYSTEM USED|CODE TABLE|0|0|7|CODE TABLE|0|3
+002015|radiosondeCompleteness|table|RADIOSONDE COMPLETENESS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002016|radiosondeConfiguration|flag|RADIOSONDE CONFIGURATION|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+002017|correctionAlgorithmsForHumidityMeasurements|table|CORRECTION ALGORITHMS FOR HUMIDITY MEASUREMENTS|CODE TABLE|0|0|5|CODE TABLE|0|2
+002019|satelliteInstruments|table|SATELLITE INSTRUMENTS|CODE TABLE|0|0|11|CODE TABLE|0|4
+002020|satelliteClassification|table|SATELLITE CLASSIFICATION|CODE TABLE|0|0|9|CODE TABLE|0|3
+002021|satelliteInstrumentDataUsedInProcessing|flag|SATELLITE INSTRUMENT DATA USED IN PROCESSING|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+002022|satelliteDataProcessingTechnique|flag|SATELLITE DATA-PROCESSING TECHNIQUE USED|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+002023|satelliteDerivedWindComputationMethod|table|SATELLITE-DERIVED WIND COMPUTATION METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+002024|meanHumidityComputationalMethod|table|INTEGRATED MEAN HUMIDITY COMPUTATIONAL METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+002025|satelliteChannelsUsedInComputation|flag|SATELLITE CHANNEL(S) USED IN COMPUTATION|FLAG TABLE|0|0|25|FLAG TABLE|0|9
+002026|crossTrackResolution|double|CROSS-TRACK RESOLUTION|m|2|0|12|m|2|4
+002027|alongTrackResolution|double|ALONG-TRACK RESOLUTION|m|2|0|12|m|2|4
+002028|segmentSizeAtNadirInXDirection|long|SEGMENT SIZE AT NADIR IN X-DIRECTION|m|0|0|18|m|0|6
+002029|segmentSizeAtNadirInYDirection|long|SEGMENT SIZE AT NADIR IN Y-DIRECTION|m|0|0|18|m|0|6
+002030|methodOfCurrentMeasurement|table|METHOD OF CURRENT MEASUREMENT|CODE TABLE|0|0|3|CODE TABLE|0|1
+002031|durationAndTimeOfCurrentMeasurement|table|DURATION AND TIME OF CURRENT MEASUREMENT|CODE TABLE|0|0|5|CODE TABLE|0|2
+002032|indicatorForDigitization|table|INDICATOR FOR DIGITIZATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+002033|methodOfSalinityOrDepthMeasurement|table|METHOD OF SALINITY/DEPTH MEASUREMENT|CODE TABLE|0|0|3|CODE TABLE|0|1
+002034|drogueType|table|DROGUE TYPE|CODE TABLE|0|0|5|CODE TABLE|0|2
+002035|cableLength|long|CABLE LENGTH|m|0|0|9|m|0|3
+002036|buoyType|table|BUOY TYPE|CODE TABLE|0|0|2|CODE TABLE|0|1
+002037|methodOfTidalObservation|table|METHOD OF TIDAL OBSERVATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+002038|methodOfWaterTemperatureAndOrOrSalinityMeasurement|table|METHOD OF WATER TEMPERATURE AND/OR SALINITY MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002039|methodOfWetBulbTemperatureMeasurement|table|METHOD OF WET-BULB TEMPERATURE MEASUREMENT|CODE TABLE|0|0|3|CODE TABLE|0|1
+002040|methodOfRemovingVelocityAndMotionOfPlatformFromCurrent|table|METHOD OF REMOVING VELOCITY AND MOTION OF PLATFORM FROM CURRENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002041|methodForEstimatingReportsRelatedToSynopticFeatures|table|METHOD FOR ESTIMATING REPORTS RELATED TO SYNOPTIC FEATURES|CODE TABLE|0|0|6|CODE TABLE|0|2
+002042|indicatorForSeaSurfaceCurrentSpeed|table|INDICATOR FOR SEA-SURFACE CURRENT SPEED|CODE TABLE|0|0|2|CODE TABLE|0|1
+002044|indicatorForMethodOfCalculatingSpectralWaveData|table|INDICATOR FOR METHOD OF CALCULATING SPECTRAL WAVE DATA|CODE TABLE|0|0|4|CODE TABLE|0|2
+002045|platformType|table|INDICATOR FOR TYPE OF PLATFORM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002046|waveMeasurementInstrumentation|table|WAVE MEASUREMENT INSTRUMENTATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+002047|deepOceanTsunameterType|table|DEEP-OCEAN TSUNAMETER TYPE|CODE TABLE|0|0|7|CODE TABLE|0|2
+002048|satelliteSensorIndicator|table|SATELLITE SENSOR INDICATOR|CODE TABLE|0|0|4|CODE TABLE|0|2
+002049|geostationarySatelliteDataProcessingTechnique|flag|GEOSTATIONARY SATELLITE DATA-PROCESSING TECHNIQUE USED|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+002050|geostationarySounderSatelliteChannels|flag|GEOSTATIONARY SOUNDER SATELLITE CHANNELS USED|FLAG TABLE|0|0|20|FLAG TABLE|0|7
+002051|indicatorToSpecifyObservingMethodForExtremeTemperatures|table|INDICATOR TO SPECIFY OBSERVING METHOD FOR EXTREME TEMPERATURES|CODE TABLE|0|0|4|CODE TABLE|0|2
+002052|geostationaryImagerSatelliteChannels|flag|GEOSTATIONARY IMAGER SATELLITE CHANNELS USED|FLAG TABLE|0|0|6|FLAG TABLE|0|2
+002053|goesBrightnessTemperatureCharacteristics|table|GOES-I/M BRIGHTNESS TEMPERATURE CHARACTERISTICS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002054|goesSoundingsParameter|table|GOES-I/M SOUNDINGS PARAMETER CHARACTERISTICS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002055|geostationarySoundingsStatisticalParameters|table|GEOSTATIONARY SOUNDINGS STATISTICAL PARAMETERS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002056|geostationarySoundingsAccuracyStatistics|table|GEOSTATIONARY SOUNDINGS ACCURACY STATISTICS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002057|originOfFirstGuessInformationForGoesIOrMSoundings|table|ORIGIN OF FIRST-GUESS INFORMATION FOR GOES-I/M SOUNDINGS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002058|validTimesOfFirstGuessInformationForGoesIOrMSoundings|table|VALID TIMES OF FIRST-GUESS INFORMATION FOR GOES-I/M SOUNDINGS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002059|originOfAnalysisInformationForGoesIOrMSoundings|table|ORIGIN OF ANALYSIS INFORMATION FOR GOES-I/M SOUNDINGS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002060|originOfSurfaceInformationForGoesIOrMSoundings|table|ORIGIN OF SURFACE INFORMATION FOR GOES-I/M SOUNDINGS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002061|aircraftNavigationalSystem|table|AIRCRAFT NAVIGATIONAL SYSTEM|CODE TABLE|0|0|3|CODE TABLE|0|1
+002062|aircraftDataRelaySystemType|table|TYPE OF AIRCRAFT DATA RELAY SYSTEM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002063|aircraftRollAngle|double|AIRCRAFT ROLL ANGLE|deg|2|-18000|16|deg|2|5
+002064|aircraftRollAngleQuality|table|AIRCRAFT ROLL ANGLE QUALITY|CODE TABLE|0|0|2|CODE TABLE|0|1
+002065|acarsGroundReceivingStation|string|ACARS GROUND-RECEIVING STATION|CCITT IA5|0|0|40|Character|0|5
+002066|radiosondeGroundReceivingSystem|table|RADIOSONDE GROUND RECEIVING SYSTEM|CODE TABLE|0|0|6|CODE TABLE|0|2
+002067|radiosondeOperatingFrequency|long|RADIOSONDE OPERATING FREQUENCY|Hz|-5|0|15|Hz|-5|5
+002070|originalSpecificationOfLatitudeOrLongitude|table|ORIGINAL SPECIFICATION OF LATITUDE/LONGITUDE|CODE TABLE|0|0|4|CODE TABLE|0|2
+002071|spectrographicWavelength|double|SPECTROGRAPHIC WAVELENGTH|m|13|0|30|m|13|10
+002072|spectrographicWidth|double|SPECTROGRAPHIC WIDTH|m|13|0|30|m|13|10
+002080|balloonManufacturer|table|BALLOON MANUFACTURER|CODE TABLE|0|0|6|CODE TABLE|0|2
+002081|balloonType|table|TYPE OF BALLOON|CODE TABLE|0|0|5|CODE TABLE|0|2
+002082|weightOfBalloon|double|WEIGHT OF BALLOON|kg|3|0|12|kg|3|4
+002083|balloonShelterType|table|TYPE OF BALLOON SHELTER|CODE TABLE|0|0|4|CODE TABLE|0|2
+002084|typeOfGasUsedInBalloon|table|TYPE OF GAS USED IN BALLOON|CODE TABLE|0|0|4|CODE TABLE|0|2
+002085|amountOfGasUsedInBalloon|double|AMOUNT OF GAS USED IN BALLOON|kg|3|0|13|kg|3|4
+002086|balloonFlightTrainLength|double|BALLOON FLIGHT TRAIN LENGTH|m|1|0|10|m|1|4
+002087|parachuteSurfaceArea|double|PARACHUTE SURFACE AREA|m2|4|0|15|m2|4|5
+002088|volumeOfGasUsedInBalloon|double|VOLUME OF GAS USED IN BALLOON|m3|3|0|13|m3|3|4
+002090|instrumentWavelength|double|INSTRUMENT WAVELENGTH|m|9|0|16|m|9|5
+002091|entrySensor4Or20Ma|double|ENTRY SENSOR 4/20 MA|A|4|0|10|A|4|3
+002092|ozoneProfileComputationMethod|table|OZONE PROFILE COMPUTATION METHOD|CODE TABLE|0|0|3|CODE TABLE|0|1
+002095|pressureSensorType|table|TYPE OF PRESSURE SENSOR|CODE TABLE|0|0|5|CODE TABLE|0|2
+002096|temperatureSensorType|table|TYPE OF TEMPERATURE SENSOR|CODE TABLE|0|0|5|CODE TABLE|0|2
+002097|humiditySensorType|table|TYPE OF HUMIDITY SENSOR|CODE TABLE|0|0|5|CODE TABLE|0|2
+002099|polarization|table|POLARIZATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+002100|radarConstant|double|RADAR CONSTANT|dB|1|0|12|dB|1|4
+002101|antennaType|table|TYPE OF ANTENNA|CODE TABLE|0|0|4|CODE TABLE|0|2
+002102|antennaHeightAboveTowerBase|long|ANTENNA HEIGHT ABOVE TOWER BASE|m|0|0|8|m|0|3
+002103|radome|flag|RADOME|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+002104|antennaPolarization|table|ANTENNA POLARIZATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+002105|maximumAntennaGain|long|MAXIMUM ANTENNA GAIN|dB|0|0|6|dB|0|2
+002106|3DbBeamwidth|double|3-DB BEAMWIDTH|deg|1|0|6|deg|1|2
+002107|sidelobeSuppression|long|SIDELOBE SUPPRESSION|dB|0|0|6|dB|0|2
+002108|crosspolDiscriminationOnAxis|long|CROSSPOL DISCRIMINATION (ON AXIS)|dB|0|0|6|dB|0|2
+002109|antennaSpeedAzimuth|double|ANTENNA SPEED (AZIMUTH)|deg/s|2|0|12|deg/s|2|4
+002110|antennaSpeedElevation|double|ANTENNA SPEED (ELEVATION)|deg/s|2|0|12|deg/s|2|4
+002111|radarIncidenceAngle|double|RADAR INCIDENCE ANGLE|deg|1|0|10|deg|1|4
+002112|radarLookAngle|double|RADAR LOOK ANGLE|deg|1|0|12|deg|1|4
+002113|numberOfAzimuthLooks|long|NUMBER OF AZIMUTH LOOKS|Numeric|0|0|4|Numeric|0|2
+002114|antennaEffectiveSurfaceArea|long|ANTENNA EFFECTIVE SURFACE AREA|m2|0|0|15|m2|0|5
+002115|surfaceObservingEquipmentType|table|TYPE OF SURFACE OBSERVING EQUIPMENT|CODE TABLE|0|0|5|CODE TABLE|0|2
+002116|percentageOf320MhzBandProcessed|long|PERCENTAGE OF 320 MHZ BAND PROCESSED|%|0|0|7|%|0|3
+002117|percentageOf80MhzBandProcessed|long|PERCENTAGE OF 80 MHZ BAND PROCESSED|%|0|0|7|%|0|3
+002118|percentageOf20MhzBandProcessed|long|PERCENTAGE OF 20 MHZ BAND PROCESSED|%|0|0|7|%|0|3
+002119|ra2InstrumentOperations|table|RA-2 INSTRUMENT OPERATIONS|CODE TABLE|0|0|3|CODE TABLE|0|1
+002120|oceanWaveFrequency|double|OCEAN WAVE FREQUENCY|Hz|3|0|10|Hz|3|4
+002121|meanFrequency|long|MEAN FREQUENCY|Hz|-8|0|7|Hz|-8|3
+002122|frequencyAgilityRange|long|FREQUENCY AGILITY RANGE|Hz|-6|-128|8|Hz|-6|3
+002123|peakPower|long|PEAK POWER|W|-4|0|7|W|-4|3
+002124|averagePower|long|AVERAGE POWER|W|-1|0|7|W|-1|3
+002125|pulseRepetitionFrequency|long|PULSE REPETITION FREQUENCY|Hz|-1|0|8|Hz|-1|3
+002126|pulseWidth|double|PULSE WIDTH|s|7|0|6|s|7|2
+002127|receiverIntermediateFrequency|long|RECEIVER INTERMEDIATE FREQUENCY|Hz|-6|0|7|Hz|-6|3
+002128|intermediateFrequencyBandwidth|long|INTERMEDIATE FREQUENCY BANDWIDTH|Hz|-5|0|6|Hz|-5|2
+002129|minimumDetectableSignal|long|MINIMUM DETECTABLE SIGNAL|dB|0|-150|5|dB|0|3
+002130|dynamicRange|long|DYNAMIC RANGE|dB|0|0|7|dB|0|3
+002131|sensitivityTimeControl|flag|SENSITIVITY TIME CONTROL (STC)|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+002132|azimuthPointingAccuracy|double|AZIMUTH POINTING ACCURACY|deg|2|0|6|deg|2|2
+002133|elevationPointingAccuracy|double|ELEVATION POINTING ACCURACY|deg|2|0|6|deg|2|2
+002134|antennaBeamAzimuth|double|ANTENNA BEAM AZIMUTH|deg|2|0|16|deg|2|5
+002135|antennaElevation|double|ANTENNA ELEVATION|deg|2|-9000|15|deg|2|5
+002136|rangeProcessedByRangeAttenuationCorrection|long|RANGE PROCESSED BY RANGE ATTENUATION CORRECTION|m|-3|0|16|m|-3|5
+002137|radarDualPrfRatio|table|RADAR DUAL PRF RATIO|CODE TABLE|0|0|4|CODE TABLE|0|2
+002138|antennaRotationDirection|table|ANTENNA ROTATION DIRECTION|CODE TABLE|0|0|2|CODE TABLE|0|1
+002139|siralInstrumentConfiguration|table|SIRAL INSTRUMENT CONFIGURATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+002140|satelliteRadarBeamAzimuthAngle|long|SATELLITE RADAR BEAM AZIMUTH ANGLE|deg|0|0|9|deg|0|3
+002141|measurementType|string|MEASUREMENT TYPE|CCITT IA5|0|0|24|Character|0|3
+002142|ozoneInstrument|string|OZONE INSTRUMENT SERIAL NUMBER/IDENTIFICATION|CCITT IA5|0|0|32|Character|0|4
+002143|ozoneInstrumentType|table|OZONE INSTRUMENT TYPE|CODE TABLE|0|0|7|CODE TABLE|0|3
+002144|lightSourceTypeForBrewerSpectrophotometer|table|LIGHT SOURCE TYPE FOR BREWER SPECTROPHOTOMETER|CODE TABLE|0|0|4|CODE TABLE|0|2
+002145|wavelengthSettingForDobsonInstruments|table|WAVELENGTH SETTING FOR DOBSON INSTRUMENTS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002146|sourceConditionsForDobsonInstruments|table|SOURCE CONDITIONS FOR DOBSON INSTRUMENTS|CODE TABLE|0|0|4|CODE TABLE|0|2
+002147|methodOfTransmissionToCollectionCentre|table|METHOD OF TRANSMISSION TO COLLECTION CENTRE|CODE TABLE|0|0|6|CODE TABLE|0|2
+002148|dataCollectionLocationSystem|table|DATA COLLECTION AND/OR LOCATION SYSTEM|CODE TABLE|0|0|5|CODE TABLE|0|2
+002149|dataBuoyType|table|TYPE OF DATA BUOY|CODE TABLE|0|0|6|CODE TABLE|0|2
+002150|tovsOrAtovsOrAvhrrInstrumentationChannelNumber|table|TOVS/ATOVS/AVHRR INSTRUMENTATION CHANNEL NUMBER|CODE TABLE|0|0|6|CODE TABLE|0|2
+002151|radiometerIdentifier|table|RADIOMETER IDENTIFIER|CODE TABLE|0|0|11|CODE TABLE|0|4
+002152|satelliteInstrumentUsedInDataProcessing|flag|SATELLITE INSTRUMENT USED IN DATA PROCESSING|FLAG TABLE|0|0|31|FLAG TABLE|0|10
+002153|satelliteChannelCentreFrequency|long|SATELLITE CHANNEL CENTRE FREQUENCY|Hz|-8|0|26|Hz|-8|8
+002154|satelliteChannelBandWidth|long|SATELLITE CHANNEL BAND WIDTH|Hz|-8|0|26|Hz|-8|8
+002155|satelliteChannelWavelength|double|SATELLITE CHANNEL WAVELENGTH|m|9|0|16|m|9|5
+002156|percentageOfValidKuOceanRetrackerMeasurements|long|PERCENTAGE OF VALID KU OCEAN RETRACKER MEASUREMENTS|%|0|0|7|%|0|3
+002157|percentageOfValidSOceanRetrackerMeasurements|long|PERCENTAGE OF VALID S OCEAN RETRACKER MEASUREMENTS|%|0|0|7|%|0|3
+002158|ra2Instrument|flag|RA-2 INSTRUMENT|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+002159|mwrInstrument|flag|MWR INSTRUMENT|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+002160|radarWaveLength|table|WAVELENGTH OF THE RADAR|CODE TABLE|0|0|4|CODE TABLE|0|2
+002161|windProcessingMethod|flag|WIND PROCESSING METHOD|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+002162|extendedHeightAssignmentMethod|table|EXTENDED HEIGHT ASSIGNMENT METHOD|CODE TABLE|0|0|6|CODE TABLE|0|2
+002163|heightAssignmentMethod|table|HEIGHT ASSIGNMENT METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+002164|tracerCorrelationMethod|table|TRACER CORRELATION METHOD|CODE TABLE|0|0|3|CODE TABLE|0|1
+002165|radianceTypeFlags|flag|RADIANCE TYPE FLAGS|FLAG TABLE|0|0|15|FLAG TABLE|0|5
+002166|radianceType|table|RADIANCE TYPE|CODE TABLE|0|0|4|CODE TABLE|0|2
+002167|radianceComputationalMethod|table|RADIANCE COMPUTATIONAL METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+002168|hydrostaticPressureOfLowerEndOfCableThermistorString|long|HYDROSTATIC PRESSURE OF LOWER END OF CABLE (THERMISTOR STRING)|Pa|-3|0|16|kPa|0|5
+002169|anemometerType|table|ANEMOMETER TYPE|CODE TABLE|0|0|4|CODE TABLE|0|2
+002170|aircraftHumiditySensors|table|AIRCRAFT HUMIDITY SENSORS|CODE TABLE|0|0|6|CODE TABLE|0|2
+002171|instrumentSerialNumberForWaterTemperatureProfile|string|INSTRUMENT SERIAL NUMBER FOR WATER TEMPERATURE PROFILE MEASUREMENT|CCITT IA5|0|0|64|Character|0|8
+002172|productTypeForRetrievedAtmosphericGases|table|PRODUCT TYPE FOR RETRIEVED ATMOSPHERIC GASES|CODE TABLE|0|0|8|CODE TABLE|0|3
+002173|squareOfOffNadirAngle|double|SQUARE OF THE OFF-NADIR ANGLE|deg2|4|0|10|deg2|4|4
+002174|meanAcrossTrackPixelNumber|long|MEAN ACROSS TRACK PIXEL NUMBER|Numeric|0|0|9|Numeric|0|3
+002175|methodOfPrecipitationMeasurement|table|METHOD OF PRECIPITATION MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002176|methodOfStateOfGroundMeasurement|table|METHOD OF STATE OF GROUND MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002177|methodOfSnowDepthMeasurement|table|METHOD OF SNOW DEPTH MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002178|methodOfLiquidContentMeasurementOfPrecipitation|table|METHOD OF LIQUID CONTENT MEASUREMENT OF PRECIPITATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+002179|skyConditionAlgorithmType|table|TYPE OF SKY CONDITION ALGORITHM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002180|mainPresentWeatherDetectingSystem|table|MAIN PRESENT WEATHER DETECTING SYSTEM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002181|supplementaryPresentWeatherSensor|flag|SUPPLEMENTARY PRESENT WEATHER SENSOR|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+002182|visibilityMeasurementSystem|table|VISIBILITY MEASUREMENT SYSTEM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002183|cloudDetectionSystem|table|CLOUD DETECTION SYSTEM|CODE TABLE|0|0|4|CODE TABLE|0|2
+002184|lightningDetectionSensorType|table|TYPE OF LIGHTNING DETECTION SENSOR|CODE TABLE|0|0|4|CODE TABLE|0|2
+002185|methodOfEvaporationMeasurement|table|METHOD OF EVAPORATION MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+002186|capabilityToDetectPrecipitationPhenomena|flag|CAPABILITY TO DETECT PRECIPITATION PHENOMENA|FLAG TABLE|0|0|30|FLAG TABLE|0|10
+002187|capabilityToDetectOtherWeatherPhenomena|flag|CAPABILITY TO DETECT OTHER WEATHER PHENOMENA|FLAG TABLE|0|0|18|FLAG TABLE|0|6
+002188|capabilityToDetectObscuration|flag|CAPABILITY TO DETECT OBSCURATION|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+002189|capabilityToDiscriminateLightningStrikes|flag|CAPABILITY TO DISCRIMINATE LIGHTNING STRIKES|FLAG TABLE|0|0|12|FLAG TABLE|0|4
+002190|lagrangianDrifterSubmergenceTimeSubmerged|long|LAGRANGIAN DRIFTER SUBMERGENCE (% TIME SUBMERGED)|%|0|0|7|%|0|3
+002191|geopotentialHeightCalculation|table|GEOPOTENTIAL HEIGHT CALCULATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+003001|surfaceStationType|table|SURFACE STATION TYPE|CODE TABLE|0|0|5|CODE TABLE|0|2
+003003|thermometerOrHygrometerHousing|table|THERMOMETER/HYGROMETER HOUSING|CODE TABLE|0|0|4|CODE TABLE|0|2
+003004|typeOfScreenOrShelterOrRadiationShield|table|TYPE OF SCREEN/SHELTER/RADIATION SHIELD|CODE TABLE|0|0|4|CODE TABLE|0|2
+003005|horizontalWidthOfScreenOrShieldX|double|HORIZONTAL WIDTH OF SCREEN OR SHIELD (X)|m|3|0|16|m|3|5
+003006|horizontalDepthOfScreenOrShieldY|double|HORIZONTAL DEPTH OF SCREEN OR SHIELD (Y)|m|3|0|16|m|3|5
+003007|verticalHeightOfScreenOrShieldZ|double|VERTICAL HEIGHT OF SCREEN OR SHIELD (Z)|m|3|0|16|m|3|5
+003008|artificiallyVentilatedScreenOrShield|table|ARTIFICIALLY VENTILATED SCREEN OR SHIELD|CODE TABLE|0|0|3|CODE TABLE|0|1
+003009|amountOfForcedVentilationAtTimeOfReading|double|AMOUNT OF FORCED VENTILATION AT TIME OF READING|m/s|1|0|9|m/s|1|3
+003010|methodOfSeaOrWaterCurrentMeasurement|table|METHOD OF SEA/WATER CURRENT MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+003011|methodOfDepthCalculation|table|METHOD OF DEPTH CALCULATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+003012|instrumentTypeOrSensorForDissolvedOxygenMeasurement|table|INSTRUMENT TYPE/SENSOR FOR DISSOLVED OXYGEN MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+003016|positionOfRoadSensors|table|POSITION OF ROAD SENSORS|CODE TABLE|0|0|4|CODE TABLE|0|2
+003017|extendedTypeOfStation|flag|EXTENDED TYPE OF STATION|FLAG TABLE|0|0|6|FLAG TABLE|0|2
+003018|typeOfRoad|table|TYPE OF ROAD|CODE TABLE|0|0|5|CODE TABLE|0|2
+003019|typeOfConstruction|table|TYPE OF CONSTRUCTION|CODE TABLE|0|0|4|CODE TABLE|0|2
+003020|materialForThermometerOrHygrometerHousing|table|MATERIAL FOR THERMOMETER/HYGROMETER HOUSING|CODE TABLE|0|0|3|CODE TABLE|0|1
+003021|hygrometerHeating|table|HYGROMETER HEATING|CODE TABLE|0|0|2|CODE TABLE|0|1
+003022|instrumentOwner|table|INSTRUMENT OWNER|CODE TABLE|0|0|3|CODE TABLE|0|1
+003023|configurationOfLouversForThermometerOrHygrometerScreen|table|CONFIGURATION OF LOUVERS FOR THERMOMETER/HYGROMETER SCREEN|CODE TABLE|0|0|3|CODE TABLE|0|1
+003024|psychrometricCoefficient|double|PSYCHROMETRIC COEFFICIENT|K-1|6|0|10|K-1|6|3
+003025|crossTrackEstimationAreaSize|long|CROSS-TRACK ESTIMATION AREA SIZE|m|0|5000|16|m|0|5
+003026|alongTrackEstimationAreaSize|long|ALONG-TRACK ESTIMATION AREA SIZE|m|0|5000|16|m|0|5
+003027|typeOfFlightRig|table|TYPE OF FLIGHT RIG|CODE TABLE|0|0|4|CODE TABLE|0|2
+003028|methodOfSnowWaterEquivalentMeasurement|table|METHOD OF SNOW WATER EQUIVALENT MEASUREMENT|CODE TABLE|0|0|6|CODE TABLE|0|2
+003029|swath|table|SWATH|CODE TABLE|0|0|3|CODE TABLE|0|1
+003030|antennaStatus|table|ANTENNA STATUS|CODE TABLE|0|0|3|CODE TABLE|0|1
+003031|channelBandwidthFullWidthHalfMaximum|double|CHANNEL BANDWIDTH, FULL WIDTH HALF MAXIMUM (FWHM)|m|11|0|16|m|11|13
+003032|channelCentreFrequency|long|CHANNEL CENTRE FREQUENCY|Hz|-6|0|26|Hz|-6|10
+003033|channelBandWidth|long|CHANNEL BAND WIDTH|Hz|-6|0|26|Hz|-6|10
+003034|channelWavelength|double|CHANNEL WAVELENGTH|m|9|0|16|m|9|5
+004001|year|long|YEAR|a|0|0|12|a|0|4
+004002|month|long|MONTH|mon|0|0|4|mon|0|2
+004003|day|long|DAY|d|0|0|6|d|0|2
+004004|hour|long|HOUR|h|0|0|5|h|0|2
+004005|minute|long|MINUTE|min|0|0|6|min|0|2
+004006|second|long|SECOND|s|0|0|6|s|0|2
+004007|secondsWithinAMinuteMicrosecond|double|SECONDS WITHIN A MINUTE (MICROSECOND ACCURACY)|s|6|0|26|s|6|8
+004011|timeIncrement|long|TIME INCREMENT|a|0|-1024|11|a|0|4
+004012|timeIncrement|long|TIME INCREMENT|mon|0|-1024|11|mon|0|4
+004013|timeIncrement|long|TIME INCREMENT|d|0|-1024|11|d|0|4
+004014|timeIncrement|long|TIME INCREMENT|h|0|-1024|11|h|0|4
+004015|timeIncrement|long|TIME INCREMENT|min|0|-2048|12|min|0|4
+004016|timeIncrement|long|TIME INCREMENT|s|0|-4096|13|s|0|4
+004017|referenceTimePeriodForAccumulatedOrExtremeData|long|REFERENCE TIME PERIOD FOR ACCUMULATED OR EXTREME DATA|min|0|-1440|12|min|0|4
+004021|timePeriod|long|TIME PERIOD OR DISPLACEMENT|a|0|-1024|11|a|0|4
+004022|timePeriod|long|TIME PERIOD OR DISPLACEMENT|mon|0|-1024|11|mon|0|4
+004023|timePeriod|long|TIME PERIOD OR DISPLACEMENT|d|0|-1024|11|d|0|4
+004024|timePeriod|long|TIME PERIOD OR DISPLACEMENT|h|0|-2048|12|h|0|4
+004025|timePeriod|long|TIME PERIOD OR DISPLACEMENT|min|0|-2048|12|min|0|4
+004026|timePeriod|long|TIME PERIOD OR DISPLACEMENT|s|0|-4096|13|s|0|4
+004031|durationOfTimeRelatingToFollowingValue|long|DURATION OF TIME RELATING TO FOLLOWING VALUE|h|0|0|8|h|0|3
+004032|durationOfTimeRelatingToFollowingValue|long|DURATION OF TIME RELATING TO FOLLOWING VALUE|min|0|0|6|min|0|2
+004041|timeDifferenceUtcLmt|long|TIME DIFFERENCE, UTC - LMT|min|0|-1440|12|min|0|4
+004043|dayOfYear|long|DAY OF THE YEAR|d|0|0|9|d|0|3
+004051|principalTimeOfDailyReadingOfMaximumTemperature|long|PRINCIPAL TIME OF DAILY READING OF MAXIMUM TEMPERATURE|h|0|0|5|h|0|2
+004052|principalTimeOfDailyReadingOfMinimumTemperature|long|PRINCIPAL TIME OF DAILY READING OF MINIMUM TEMPERATURE|h|0|0|5|h|0|2
+004053|numberOfDaysWithPrecipitationEqualToOrMoreThan1Mm|long|NUMBER OF DAYS WITH PRECIPITATION EQUAL TO OR MORE THAN 1 MM|Numeric|0|0|6|Numeric|0|2
+004059|timesOfObservationUsedToComputeReportedMeanValues|flag|TIMES OF OBSERVATION USED TO COMPUTE THE REPORTED MEAN VALUES|FLAG TABLE|0|0|6|FLAG TABLE|0|2
+004065|timeIncrement|long|SHORT TIME INCREMENT|min|0|-128|8|min|0|2
+004066|timeIncrement|long|SHORT TIME INCREMENT|s|0|-128|8|s|0|2
+004073|timePeriod|long|SHORT TIME PERIOD OR DISPLACEMENT|d|0|-128|8|d|0|2
+004074|timePeriod|long|SHORT TIME PERIOD OR DISPLACEMENT|h|0|-128|8|h|0|2
+004075|timePeriod|long|SHORT TIME PERIOD OR DISPLACEMENT|min|0|-128|8|min|0|2
+004080|averagingPeriodForFollowingValue|table|AVERAGING PERIOD FOR FOLLOWING VALUE|CODE TABLE|0|0|4|CODE TABLE|0|2
+004086|timePeriod|long|LONG TIME PERIOD OR DISPLACEMENT|s|0|-8192|15|s|0|5
+005001|latitude|double|LATITUDE (HIGH ACCURACY)|deg|5|-9000000|25|deg|5|7
+005002|latitude|double|LATITUDE (COARSE ACCURACY)|deg|2|-9000|15|deg|2|4
+005011|latitudeIncrement|double|LATITUDE INCREMENT (HIGH ACCURACY)|deg|5|-9000000|25|deg|5|7
+005012|latitudeIncrement|double|LATITUDE INCREMENT (COARSE ACCURACY)|deg|2|-9000|15|deg|2|4
+005015|latitudeDisplacement|double|LATITUDE DISPLACEMENT (HIGH ACCURACY)|deg|5|-9000000|25|deg|5|7
+005016|latitudeDisplacement|double|LATITUDE DISPLACEMENT (COARSE ACCURACY)|deg|2|-9000|15|deg|2|4
+005021|bearingOrAzimuth|double|BEARING OR AZIMUTH|deg|2|0|16|deg|2|5
+005022|solarAzimuth|double|SOLAR AZIMUTH|deg|2|0|16|deg|2|5
+005023|sunToSatelliteAzimuthDifference|double|SUN TO SATELLITE AZIMUTH DIFFERENCE|deg|1|-1800|12|deg|1|4
+005030|directionSpectral|long|DIRECTION (SPECTRAL)|deg|0|0|12|deg|0|4
+005031|rowNumber|long|ROW NUMBER|Numeric|0|0|12|Numeric|0|4
+005032|yOffset|double|Y OFFSET|m|2|-1073741824|31|m|2|11
+005033|pixelSizeOnHorizontal1|long|PIXEL SIZE ON HORIZONTAL - 1|m|-1|0|16|m|-1|5
+005034|alongTrackRowNumber|long|ALONG TRACK ROW NUMBER|Numeric|0|0|11|Numeric|0|4
+005035|xDimensionMaximumSize|long|MAXIMUM SIZE OF X-DIMENSION|Numeric|0|0|12|Numeric|0|4
+005036|shipTransectNumberAccordingToSoop|long|SHIP TRANSECT NUMBER ACCORDING TO SOOP|Numeric|0|0|7|Numeric|0|2
+005040|orbitNumber|long|ORBIT NUMBER|Numeric|0|0|24|Numeric|0|8
+005041|scanLineNumber|long|SCAN LINE NUMBER|Numeric|0|0|8|Numeric|0|3
+005042|channelNumber|long|CHANNEL NUMBER|Numeric|0|0|6|Numeric|0|2
+005043|fieldOfViewNumber|long|FIELD OF VIEW NUMBER|Numeric|0|0|8|Numeric|0|3
+005044|satelliteCycleNumber|long|SATELLITE CYCLE NUMBER|Numeric|0|0|11|Numeric|0|4
+005045|fieldOfRegardNumber|long|FIELD OF REGARD NUMBER|Numeric|0|0|8|Numeric|0|3
+005052|channelNumberIncrement|long|CHANNEL NUMBER INCREMENT|Numeric|0|0|5|Numeric|0|2
+005053|fieldOfViewNumberIncrement|long|FIELD OF VIEW NUMBER INCREMENT|Numeric|0|0|5|Numeric|0|2
+005060|yAngularPositionFromCentreOfGravity|double|Y ANGULAR POSITION FROM CENTRE OF GRAVITY|deg|6|-8000000|24|deg|6|8
+005061|zAngularPositionFromCentreOfGravity|double|Z ANGULAR POSITION FROM CENTRE OF GRAVITY|deg|6|-8000000|24|deg|6|8
+005063|spacecraftRoll|double|SPACECRAFT ROLL|deg|2|0|16|deg|2|5
+005064|spacecraftPitch|double|SPACECRAFT PITCH|deg|2|0|16|deg|2|5
+005066|spacecraftYaw|double|SPACECRAFT YAW|deg|2|0|16|deg|2|5
+005067|numberOfScanLines|long|NUMBER OF SCAN LINES|Numeric|0|0|8|Numeric|0|3
+005068|profileNumber|long|PROFILE NUMBER|Numeric|0|0|16|Numeric|0|5
+005069|receiverChannel|table|RECEIVER CHANNEL|CODE TABLE|0|0|2|CODE TABLE|0|1
+005070|observationIdentifier|long|OBSERVATION IDENTIFIER|Numeric|0|0|30|Numeric|0|10
+005071|stripmapIdentifier|long|STRIPMAP IDENTIFIER|Numeric|0|0|16|Numeric|0|5
+005072|numberOfSpectraInRangeDirection|long|NUMBER OF SPECTRA IN RANGE DIRECTION|Numeric|0|0|8|Numeric|0|3
+005073|numberOfSpectraInAzimuthalDirection|long|NUMBER OF SPECTRA IN AZIMUTHAL DIRECTION|Numeric|0|0|8|Numeric|0|3
+005074|indexInRangeDirection|long|INDEX IN RANGE DIRECTION|Numeric|0|0|8|Numeric|0|3
+005075|indexInAzimuthalDirection|long|INDEX IN AZIMUTHAL DIRECTION|Numeric|0|0|8|Numeric|0|3
+005076|solarAzimuthInInstrumentReferenceFrame|double|SOLAR AZIMUTH IN INSTRUMENT REFERENCE FRAME|deg|2|0|16|deg|2|6
+005077|subSatellitePointLatitude|double|SUB-SATELLITE POINT LATITUDE|deg|4|-900000|21|deg|4|7
+005078|hornNumber|long|HORN NUMBER|Numeric|0|0|4|Numeric|0|2
+005079|bandNumber|long|BAND NUMBER|Numeric|0|0|6|Numeric|0|2
+005080|resolutionRadius|long|RESOLUTION RADIUS|m|-3|0|6|m|-3|2
+006001|longitude|double|LONGITUDE (HIGH ACCURACY)|deg|5|-18000000|26|deg|5|8
+006002|longitude|double|LONGITUDE (COARSE ACCURACY)|deg|2|-18000|16|deg|2|5
+006011|longitudeIncrement|double|LONGITUDE INCREMENT (HIGH ACCURACY)|deg|5|-18000000|26|deg|5|8
+006012|longitudeIncrement|double|LONGITUDE INCREMENT (COARSE ACCURACY)|deg|2|-18000|16|deg|2|5
+006015|longitudeDisplacement|double|LONGITUDE DISPLACEMENT (HIGH ACCURACY)|deg|5|-18000000|26|deg|5|8
+006016|longitudeDisplacement|double|LONGITUDE DISPLACEMENT (COARSE ACCURACY)|deg|2|-18000|16|deg|2|5
+006021|distance|long|DISTANCE|m|-1|0|13|m|-1|4
+006029|waveNumber|double|WAVE NUMBER|/m|1|0|22|/m|1|7
+006030|waveNumberSpectral|double|WAVE NUMBER (SPECTRAL)|rad/m|5|0|13|rad/m|5|4
+006031|columnNumber|long|COLUMN NUMBER|Numeric|0|0|12|Numeric|0|4
+006032|xOffset|double|X OFFSET|m|2|-1073741824|31|m|2|11
+006033|pixelSizeOnHorizontal2|long|PIXEL SIZE ON HORIZONTAL - 2|m|-1|0|16|m|-1|5
+006034|crossTrackCellNumber|long|CROSS-TRACK CELL NUMBER|Numeric|0|0|7|Numeric|0|3
+006035|yDimensionMaximumSize|long|MAXIMUM SIZE OF Y-DIMENSION|Numeric|0|0|12|Numeric|0|4
+006040|radiusOfConfidence|long|RADIUS OF CONFIDENCE|m|0|0|13|m|0|4
+006041|earthScanSampleNumber|long|EARTH SCAN SAMPLE NUMBER|Numeric|0|0|11|Numeric|0|4
+006042|spaceOrMoonScanSampleNumber|long|SPACE/MOON SCAN SAMPLE NUMBER|Numeric|0|0|6|Numeric|0|2
+006043|subSatellitePointLongitude|double|SUB-SATELLITE POINT LONGITUDE|deg|4|-1800000|22|deg|4|8
+007001|heightOfStation|long|HEIGHT OF STATION|m|0|-400|15|m|0|5
+007002|height|long|HEIGHT OR ALTITUDE|m|-1|-40|16|m|-1|5
+007003|geopotential|long|GEOPOTENTIAL|m2 s-2|-1|-400|17|m2 s-2|-1|6
+007004|pressure|long|PRESSURE|Pa|-1|0|14|Pa|-1|5
+007005|heightIncrement|long|HEIGHT INCREMENT|m|0|-400|12|m|0|4
+007006|heightAboveStation|long|HEIGHT ABOVE STATION|m|0|0|15|m|0|5
+007007|height|long|HEIGHT|m|0|-1000|17|m|0|6
+007008|geopotential|long|GEOPOTENTIAL|m2 s-2|0|-10000|20|m2 s-2|0|7
+007009|geopotentialHeight|long|GEOPOTENTIAL HEIGHT|gpm|0|-1000|17|gpm|0|5
+007010|flightLevel|long|FLIGHT LEVEL|m|0|-1024|16|ft|-1|5
+007012|gridPointAltitude|double|GRID POINT ALTITUDE|m|2|-50000|20|m|2|7
+007021|elevation|double|ELEVATION|deg|2|-9000|15|deg|2|5
+007022|solarElevation|double|SOLAR ELEVATION|deg|2|-9000|15|deg|2|5
+007024|satelliteZenithAngle|double|SATELLITE ZENITH ANGLE|deg|2|-9000|15|deg|2|5
+007025|solarZenithAngle|double|SOLAR ZENITH ANGLE|deg|2|-9000|15|deg|2|5
+007026|satelliteZenithAngle|double|SATELLITE ZENITH ANGLE|deg|4|-900000|21|deg|4|7
+007030|heightOfStationGroundAboveMeanSeaLevel|double|HEIGHT OF STATION GROUND ABOVE MEAN SEA LEVEL|m|1|-4000|17|m|1|5
+007031|heightOfBarometerAboveMeanSeaLevel|double|HEIGHT OF BAROMETER ABOVE MEAN SEA LEVEL|m|1|-4000|17|m|1|5
+007032|heightOfSensorAboveLocalGroundOrDeckOfMarinePlatform|double|HEIGHT OF SENSOR ABOVE LOCAL GROUND (OR DECK OF MARINE PLATFORM)|m|2|0|16|m|2|5
+007033|heightOfSensorAboveWaterSurface|double|HEIGHT OF SENSOR ABOVE WATER SURFACE|m|1|0|12|m|1|4
+007035|zDimensionMaximumSize|long|MAXIMUM SIZE OF Z-DIMENSION|Numeric|0|0|12|Numeric|0|4
+007036|levelIndexOfZ|long|LEVEL INDEX OF Z|Numeric|0|0|12|Numeric|0|4
+007040|impactParameter|double|IMPACT PARAMETER|m|1|62000000|22|m|1|8
+007061|depthBelowLandSurface|double|DEPTH BELOW LAND SURFACE|m|2|0|14|m|2|5
+007062|depthBelowWaterSurface|double|DEPTH BELOW SEA/WATER SURFACE|m|1|0|17|m|1|6
+007063|depthBelowWaterSurface|double|DEPTH BELOW SEA/WATER SURFACE (CM)|m|2|0|20|m|2|7
+007064|representativeHeightOfSensorAboveStation|long|REPRESENTATIVE HEIGHT OF SENSOR ABOVE STATION|m|0|0|4|m|0|2
+007065|waterPressure|long|WATER PRESSURE|Pa|-3|0|17|Pa|-3|6
+007070|drogueDepth|long|DROGUE DEPTH|m|0|0|10|m|0|4
+007071|height|double|HEIGHT (HIGH RESOLUTION)|m|3|-10000000|26|m|3|8
+007072|scanAngle|double|SCAN ANGLE|deg|2|-9000|15|deg|2|6
+007073|angleBetweenMoonAndSpaceView|double|ANGLE BETWEEN MOON AND SPACE VIEW|deg|2|0|15|deg|2|5
+007074|solarElevationAngleInInstrumentReferenceFrame|double|SOLAR ELEVATION ANGLE IN INSTRUMENT REFERENCE FRAME|deg|2|-9000|15|deg|2|5
+007075|scatteringAngle|long|SCATTERING ANGLE|deg|0|0|8|deg|0|3
+007076|relativeAzimuthAngle|long|RELATIVE AZIMUTH ANGLE|deg|0|0|8|deg|0|3
+008001|verticalSoundingSignificance|flag|VERTICAL SOUNDING SIGNIFICANCE|FLAG TABLE|0|0|7|FLAG TABLE|0|3
+008002|verticalSignificanceSurfaceObservations|table|VERTICAL SIGNIFICANCE (SURFACE OBSERVATIONS)|CODE TABLE|0|0|6|CODE TABLE|0|2
+008003|verticalSignificanceSatelliteObservations|table|VERTICAL SIGNIFICANCE (SATELLITE OBSERVATIONS)|CODE TABLE|0|0|6|CODE TABLE|0|2
+008004|phaseOfAircraftFlight|table|PHASE OF AIRCRAFT FLIGHT|CODE TABLE|0|0|3|CODE TABLE|0|1
+008005|meteorologicalAttributeSignificance|table|METEOROLOGICAL ATTRIBUTE SIGNIFICANCE|CODE TABLE|0|0|4|CODE TABLE|0|2
+008006|ozoneVerticalSoundingSignificance|flag|OZONE VERTICAL SOUNDING SIGNIFICANCE|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+008007|dimensionalSignificance|table|DIMENSIONAL SIGNIFICANCE|CODE TABLE|0|0|4|CODE TABLE|0|2
+008008|radiationVerticalSoundingSignificance|flag|RADIATION VERTICAL SOUNDING SIGNIFICANCE|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+008009|detailedPhaseOfFlight|table|DETAILED PHASE OF FLIGHT|CODE TABLE|0|0|4|CODE TABLE|0|2
+008010|surfaceQualifierForTemperatureData|table|SURFACE QUALIFIER (TEMPERATURE DATA)|CODE TABLE|0|0|5|CODE TABLE|0|2
+008011|meteorologicalFeature|table|METEOROLOGICAL FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2
+008012|landOrSeaQualifier|table|LAND/SEA QUALIFIER|CODE TABLE|0|0|2|CODE TABLE|0|1
+008013|dayOrNightQualifier|table|DAY/NIGHT QUALIFIER|CODE TABLE|0|0|2|CODE TABLE|0|1
+008014|qualifierForRunwayVisualRange|table|QUALIFIER FOR RUNWAY VISUAL RANGE|CODE TABLE|0|0|4|CODE TABLE|0|2
+008015|significantQualifierForSensor|table|SIGNIFICANT QUALIFIER FOR SENSOR|CODE TABLE|0|0|3|CODE TABLE|0|1
+008016|changeQualifierOfATrendTypeForecastOrAnAerodromeForecast|table|CHANGE QUALIFIER OF A TREND-TYPE FORECAST OR AN AERODROME FORECAST|CODE TABLE|0|0|3|CODE TABLE|0|1
+008017|qualifierOfTimeWhenForecastChangeExpected|table|QUALIFIER OF THE TIME WHEN THE FORECAST CHANGE IS EXPECTED|CODE TABLE|0|0|2|CODE TABLE|0|1
+008018|seawindsLandOrIceSurfaceType|flag|SEAWINDS LAND/ICE SURFACE TYPE|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+008019|qualifierForFollowingCentreIdentifier|table|QUALIFIER FOR FOLLOWING CENTRE IDENTIFIER|CODE TABLE|0|0|4|CODE TABLE|0|2
+008020|totalNumberOfMissingEntitiesWithRespectToAccumulationOrAverage|long|TOTAL NUMBER OF MISSING ENTITIES (WITH RESPECT TO ACCUMULATION OR AVERAGE)|Numeric|0|0|16|Numeric|0|5
+008021|timeSignificance|table|TIME SIGNIFICANCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+008022|totalNumberWithRespectToAccumulationOrAverage|long|TOTAL NUMBER (WITH RESPECT TO ACCUMULATION OR AVERAGE)|Numeric|0|0|16|Numeric|0|5
+008023|firstOrderStatistics|table|FIRST-ORDER STATISTICS|CODE TABLE|0|0|6|CODE TABLE|0|2
+008024|differenceStatistics|table|DIFFERENCE STATISTICS|CODE TABLE|0|0|6|CODE TABLE|0|2
+008025|timeDifferenceQualifier|table|TIME DIFFERENCE QUALIFIER|CODE TABLE|0|0|4|CODE TABLE|0|2
+008026|matrixSignificance|table|MATRIX SIGNIFICANCE|CODE TABLE|0|0|6|CODE TABLE|0|2
+008029|surfaceType|table|SURFACE TYPE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008030|manualOnCodesVolumeI1SectionCCodeTableFromWhichDataAreDerived|long|MANUAL ON CODES (VOLUME I.1, SECTION C) CODE TABLE FROM WHICH DATA ARE DERIVED|Numeric|0|0|13|Numeric|0|4
+008031|dataCategoryCrexTableA|long|DATA CATEGORY - CREX TABLE A|Numeric|0|0|8|Numeric|0|3
+008032|statusOfOperation|table|STATUS OF OPERATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+008033|methodOfDerivationOfPercentageConfidence|table|METHOD OF DERIVATION OF PERCENTAGE CONFIDENCE|CODE TABLE|0|0|7|CODE TABLE|0|3
+008034|temperatureOrSalinityMeasurementQualifier|table|TEMPERATURE/SALINITY MEASUREMENT QUALIFIER|CODE TABLE|0|0|4|CODE TABLE|0|2
+008035|monitoringExerciseType|table|TYPE OF MONITORING EXERCISE|CODE TABLE|0|0|3|CODE TABLE|0|1
+008036|typeOfCentreOrStationPerformingMonitoring|table|TYPE OF CENTRE OR STATION PERFORMING MONITORING|CODE TABLE|0|0|3|CODE TABLE|0|1
+008037|baselineCheckSignificance|table|BASELINE CHECK SIGNIFICANCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+008038|instrumentDataSignificance|table|INSTRUMENT DATA SIGNIFICANCE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008039|timeSignificanceAviationForecast|table|TIME SIGNIFICANCE (AVIATION FORECAST)|CODE TABLE|0|0|6|CODE TABLE|0|2
+008040|flightLevelSignificance|table|FLIGHT LEVEL SIGNIFICANCE|CODE TABLE|0|0|6|CODE TABLE|0|2
+008041|dataSignificance|table|DATA SIGNIFICANCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+008042|extendedVerticalSoundingSignificance|flag|EXTENDED VERTICAL SOUNDING SIGNIFICANCE|FLAG TABLE|0|0|18|FLAG TABLE|0|6
+008043|atmosphericChemical|table|ATMOSPHERIC CHEMICAL OR PHYSICAL CONSTITUENT TYPE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008044|casRegistryNumber|string|CAS REGISTRY NUMBER|CCITT IA5|0|0|88|Character|0|11
+008045|characterOfParticulateMatter|table|CHARACTER OF PARTICULATE MATTER|CODE TABLE|0|0|8|Character|0|2
+008046|atmosphericChemical|table|ATMOSPHERIC CHEMICAL OR PHYSICAL CONSTITUENT TYPE|Common CODE TABLE C-14|0|0|16|Common CODE TABLE C-14|0|5
+008049|numberOfObservations|long|NUMBER OF OBSERVATIONS|Numeric|0|0|8|Numeric|0|3
+008050|qualifierForNumberOfMissingValuesInCalculationOfStatistic|table|QUALIFIER FOR NUMBER OF MISSING VALUES IN CALCULATION OF STATISTIC|CODE TABLE|0|0|4|CODE TABLE|0|2
+008051|qualifierForNumberOfMissingValuesInCalculationOfStatistic|table|QUALIFIER FOR NUMBER OF MISSING VALUES IN CALCULATION OF STATISTIC|CODE TABLE|0|0|3|CODE TABLE|0|1
+008052|conditionForWhichNumberOfDaysOfOccurrenceFollows|table|CONDITION FOR WHICH NUMBER OF DAYS OF OCCURRENCE FOLLOWS|CODE TABLE|0|0|5|CODE TABLE|0|2
+008053|dayOfOccurrenceQualifier|table|DAY OF OCCURRENCE QUALIFIER|CODE TABLE|0|0|2|CODE TABLE|0|1
+008054|qualifierForWindSpeedOrWindGusts|table|QUALIFIER FOR WIND SPEED OR WIND GUSTS|CODE TABLE|0|0|3|CODE TABLE|0|1
+008060|sampleScanningModeSignificance|table|SAMPLE SCANNING MODE SIGNIFICANCE|CODE TABLE|0|0|4|CODE TABLE|0|2
+008065|sunGlintIndicator|table|SUN-GLINT INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+008066|semiTransparencyIndicator|table|SEMI-TRANSPARENCY INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+008070|verticalSoundingProductQualifier|table|VERTICAL SOUNDING PRODUCT QUALIFIER|CODE TABLE|0|0|4|CODE TABLE|0|2
+008071|typeOfCostEstimation|table|TYPE OF COST ESTIMATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+008072|pixelType|table|PIXEL(S) TYPE|CODE TABLE|0|0|3|CODE TABLE|0|1
+008074|altimeterEchoType|table|ALTIMETER ECHO TYPE|CODE TABLE|0|0|2|CODE TABLE|0|1
+008075|orbitQualifier|table|ASCENDING/DESCENDING ORBIT QUALIFIER|CODE TABLE|0|0|2|CODE TABLE|0|1
+008076|band|table|TYPE OF BAND|CODE TABLE|0|0|6|CODE TABLE|0|2
+008077|radiometerSensedSurfaceType|table|RADIOMETER SENSED SURFACE TYPE|CODE TABLE|0|0|7|CODE TABLE|0|3
+008079|productStatus|table|PRODUCT STATUS|CODE TABLE|0|0|4|CODE TABLE|0|2
+008080|qualifierForGtsppQualityFlag|table|QUALIFIER FOR GTSPP QUALITY FLAG|CODE TABLE|0|0|6|CODE TABLE|0|2
+008081|equipmentType|table|TYPE OF EQUIPMENT|CODE TABLE|0|0|6|CODE TABLE|0|2
+008082|modificationOfSensorHeightToAnotherValue|table|MODIFICATION OF SENSOR HEIGHT TO ANOTHER VALUE|CODE TABLE|0|0|3|CODE TABLE|0|1
+008083|nominalValueIndicator|flag|NOMINAL VALUE INDICATOR|FLAG TABLE|0|0|15|FLAG TABLE|0|5
+008085|beamIdentifier|table|BEAM IDENTIFIER|CODE TABLE|0|0|3|CODE TABLE|0|1
+008086|verticalSignificanceForNwp|flag|VERTICAL SIGNIFICANCE FOR NWP|FLAG TABLE|0|0|12|FLAG TABLE|0|4
+008087|cornerPositionOfObservation|table|CORNER POSITION OF OBSERVATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+008088|mapSignificance|table|MAP SIGNIFICANCE|CODE TABLE|0|0|6|CODE TABLE|0|2
+008090|decimalScaleOfFollowingSignificands|long|DECIMAL SCALE OF FOLLOWING SIGNIFICANDS|Numeric|0|-127|8|Numeric|0|3
+008091|coordinatesSignificance|table|COORDINATES SIGNIFICANCE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008092|measurementUncertaintyExpression|table|MEASUREMENT UNCERTAINTY EXPRESSION|CODE TABLE|0|0|5|CODE TABLE|0|2
+008093|measurementUncertaintySignificance|table|MEASUREMENT UNCERTAINTY SIGNIFICANCE|CODE TABLE|0|0|5|CODE TABLE|0|2
+008094|methodUsedToCalculateTheAverageDailyTemperature|table|METHOD USED TO CALCULATE THE AVERAGE DAILY TEMPERATURE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008095|sitingAndMeasurementQualityClassificationForTemperature|table|SITING AND MEASUREMENT QUALITY CLASSIFICATION FOR TEMPERATURE|CODE TABLE|0|0|8|CODE TABLE|0|3
+008096|sitingAndMeasurementQualityClassificationForPrecipitation|table|SITING AND MEASUREMENT QUALITY CLASSIFICATION FOR PRECIPITATION|CODE TABLE|0|0|8|CODE TABLE|0|3
+008097|methodUsedToCalculateTheAverageInstrumentTemperature|table|METHOD USED TO CALCULATE THE AVERAGE INSTRUMENT TEMPERATURE|CODE TABLE|0|0|7|CODE TABLE|0|3
+008098|sourceOfTemperatureMeasurement|table|SOURCE OF TEMPERATURE MEASUREMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+008099|sensingDirection|table|SENSING DIRECTION|CODE TABLE|0|0|4|CODE TABLE|0|2
+010001|heightOfLandSurface|long|HEIGHT OF LAND SURFACE|m|0|-400|15|m|0|5
+010002|nonCoordinateHeight|long|HEIGHT|m|-1|-40|16|m|-1|5
+010003|nonCoordinateGeopotential|long|GEOPOTENTIAL|m2 s-2|-1|-400|17|m2 s-2|-1|6
+010004|nonCoordinatePressure|long|PRESSURE|Pa|-1|0|14|Pa|-1|5
+010007|nonCoordinateHeight|long|HEIGHT|m|0|-1000|17|m|0|6
+010008|nonCoordinateGeopotential|long|GEOPOTENTIAL|m2 s-2|0|-10000|20|m2 s-2|0|7
+010009|nonCoordinateGeopotentialHeight|long|GEOPOTENTIAL HEIGHT|gpm|0|-1000|17|gpm|0|5
+010010|minimumPressureReducedToMeanSeaLevel|long|MINIMUM PRESSURE REDUCED TO MEAN SEA LEVEL|Pa|-1|0|14|Pa|-1|5
+010011|maximumPressureReducedToMeanSeaLevel|long|MAXIMUM PRESSURE REDUCED TO MEAN SEA LEVEL|Pa|-1|0|14|Pa|-1|5
+010031|DistanceFromEarthCentreInDirectionOfNorthPole|double|IN DIRECTION OF THE NORTH POLE, DISTANCE FROM THE EARTH'S CENTRE|m|2|-1073741824|31|m|2|10
+010032|satelliteDistanceToEarthCentre|double|SATELLITE DISTANCE TO EARTH'S CENTRE|m|1|0|27|m|2|9
+010033|altitudePlatformToEllipsoid|double|ALTITUDE (PLATFORM TO ELLIPSOID)|m|1|0|27|m|2|9
+010034|earthRadius|double|EARTH'S RADIUS|m|1|0|27|m|2|9
+010035|earthLocalRadiusOfCurvature|double|EARTH'S LOCAL RADIUS OF CURVATURE|m|1|62000000|22|m|1|8
+010036|geoidUndulation|double|GEOID UNDULATION|m|2|-15000|15|m|2|6
+010038|maximumHeightOfDeckCargoAboveSummerLoadLine|long|MAXIMUM HEIGHT OF DECK CARGO ABOVE SUMMER LOAD LINE|m|0|0|6|m|0|2
+010039|departureOfReferenceLevelSummerMaximumLoadLineFromActualSeaLevel|long|DEPARTURE OF REFERENCE LEVEL (SUMMER MAXIMUM LOAD LINE) FROM ACTUAL SEA LEVEL|m|0|-32|6|m|0|3
+010040|numberOfRetrievedLayers|long|NUMBER OF RETRIEVED LAYERS|Numeric|0|0|10|Numeric|0|4
+010050|standardDeviationAltitude|double|STANDARD DEVIATION ALTITUDE|m|2|0|16|m|2|5
+010051|pressureReducedToMeanSeaLevel|long|PRESSURE REDUCED TO MEAN SEA LEVEL|Pa|-1|0|14|Pa|-1|5
+010052|altimeterSettingQnh|long|ALTIMETER SETTING (QNH)|Pa|-1|0|14|Pa|-1|5
+010053|globalNavigationSatelliteSystemAltitude|long|GLOBAL NAVIGATION SATELLITE SYSTEM ALTITUDE|m|0|-1000|17|m|0|5
+010060|pressureChange|long|PRESSURE CHANGE|Pa|-1|-1024|11|Pa|-1|4
+010061|3HourPressureChange|long|3-HOUR PRESSURE CHANGE|Pa|-1|-500|10|Pa|-1|4
+010062|24HourPressureChange|long|24-HOUR PRESSURE CHANGE|Pa|-1|-1000|11|Pa|-1|4
+010063|characteristicOfPressureTendency|table|CHARACTERISTIC OF PRESSURE TENDENCY|CODE TABLE|0|0|4|CODE TABLE|0|2
+010064|sigmetCruisingLevel|table|SIGMET CRUISING LEVEL|CODE TABLE|0|0|3|CODE TABLE|0|1
+010070|indicatedAircraftAltitude|long|INDICATED AIRCRAFT ALTITUDE|m|0|-400|16|m|0|5
+010071|verticalResolution|long|VERTICAL RESOLUTION|m|0|0|14|m|0|5
+010073|heightOfPlume|double|HEIGHT OF PLUME|m|2|0|21|m|2|7
+010079|offNadirAngleOfTheSatelliteFromPlatformData|double|OFF-NADIR ANGLE OF THE SATELLITE FROM PLATFORM DATA|deg|4|0|16|deg|4|5
+010080|viewingZenithAngle|double|VIEWING ZENITH ANGLE|deg|2|-9000|15|deg|2|5
+010081|cogAltitudeAboveReferenceEllipsoid|double|ALTITUDE OF COG ABOVE REFERENCE ELLIPSOID|m|3|0|31|m|3|10
+010082|instantaneousAltitudeRate|double|INSTANTANEOUS ALTITUDE RATE|m/s|3|-65536|17|m/s|3|6
+010083|squaredOffNadirAngleOfSatelliteFromPlatformData|double|SQUARED OFF-NADIR ANGLE OF THE SATELLITE FROM PLATFORM DATA|deg2|2|0|16|deg2|2|5
+010084|squaredOffNadirAngleOfSatelliteFromWaveformData|double|SQUARED OFF-NADIR ANGLE OF THE SATELLITE FROM WAVEFORM DATA|deg2|2|0|16|deg2|2|5
+010085|meanSeaSurfaceHeight|double|MEAN SEA-SURFACE HEIGHT|m|3|-131072|18|m|3|6
+010086|geoidHeight|double|GEOID'S HEIGHT|m|3|-131072|18|m|3|6
+010087|oceanDepthOrLandElevation|double|OCEAN DEPTH/LAND ELEVATION|m|1|-131072|18|m|1|6
+010088|totalGeocentricOceanTideHeightSolution1|double|TOTAL GEOCENTRIC OCEAN TIDE HEIGHT (SOLUTION 1)|m|3|-32768|16|m|3|5
+010089|totalGeocentricOceanTideHeightSolution2|double|TOTAL GEOCENTRIC OCEAN TIDE HEIGHT (SOLUTION 2)|m|3|-32768|16|m|3|5
+010090|longPeriodTideHeight|double|LONG PERIOD TIDE HEIGHT|m|3|-32768|16|m|3|5
+010091|tidalLoadingHeight|double|TIDAL LOADING HEIGHT|m|3|-32768|16|m|3|5
+010092|solidEarthTideHeight|double|SOLID EARTH TIDE HEIGHT|m|3|-32768|16|m|3|5
+010093|geocentricPoleTideHeight|double|GEOCENTRIC POLE TIDE HEIGHT|m|3|-32768|16|m|3|5
+010095|heightOfAtmosphere|long|HEIGHT OF ATMOSPHERE USED|m|0|0|16|m|0|5
+010096|meanDynamicTopography|double|MEAN DYNAMIC TOPOGRAPHY|m|3|-131072|18|m|3|6
+010097|meanSeaSurfaceHeightFromAltimeterOnly|double|MEAN SEA-SURFACE HEIGHT FROM ALTIMETER ONLY|m|3|-131072|18|m|3|6
+010098|loadingTideHeightGeocentricOceanTideSolution1|double|LOADING TIDE HEIGHT GEOCENTRIC OCEAN TIDE SOLUTION 1|m|4|-2000|12|m|4|4
+010099|loadingTideHeightGeocentricOceanTideSolution2|double|LOADING TIDE HEIGHT GEOCENTRIC OCEAN TIDE SOLUTION 2|m|4|-2000|12|m|4|4
+010100|nonEquilibriumLongPeriodTideHeight|double|NON-EQUILIBRIUM LONG PERIOD TIDE HEIGHT|m|4|-2000|12|m|4|4
+010101|squaredOffNadirAngleOfSatelliteFromWaveformData|double|SQUARED OFF-NADIR ANGLE OF THE SATELLITE FROM WAVEFORM DATA|deg2|2|-32768|16|deg2|2|5
+010102|seaSurfaceHeightAnomaly|double|SEA-SURFACE HEIGHT ANOMALY|m|3|-32768|16|m|3|5
+010103|meanDynamicTopographyAccuracy|double|MEAN DYNAMIC TOPOGRAPHY ACCURACY|m|3|-131072|18|m|3|6
+011001|windDirection|long|WIND DIRECTION|deg|0|0|9|deg|0|3
+011002|windSpeed|double|WIND SPEED|m/s|1|0|12|m/s|1|4
+011003|u|double|U-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011004|v|double|V-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011005|w|double|W-COMPONENT|Pa/s|1|-512|10|Pa/s|1|4
+011006|w|double|W-COMPONENT|m/s|2|-4096|13|m/s|2|4
+011007|relativeWindDirectionInDegreesOffBow|long|RELATIVE WIND DIRECTION (IN DEGREES OFF BOW)|deg|0|0|9|deg|0|3
+011008|relativeWindSpeed|double|RELATIVE WIND SPEED|m/s|1|0|12|m/s|1|4
+011010|windDirectionAssociatedWithWindSpeedWhichFollows|long|WIND DIRECTION ASSOCIATED WITH WIND SPEED WHICH FOLLOWS|deg|0|0|9|deg|0|3
+011011|windDirectionAt10M|long|WIND DIRECTION AT 10 M|deg|0|0|9|deg|0|3
+011012|windSpeedAt10M|double|WIND SPEED AT 10 M|m/s|1|0|12|m/s|1|4
+011013|windDirectionAt5M|long|WIND DIRECTION AT 5 M|deg|0|0|9|deg|0|3
+011014|windSpeedAt5M|double|WIND SPEED AT 5 M|m/s|1|0|12|m/s|1|4
+011016|extremeCounterclockwiseWindDirectionOfAVariableWind|long|EXTREME COUNTERCLOCKWISE WIND DIRECTION OF A VARIABLE WIND|deg|0|0|9|deg|0|3
+011017|extremeClockwiseWindDirectionOfAVariableWind|long|EXTREME CLOCKWISE WIND DIRECTION OF A VARIABLE WIND|deg|0|0|9|deg|0|3
+011019|steadinessOfWind|long|STEADINESS OF WIND|%|0|0|7|%|0|3
+011021|relativeVorticity|double|RELATIVE VORTICITY|/s|9|-65536|17|/s|9|6
+011022|divergence|double|DIVERGENCE|/s|9|-65536|17|/s|9|6
+011023|velocityPotential|long|VELOCITY POTENTIAL|m2/s|-2|-65536|17|m2/s|-2|6
+011030|extendedDegreeOfTurbulence|table|EXTENDED DEGREE OF TURBULENCE|CODE TABLE|0|0|6|CODE TABLE|0|2
+011031|degreeOfTurbulence|table|DEGREE OF TURBULENCE|CODE TABLE|0|0|4|CODE TABLE|0|2
+011032|heightOfBaseOfTurbulence|long|HEIGHT OF BASE OF TURBULENCE|m|-1|-40|16|m|-1|5
+011033|heightOfTopOfTurbulence|long|HEIGHT OF TOP OF TURBULENCE|m|-1|-40|16|m|-1|5
+011034|verticalGustVelocity|double|VERTICAL GUST VELOCITY|m/s|1|-1024|11|m/s|1|4
+011035|verticalGustAcceleration|double|VERTICAL GUST ACCELERATION|m s-2|2|-8192|14|m s-2|2|5
+011036|maximumDerivedEquivalentVerticalGustSpeed|double|MAXIMUM DERIVED EQUIVALENT VERTICAL GUST SPEED|m/s|1|0|10|m/s|1|4
+011037|turbulenceIndex|table|TURBULENCE INDEX|CODE TABLE|0|0|6|CODE TABLE|0|2
+011038|timeOfOccurrenceOfPeakEddyDissipationRate|table|TIME OF OCCURRENCE OF PEAK EDDY DISSIPATION RATE|CODE TABLE|0|0|5|CODE TABLE|0|2
+011039|extendedTimeOfOccurrenceOfPeakEddyDissipationRate|table|EXTENDED TIME OF OCCURRENCE OF PEAK EDDY DISSIPATION RATE|CODE TABLE|0|0|6|CODE TABLE|0|2
+011040|maximumWindSpeedMeanWind|double|MAXIMUM WIND SPEED (MEAN WIND)|m/s|1|0|12|m/s|1|4
+011041|maximumWindGustSpeed|double|MAXIMUM WIND GUST SPEED|m/s|1|0|12|m/s|1|4
+011042|maximumWindSpeed10MinuteMeanWind|double|MAXIMUM WIND SPEED (10-MINUTE MEAN WIND)|m/s|1|0|12|m/s|1|4
+011043|maximumWindGustDirection|long|MAXIMUM WIND GUST DIRECTION|deg|0|0|9|deg|0|3
+011044|meanWindDirectionForSurfaceTo1500M|long|MEAN WIND DIRECTION FOR SURFACE - 1 500 M (5 000 FEET)|deg|0|0|9|deg|0|3
+011045|meanWindSpeedForSurfaceTo1500M|double|MEAN WIND SPEED FOR SURFACE - 1 500 M (5 000 FEET)|m/s|1|0|12|m/s|1|4
+011046|maximumInstantaneousWindSpeed|double|MAXIMUM INSTANTANEOUS WIND SPEED|m/s|1|0|12|m/s|1|4
+011047|maximumInstantaneousWindSpeedOver10Minutes|double|MAXIMUM INSTANTANEOUS WIND SPEED OVER 10 MINUTES|m/s|1|0|12|m/s|1|4
+011049|windDirectionStandardDeviation|long|STANDARD DEVIATION OF WIND DIRECTION|deg|0|0|9|deg|0|3
+011050|standardDeviationOfHorizontalWindSpeed|double|STANDARD DEVIATION OF HORIZONTAL WIND SPEED|m/s|1|0|12|m/s|1|4
+011051|standardDeviationOfVerticalWindSpeed|double|STANDARD DEVIATION OF VERTICAL WIND SPEED|m/s|1|0|8|m/s|1|3
+011052|formalUncertaintyInWindSpeed|double|FORMAL UNCERTAINTY IN WIND SPEED|m/s|2|0|13|m/s|2|5
+011053|formalUncertaintyInWindDirection|double|FORMAL UNCERTAINTY IN WIND DIRECTION|deg|2|0|15|deg|2|5
+011054|meanWindDirectionFor1500To3000M|long|MEAN WIND DIRECTION FOR 1 500 - 3 000 M|deg|0|0|9|deg|0|3
+011055|meanWindSpeedFor1500To3000M|double|MEAN WIND SPEED FOR 1 500 - 3 000 M|m/s|1|0|12|m/s|1|4
+011061|absoluteWindShearIn1KmLayerBelow|double|ABSOLUTE WIND SHEAR IN 1 KM LAYER BELOW|m/s|1|0|12|m/s|1|4
+011062|absoluteWindShearIn1KmLayerAbove|double|ABSOLUTE WIND SHEAR IN 1 KM LAYER ABOVE|m/s|1|0|12|m/s|1|4
+011070|designatorOfRunwayAffectedByWindShearIncludingAll|string|DESIGNATOR OF THE RUNWAY AFFECTED BY WIND SHEAR (INCLUDING ALL)|CCITT IA5|0|0|32|Character|0|4
+011071|turbulentVerticalMomentumFlux|double|TURBULENT VERTICAL MOMENTUM FLUX|m2 s-2|3|-128|14|m2 s-2|3|5
+011072|turbulentVerticalBuoyancyFlux|double|TURBULENT VERTICAL BUOYANCY FLUX|K m s-1|3|-128|11|K m s-1|3|4
+011073|turbulentKineticEnergy|double|TURBULENT KINETIC ENERGY|m2 s-2|2|-1024|13|m2 s-2|2|4
+011074|dissipationEnergy|double|DISSIPATION ENERGY|m2 s-2|2|-1024|10|m2 s-2|2|4
+011075|meanTurbulenceIntensityEddyDissipationRate|double|MEAN TURBULENCE INTENSITY (EDDY DISSIPATION RATE)|m2/3 s-1|2|0|8|m2/3 s-1|2|3
+011076|peakTurbulenceIntensityEddyDissipationRate|double|PEAK TURBULENCE INTENSITY (EDDY DISSIPATION RATE)|m2/3 s-1|2|0|8|m2/3 s-1|2|3
+011077|reportingIntervalOrAveragingTimeForEddyDissipationRate|long|REPORTING INTERVAL OR AVERAGING TIME FOR EDDY DISSIPATION RATE|s|0|0|12|s|0|4
+011081|modelWindDirectionAt10M|double|MODEL WIND DIRECTION AT 10 M|deg|2|0|16|deg|2|5
+011082|modelWindSpeedAt10M|double|MODEL WIND SPEED AT 10 M|m/s|2|0|14|m/s|2|4
+011083|windSpeed|long|WIND SPEED|km/h|0|0|9|km/h|0|3
+011084|windSpeed|long|WIND SPEED|kt|0|0|8|kt|0|3
+011085|maximumWindGustSpeed|long|MAXIMUM WIND GUST SPEED|km/h|0|0|9|km/h|0|3
+011086|maximumWindGustSpeed|long|MAXIMUM WIND GUST SPEED|kt|0|0|8|kt|0|3
+011095|u|double|U-COMPONENT OF THE MODEL WIND VECTOR|m/s|1|-4096|13|m/s|1|4
+011096|v|double|V-COMPONENT OF THE MODEL WIND VECTOR|m/s|1|-4096|13|m/s|1|4
+011097|windSpeedFromAltimeter|double|WIND SPEED FROM ALTIMETER|m/s|2|0|12|m/s|2|4
+011098|windSpeedFromRadiometer|double|WIND SPEED FROM RADIOMETER|m/s|2|0|12|m/s|2|4
+011100|aircraftTrueAirspeed|double|AIRCRAFT TRUE AIRSPEED|m/s|1|0|12|m/s|1|4
+011101|aircraftGroundSpeedUComponent|double|AIRCRAFT GROUND SPEED U-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011102|aircraftGroundSpeedVComponent|double|AIRCRAFT GROUND SPEED V-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011103|aircraftGroundSpeedWComponent|double|AIRCRAFT GROUND SPEED W-COMPONENT|m/s|1|-512|10|m/s|1|3
+011104|aircraftTrueHeading|long|TRUE HEADING OF AIRCRAFT, SHIP OR OTHER MOBILE PLATFORM|deg|0|0|9|deg|0|3
+011105|edrAlgorithmVersion|long|EDR ALGORITHM VERSION|Numeric|0|0|6|Numeric|0|2
+011106|runningMinimumConfidence|long|RUNNING MINIMUM CONFIDENCE|Numeric|1|0|4|Numeric|1|2
+011107|maximumNumberBadInputs|long|MAXIMUM NUMBER BAD INPUTS|Numeric|0|0|5|Numeric|0|2
+011108|peakLocation|long|PEAK LOCATION|Numeric|1|0|4|Numeric|1|2
+011109|numberOfGoodEdr|long|NUMBER OF GOOD EDR|Numeric|0|0|4|Numeric|0|2
+011110|uncertaintyInUComponent|double|UNCERTAINTY IN U-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011111|uncertaintyInVComponent|double|UNCERTAINTY IN V-COMPONENT|m/s|1|-4096|13|m/s|1|4
+011112|uncertaintyInWComponent|double|UNCERTAINTY IN W-COMPONENT|m/s|2|-4096|13|m/s|2|4
+011113|trackingCorrelationOfVector|long|TRACKING CORRELATION OF VECTOR|Numeric|3|-1000|12|Numeric|3|4
+012001|airTemperature|double|TEMPERATURE/AIR TEMPERATURE|K|1|0|12|C|1|3
+012002|wetBulbTemperature|double|WET-BULB TEMPERATURE|K|1|0|12|C|1|3
+012003|dewpointTemperature|double|DEWPOINT TEMPERATURE|K|1|0|12|C|1|3
+012004|airTemperatureAt2M|double|AIR TEMPERATURE AT 2 M|K|1|0|12|C|1|3
+012005|wetBulbTemperatureAt2M|double|WET-BULB TEMPERATURE AT 2 M|K|1|0|12|C|1|3
+012006|dewpointTemperatureAt2M|double|DEWPOINT TEMPERATURE AT 2 M|K|1|0|12|C|1|3
+012007|virtualTemperature|double|VIRTUAL TEMPERATURE|K|1|0|12|C|1|3
+012008|uncertaintyInVirtualTemperature|double|UNCERTAINTY IN VIRTUAL TEMPERATURE|K|1|0|12|C|1|4
+012011|maximumTemperatureAtHeightAndOverPeriodSpecified|double|MAXIMUM TEMPERATURE, AT HEIGHT AND OVER PERIOD SPECIFIED|K|1|0|12|C|1|3
+012012|minimumTemperatureAtHeightAndOverPeriodSpecified|double|MINIMUM TEMPERATURE, AT HEIGHT AND OVER PERIOD SPECIFIED|K|1|0|12|C|1|3
+012013|groundMinimumTemperaturePast12Hours|double|GROUND MINIMUM TEMPERATURE, PAST 12 HOURS|K|1|0|12|C|1|3
+012014|maximumTemperatureAt2MPast12Hours|double|MAXIMUM TEMPERATURE AT 2 M, PAST 12 HOURS|K|1|0|12|C|1|3
+012015|minimumTemperatureAt2MPast12Hours|double|MINIMUM TEMPERATURE AT 2 M, PAST 12 HOURS|K|1|0|12|C|1|3
+012016|maximumTemperatureAt2MPast24Hours|double|MAXIMUM TEMPERATURE AT 2 M, PAST 24 HOURS|K|1|0|12|C|1|3
+012017|minimumTemperatureAt2MPast24Hours|double|MINIMUM TEMPERATURE AT 2 M, PAST 24 HOURS|K|1|0|12|C|1|3
+012021|maximumTemperatureAt2M|double|MAXIMUM TEMPERATURE AT 2 M|K|2|0|16|C|2|4
+012022|minimumTemperatureAt2M|double|MINIMUM TEMPERATURE AT 2 M|K|2|0|16|C|2|4
+012023|temperature|long|TEMPERATURE|C|0|-99|8|C|0|2
+012024|dewpointTemperature|long|DEWPOINT TEMPERATURE|C|0|-99|8|C|0|2
+012030|soilTemperature|double|SOIL TEMPERATURE|K|1|0|12|C|1|3
+012049|temperatureChangeOverSpecifiedPeriod|long|TEMPERATURE CHANGE OVER SPECIFIED PERIOD|K|0|-30|6|C|0|2
+012051|standardDeviationTemperature|double|STANDARD DEVIATION TEMPERATURE|K|1|0|10|C|1|3
+012052|highestDailyMeanTemperature|double|HIGHEST DAILY MEAN TEMPERATURE|K|1|0|12|C|1|3
+012053|lowestDailyMeanTemperature|double|LOWEST DAILY MEAN TEMPERATURE|K|1|0|12|C|1|3
+012060|awsEnclosureInternalTemperature|double|AWS ENCLOSURE INTERNAL TEMPERATURE|K|1|0|12|C|1|3
+012061|skinTemperature|double|SKIN TEMPERATURE|K|1|0|12|C|1|3
+012062|equivalentBlackBodyTemperature|double|EQUIVALENT BLACK BODY TEMPERATURE|K|1|0|12|C|1|3
+012063|brightnessTemperature|double|BRIGHTNESS TEMPERATURE|K|1|0|12|C|1|3
+012064|instrumentTemperature|double|INSTRUMENT TEMPERATURE|K|1|0|12|K|1|4
+012065|standardDeviationBrightnessTemperature|double|STANDARD DEVIATION BRIGHTNESS TEMPERATURE|K|1|0|12|K|1|4
+012066|antennaTemperature|double|ANTENNA TEMPERATURE|K|2|0|16|C|2|5
+012070|warmLoadTemperature|double|WARM LOAD TEMPERATURE|K|2|0|16|K|2|5
+012071|coldestClusterTemperature|double|COLDEST CLUSTER TEMPERATURE|K|1|0|12|K|1|4
+012072|radiance|double|RADIANCE|W m-2 sr-1|6|0|31|W m-2 sr-1|6|9
+012075|spectralRadiance|long|SPECTRAL RADIANCE|W m-3 sr-1|-3|0|16|W m-3 sr-1|-3|5
+012076|radiance|double|RADIANCE|W m-2 sr-1|3|0|16|W m-2 sr-1|3|5
+012080|brightnessTemperatureRealPart|double|BRIGHTNESS TEMPERATURE REAL PART|K|2|-10000|16|K|2|5
+012081|brightnessTemperatureImaginaryPart|double|BRIGHTNESS TEMPERATURE IMAGINARY PART|K|2|-10000|16|K|2|5
+012082|pixelRadiometricAccuracy|double|PIXEL RADIOMETRIC ACCURACY|K|2|0|12|K|2|4
+012083|temperatureDifferenceBetweenObservedAndComputed|double|TEMPERATURE DIFFERENCE BETWEEN OBSERVED AND COMPUTED|K|2|-10000|16|K|2|6
+012101|airTemperature|double|TEMPERATURE/AIR TEMPERATURE|K|2|0|16|C|2|4
+012102|wetBulbTemperature|double|WET-BULB TEMPERATURE|K|2|0|16|C|2|4
+012103|dewpointTemperature|double|DEWPOINT TEMPERATURE|K|2|0|16|C|2|4
+012104|airTemperatureAt2M|double|AIR TEMPERATURE AT 2 M|K|2|0|16|C|2|4
+012105|webBulbTemperatureAt2M|double|WEB-BULB TEMPERATURE AT 2 M|K|2|0|16|C|2|4
+012106|dewpointTemperatureAt2M|double|DEWPOINT TEMPERATURE AT 2 M|K|2|0|16|C|2|4
+012107|virtualTemperature|double|VIRTUAL TEMPERATURE|K|2|0|16|C|2|4
+012111|maximumTemperatureAtHeightAndOverPeriodSpecified|double|MAXIMUM TEMPERATURE, AT HEIGHT AND OVER PERIOD SPECIFIED|K|2|0|16|C|2|4
+012112|minimumTemperatureAtHeightAndOverPeriodSpecified|double|MINIMUM TEMPERATURE, AT HEIGHT AND OVER PERIOD SPECIFIED|K|2|0|16|C|2|4
+012113|groundMinimumTemperaturePast12Hours|double|GROUND MINIMUM TEMPERATURE, PAST 12 HOURS|K|2|0|16|C|2|4
+012114|maximumTemperatureAt2MPast12Hours|double|MAXIMUM TEMPERATURE AT 2 M, PAST 12 HOURS|K|2|0|16|C|2|4
+012115|minimumTemperatureAt2MPast12Hours|double|MINIMUM TEMPERATURE AT 2 M, PAST 12 HOURS|K|2|0|16|C|2|4
+012116|maximumTemperatureAt2MPast24Hours|double|MAXIMUM TEMPERATURE AT 2 M, PAST 24 HOURS|K|2|0|16|C|2|4
+012117|minimumTemperatureAt2MPast24Hours|double|MINIMUM TEMPERATURE AT 2 M, PAST 24 HOURS|K|2|0|16|C|2|4
+012118|maximumTemperatureAtHeightSpecifiedPast24Hours|double|MAXIMUM TEMPERATURE AT HEIGHT SPECIFIED, PAST 24 HOURS|K|2|0|16|C|2|4
+012119|minimumTemperatureAtHeightSpecifiedPast24Hours|double|MINIMUM TEMPERATURE AT HEIGHT SPECIFIED, PAST 24 HOURS|K|2|0|16|C|2|4
+012120|groundTemperature|double|GROUND TEMPERATURE|K|2|0|16|C|2|4
+012121|groundMinimumTemperature|double|GROUND MINIMUM TEMPERATURE|K|2|0|16|C|2|4
+012122|groundMinimumTemperatureOfPrecedingNight|double|GROUND MINIMUM TEMPERATURE OF THE PRECEDING NIGHT|K|2|0|16|C|2|4
+012128|roadSurfaceTemperature|double|ROAD SURFACE TEMPERATURE|K|2|0|16|C|2|5
+012129|roadSubSurfaceTemperature|double|ROAD SUBSURFACE TEMPERATURE|K|2|0|16|C|2|5
+012130|soilTemperature|double|SOIL TEMPERATURE|K|2|0|16|C|2|4
+012131|snowTemperature|double|SNOW TEMPERATURE|K|2|0|16|C|2|4
+012132|iceSurfaceTemperature|double|ICE SURFACE TEMPERATURE|K|2|0|16|C|2|4
+012151|dailyMeanTemperatureStandardDeviation|double|STANDARD DEVIATION OF DAILY MEAN TEMPERATURE|K|2|0|12|C|2|4
+012152|highestDailyMeanTemperature|double|HIGHEST DAILY MEAN TEMPERATURE|K|2|0|16|C|2|4
+012153|lowestDailyMeanTemperature|double|LOWEST DAILY MEAN TEMPERATURE|K|2|0|16|C|2|4
+012158|noiseEquivalentDeltaTemperatureWhileViewingColdTarget|double|NOISE-EQUIVALENT DELTA TEMPERATURE WHILE VIEWING COLD TARGET|K|2|0|12|C|2|4
+012159|noiseEquivalentDeltaTemperatureWhileViewingWarmTarget|double|NOISE-EQUIVALENT DELTA TEMPERATURE WHILE VIEWING WARM TARGET|K|2|0|12|C|2|4
+012161|skinTemperature|double|SKIN TEMPERATURE|K|2|0|16|C|2|4
+012162|equivalentBlackBodyTemperature|double|EQUIVALENT BLACK BODY TEMPERATURE|K|2|0|16|C|2|4
+012163|brightnessTemperature|double|BRIGHTNESS TEMPERATURE|K|2|0|16|C|2|4
+012164|instrumentTemperature|double|INSTRUMENT TEMPERATURE|K|2|0|16|K|2|5
+012165|directSunBrightnessTemperature|long|DIRECT SUN BRIGHTNESS TEMPERATURE|K|0|0|23|K|0|7
+012166|snapshotAccuracy|double|SNAPSHOT ACCURACY|K|1|-4000|13|K|1|4
+012167|radiometricAccuracyPurePolarization|double|RADIOMETRIC ACCURACY (PURE POLARIZATION)|K|1|0|9|K|1|3
+012168|radiometricAccuracyCrossPolarization|double|RADIOMETRIC ACCURACY (CROSS POLARIZATION)|K|1|0|9|K|1|3
+012169|brightnessTemperatureDifference|double|BRIGHTNESS TEMPERATURE DIFFERENCE|K|3|-100000|18|K|3|6
+012171|coldestClusterTemperature|double|COLDEST CLUSTER TEMPERATURE|K|2|0|16|K|2|5
+012180|averaged12MicronBtForAllClearPixelsAtNadir|double|AVERAGED 12 MICRON BT FOR ALL CLEAR PIXELS AT NADIR|K|2|0|16|K|2|5
+012181|averaged11MicronBtForAllClearPixelsAtNadir|double|AVERAGED 11 MICRON BT FOR ALL CLEAR PIXELS AT NADIR|K|2|0|16|K|2|5
+012182|averaged37MicronBtForAllClearPixelsAtNadir|double|AVERAGED 3.7 MICRON BT FOR ALL CLEAR PIXELS AT NADIR|K|2|0|16|K|2|5
+012183|averaged12MicronBtForAllClearPixelsForwardView|double|AVERAGED 12 MICRON BT FOR ALL CLEAR PIXELS, FORWARD VIEW|K|2|0|16|K|2|5
+012184|averaged11MicronBtForAllClearPixelsForwardView|double|AVERAGED 11 MICRON BT FOR ALL CLEAR PIXELS, FORWARD VIEW|K|2|0|16|K|2|5
+012185|averaged37MicronBtForAllClearPixelsForwardView|double|AVERAGED 3.7 MICRON BT FOR ALL CLEAR PIXELS, FORWARD VIEW|K|2|0|16|K|2|5
+012186|meanNadirSeaSurfaceTemperature|double|MEAN NADIR SEA-SURFACE TEMPERATURE|K|2|0|16|K|2|5
+012187|meanDualViewSeaSurfaceTemperature|double|MEAN DUAL VIEW SEA-SURFACE TEMPERATURE|K|2|0|16|K|2|5
+012188|interpolated238GhzBrightnessTFromMwr|double|INTERPOLATED 23.8 GHZ BRIGHTNESS T FROM MWR|K|2|0|16|K|2|5
+012189|interpolated365GhzBrightnessTFromMwr|double|INTERPOLATED 36.5 GHZ BRIGHTNESS T FROM MWR|K|2|0|16|K|2|5
+012190|brightnessTemperatureErrorCovariance|double|BRIGHTNESS TEMPERATURE ERROR COVARIANCE|K2|3|-15000|15|K2|3|8
+013001|specificHumidity|double|SPECIFIC HUMIDITY|kg/kg|5|0|14|kg/kg|5|5
+013002|mixingRatio|double|MIXING RATIO|kg/kg|5|0|14|kg/kg|5|5
+013003|relativeHumidity|long|RELATIVE HUMIDITY|%|0|0|7|%|0|3
+013004|vapourPressure|long|VAPOUR PRESSURE|Pa|-1|0|10|Pa|-1|4
+013005|vapourDensity|double|VAPOUR DENSITY|kg m-3|3|0|7|kg m-3|3|3
+013006|mixingHeights|long|MIXING HEIGHTS|m|-1|-40|16|m|-1|5
+013007|minimumRelativeHumidity|long|MINIMUM RELATIVE HUMIDITY|%|0|0|7|%|0|3
+013008|maximumRelativeHumidity|long|MAXIMUM RELATIVE HUMIDITY|%|0|0|7|%|0|3
+013009|relativeHumidity|double|RELATIVE HUMIDITY|%|1|-1000|12|%|1|4
+013011|totalPrecipitationOrTotalWaterEquivalent|double|TOTAL PRECIPITATION/TOTAL WATER EQUIVALENT|kg m-2|1|-1|14|kg m-2|1|5
+013012|depthOfFreshSnow|double|DEPTH OF FRESH SNOW|m|2|-2|12|m|2|4
+013013|totalSnowDepth|double|TOTAL SNOW DEPTH|m|2|-2|16|m|2|5
+013014|rainfallOrWaterEquivalentOfSnowAveragedRate|double|RAINFALL/WATER EQUIVALENT OF SNOW (AVERAGED RATE)|kg m-2 s-1|4|0|12|kg m-2 s-1|4|4
+013015|snowfallAveragedRate|double|SNOWFALL (AVERAGED RATE)|m/s|7|0|12|m/s|7|4
+013016|precipitableWater|long|PRECIPITABLE WATER|kg m-2|0|0|7|kg m-2|0|3
+013019|totalPrecipitationPast1Hour|double|TOTAL PRECIPITATION PAST 1 HOUR|kg m-2|1|-1|14|kg m-2|1|4
+013020|totalPrecipitationPast3Hours|double|TOTAL PRECIPITATION PAST 3 HOURS|kg m-2|1|-1|14|kg m-2|1|5
+013021|totalPrecipitationPast6Hours|double|TOTAL PRECIPITATION PAST 6 HOURS|kg m-2|1|-1|14|kg m-2|1|5
+013022|totalPrecipitationPast12Hours|double|TOTAL PRECIPITATION PAST 12 HOURS|kg m-2|1|-1|14|kg m-2|1|5
+013023|totalPrecipitationPast24Hours|double|TOTAL PRECIPITATION PAST 24 HOURS|kg m-2|1|-1|14|kg m-2|1|5
+013031|evapotranspiration|long|EVAPOTRANSPIRATION|kg m-2|0|0|7|kg m-2|0|3
+013032|evaporation|double|EVAPORATION/EVAPOTRANSPIRATION|kg m-2|1|0|8|kg m-2|1|3
+013033|evaporation|double|EVAPORATION/EVAPOTRANSPIRATION|kg m-2|1|0|10|kg m-2|1|4
+013038|superadiabaticIndicator|table|SUPERADIABATIC INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+013039|terrainTypeIceOrSnow|table|TERRAIN TYPE (ICE/SNOW)|CODE TABLE|0|0|3|CODE TABLE|0|1
+013040|surfaceFlag|table|SURFACE FLAG|CODE TABLE|0|0|4|CODE TABLE|0|2
+013041|pasquillGiffordStabilityCategory|table|PASQUILL-GIFFORD STABILITY CATEGORY|CODE TABLE|0|0|4|CODE TABLE|0|2
+013042|parcelLiftedIndexTo500Hpa|long|PARCEL LIFTED INDEX (TO 500 HPA)|K|0|-20|6|K|0|2
+013043|bestLiftedIndexTo500Hpa|long|BEST LIFTED INDEX (TO 500 HPA)|K|0|-20|6|K|0|2
+013044|kIndex|long|K INDEX|K|0|-30|8|K|0|3
+013045|koIndex|long|KO INDEX|K|0|-30|8|K|0|3
+013046|maximumBuoyancy|long|MAXIMUM BUOYANCY|K|0|-30|8|K|0|3
+013047|modifiedShowalterStabilityIndex|long|MODIFIED SHOWALTER STABILITY INDEX|K|0|-60|6|C|0|2
+013048|waterFraction|double|WATER FRACTION|%|1|0|10|%|1|4
+013051|frequencyGroupPrecipitation|table|FREQUENCY GROUP, PRECIPITATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+013052|highestDailyAmountOfPrecipitation|double|HIGHEST DAILY AMOUNT OF PRECIPITATION|kg m-2|1|-1|14|kg m-2|1|5
+013055|intensityOfPrecipitation|double|INTENSITY OF PRECIPITATION|kg m-2 s-1|4|0|8|mm/h|1|4
+013056|characterAndIntensityOfPrecipitation|table|CHARACTER AND INTENSITY OF PRECIPITATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+013057|timeOfBeginningOrEndOfPrecipitation|table|TIME OF BEGINNING OR END OF PRECIPITATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+013058|sizeOfPrecipitatingElement|double|SIZE OF PRECIPITATING ELEMENT|m|4|0|7|mm|1|3
+013059|numberOfFlashesThunderstorm|long|NUMBER OF FLASHES (THUNDERSTORM)|Numeric|0|0|7|Numeric|0|3
+013060|totalAccumulatedPrecipitation|double|TOTAL ACCUMULATED PRECIPITATION|kg m-2|1|-1|17|kg m-2|1|5
+013071|upstreamWaterLevel|double|UPSTREAM WATER LEVEL|m|2|0|14|m|2|4
+013072|downstreamWaterLevel|double|DOWNSTREAM WATER LEVEL|m|2|0|14|m|2|4
+013073|maximumWaterLevel|double|MAXIMUM WATER LEVEL|m|2|0|14|m|2|4
+013074|groundWaterLevel|double|GROUND WATER LEVEL|m|2|0|18|m|2|6
+013080|waterPh|double|WATER PH|pH unit|1|0|10|pH unit|1|3
+013081|waterConductivity|double|WATER CONDUCTIVITY|S/m|3|0|14|S/m|3|4
+013082|waterTemperature|double|WATER TEMPERATURE|K|1|0|12|K|1|4
+013083|dissolvedOxygen|double|DISSOLVED OXYGEN|kg m-3|6|0|15|kg m-3|6|5
+013084|turbidity|long|TURBIDITY|lm|0|0|14|lm|0|4
+013085|oxidationReductionPotential|double|OXIDATION REDUCTION POTENTIAL (ORP)|V|3|0|14|V|3|4
+013090|radiometerWaterVapourContent|double|RADIOMETER WATER VAPOUR CONTENT|kg m-2|1|0|10|kg m-2|1|4
+013091|radiometerLiquidContent|double|RADIOMETER LIQUID CONTENT|kg m-2|2|0|8|kg m-2|2|3
+013093|cloudOpticalThickness|long|CLOUD OPTICAL THICKNESS|Numeric|0|0|8|Numeric|0|3
+013094|log10OfCloudOpticalThickness|long|LOG10 OF CLOUD OPTICAL THICKNESS|Numeric|3|-2000|14|Numeric|3|5
+013095|totalColumnWaterVapour|double|TOTAL COLUMN WATER VAPOUR|kg m-2|4|0|19|kg m-2|4|6
+013096|mwrWaterVapourContent|double|MWR WATER VAPOUR CONTENT|kg m-2|2|0|14|kg m-2|2|5
+013097|mwrLiquidWaterContent|double|MWR LIQUID WATER CONTENT|kg m-2|2|0|14|kg m-2|2|5
+013098|integratedWaterVapourDensity|double|INTEGRATED WATER VAPOUR DENSITY|kg m-2|8|0|30|kg m-2|8|10
+013099|log10OfIntegratedCloudParticleDensity|double|LOG10 OF INTEGRATED CLOUD PARTICLE DENSITY|log (m-2)|1|0|7|log (m-2)|1|3
+013100|log10OfIntegratedCloudParticleArea|double|LOG10 OF INTEGRATED CLOUD PARTICLE AREA|log (m2 m-2)|1|-70|7|log (m2 m-2)|1|2
+013101|log10OfIntegratedCloudParticleVolume|double|LOG10 OF INTEGRATED CLOUD PARTICLE VOLUME|log (m3 m-2)|1|-140|7|log (m3 m-2)|1|3
+013109|iceOrLiquidWaterPath|double|ICE/LIQUID WATER PATH|kg m-2|3|0|10|kg m-2|3|4
+013110|massMixingRatio|long|MASS MIXING RATIO|%|0|0|7|%|0|3
+013111|soilMoisture|long|SOIL MOISTURE|g/kg|0|0|10|g/kg|0|4
+013112|objectWetnessDuration|long|OBJECT WETNESS DURATION|s|0|0|17|s|0|5
+013114|rateOfIceAccretion|double|RATE OF ICE ACCRETION|kg m-2 h-1|1|0|11|kg m-2 h-1|1|4
+013115|iceThickness|double|ICE THICKNESS|m|2|0|19|m|2|6
+013116|waterFilmThickness|double|WATER FILM THICKNESS|m|4|0|10|m|3|2
+013117|snowDensityLiquidWaterContent|long|SNOW DENSITY (LIQUID WATER CONTENT)|kg m-3|0|0|10|kg m-3|0|3
+013118|freshSnowDepth|double|DEPTH OF FRESH SNOW (HIGH ACCURACY)|m|3|-2|14|m|3|5
+013155|precipitationIntensityHighAccuracy|double|INTENSITY OF PRECIPITATION (HIGH ACCURACY)|kg m-2 s-1|5|-1|16|mm/h|2|5
+013160|radiometerLiquidContent|double|RADIOMETER LIQUID CONTENT|kg m-2|2|-350|10|kg m-2|2|3
+013162|cloudLiquidWater|double|CLOUD LIQUID WATER|kg m-2|2|0|8|kg m-2|2|3
+013163|snowWaterEquivalent|long|SNOW WATER EQUIVALENT|kg m-2|0|0|16|kg m-2|0|5
+013164|seaIceFreeboard|double|SEA ICE FREEBOARD|m|3|-131072|18|m|3|6
+013165|capeConvectiveAvailablePotentialEnergy|long|CAPE (CONVECTIVE AVAILABLE POTENTIAL ENERGY)|J/kg|0|0|14|J/kg|0|5
+013166|totalTotalsIndex|double|TOTAL TOTALS INDEX|K|1|0|10|C|0|5
+013167|sIndexStt|double|S INDEX (STT)|K|1|-1000|11|C|0|6
+013168|fogThreatIndex|double|FOG THREAT INDEX|K|1|-100|8|C|0|5
+013169|mdpiMicroburstDayPotentialIndex|double|MDPI (MICROBURST DAY POTENTIAL INDEX)|K/K|1|-100|8|K/K|0|5
+013170|tqIndex|double|TQ INDEX|K|1|-1000|11|C|0|6
+013171|cinConvectiveInhibition|long|CIN (CONVECTIVE INHIBITION)|J/kg|0|-1000|10|J/kg|0|5
+014001|longWaveRadiationIntegratedOver24Hours|long|LONG-WAVE RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-3|-65536|17|J m-2|-3|5
+014002|longWaveRadiationIntegratedOverPeriodSpecified|long|LONG-WAVE RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-3|-65536|17|J m-2|-3|5
+014003|shortWaveRadiationIntegratedOver24Hours|long|SHORT-WAVE RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-3|-65536|17|J m-2|-3|5
+014004|shortWaveRadiationIntegratedOverPeriodSpecified|long|SHORT-WAVE RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-3|-65536|17|J m-2|-3|5
+014011|netLongWaveRadiationIntegratedOver24Hours|long|NET LONG-WAVE RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-3|-65536|17|J m-2|-3|5
+014012|netLongWaveRadiationIntegratedOverPeriodSpecified|long|NET LONG-WAVE RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-3|-65536|17|J m-2|-3|5
+014013|netShortWaveRadiation24Hours|long|NET SHORT-WAVE RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-3|-65536|17|J m-2|-3|5
+014014|netShortWaveRadiationIntegratedOverPeriodSpecified|long|NET SHORT-WAVE RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-3|-65536|17|J m-2|-3|5
+014015|netRadiationIntegratedOver24Hours|long|NET RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-4|-16384|15|J m-2|-4|5
+014016|netRadiationIntegratedOverPeriodSpecified|long|NET RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-4|-16384|15|J m-2|-4|5
+014017|instantaneousLongWaveRadiation|long|INSTANTANEOUS LONG-WAVE RADIATION|W m-2|0|-512|10|W m-2|0|4
+014018|instantaneousShortWaveRadiation|long|INSTANTANEOUS SHORT-WAVE RADIATION|W m-2|0|-2048|12|W m-2|0|4
+014019|surfaceAlbedo|long|SURFACE ALBEDO|%|0|0|7|%|0|3
+014020|globalSolarRadiation24Hours|long|GLOBAL SOLAR RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-4|0|15|J m-2|-4|5
+014021|globalSolarRadiationIntegratedOverPeriodSpecified|long|GLOBAL SOLAR RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-4|0|15|J m-2|-4|5
+014022|diffuseSolarRadiationIntegratedOver24Hours|long|DIFFUSE SOLAR RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-4|0|15|J m-2|-4|5
+014023|diffuseSolarRadiationIntegratedOverPeriodSpecified|long|DIFFUSE SOLAR RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-4|0|15|J m-2|-4|5
+014024|directSolarRadiationIntegratedOver24Hours|long|DIRECT SOLAR RADIATION, INTEGRATED OVER 24 HOURS|J m-2|-4|0|15|J m-2|-4|5
+014025|directSolarRadiationIntegratedOverPeriodSpecified|long|DIRECT SOLAR RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-4|0|15|J m-2|-4|5
+014026|cloudTopAlbedo|long|ALBEDO AT THE TOP OF CLOUDS|%|0|0|7|%|0|3
+014027|albedo|long|ALBEDO|%|0|0|7|%|0|3
+014028|globalSolarRadiationIntegratedOverPeriodSpecified|long|GLOBAL SOLAR RADIATION (HIGH ACCURACY), INTEGRATED OVER PERIOD SPECIFIED|J m-2|-2|0|20|J m-2|-2|6
+014029|diffuseSolarRadiationIntegratedOverPeriodSpecified|long|DIFFUSE SOLAR RADIATION (HIGH ACCURACY), INTEGRATED OVER PERIOD SPECIFIED|J m-2|-2|0|20|J m-2|-2|6
+014030|directSolarRadiationIntegratedOverPeriodSpecified|long|DIRECT SOLAR RADIATION (HIGH ACCURACY), INTEGRATED OVER PERIOD SPECIFIED|J m-2|-2|0|20|J m-2|-2|6
+014031|totalSunshine|long|TOTAL SUNSHINE|min|0|0|11|min|0|4
+014032|totalSunshine|long|TOTAL SUNSHINE|h|0|0|10|h|0|4
+014033|totalSunshine|long|TOTAL SUNSHINE|%|0|0|9|%|0|3
+014034|sunshineOverPeriodSpecified|long|SUNSHINE OVER PERIOD SPECIFIED|min|0|0|11|min|0|4
+014035|solarRadiationFlux|double|SOLAR RADIATION FLUX|W m-2|1|0|14|W m-2|1|5
+014042|bidirectionalReflectance|long|BIDIRECTIONAL REFLECTANCE|%|0|0|7|%|0|3
+014043|channelRadiance|double|CHANNEL RADIANCE|W m-2 sr-1 um-1|4|0|23|W m-2 sr-1 um-1|4|7
+014044|channelRadiance|double|CHANNEL RADIANCE|W m-2 sr-1 cm|7|-100000|22|W m-2 sr-1 cm|7|7
+014045|channelRadiance|long|CHANNEL RADIANCE|W m-2 sr-1 cm|0|0|11|W m-2 sr-1 cm|0|4
+014046|scaledRadiance|long|SCALED RADIANCE|W m-2 sr-1 m|0|-5000|16|W m-2 sr-1 m|0|5
+014047|scaledMeanAvhrrRadiance|long|SCALED MEAN AVHRR RADIANCE|W m-2 sr-1 m|0|0|31|W m-2 sr-1 m|0|10
+014048|scaledStandardDeviationAvhrrRadiance|long|SCALED STANDARD DEVIATION AVHRR RADIANCE|W m-2 sr-1 m|0|0|31|W m-2 sr-1 m|0|10
+014049|noiseEquivalentDeltaRadiance|double|NOISE EQUIVALENT DELTA RADIANCE|W m-2 sr-1 cm|7|0|22|W m-2 sr-1 cm|0|0
+014050|emissivity|double|EMISSIVITY|%|1|0|10|%|1|4
+014051|directSolarRadiationIntegratedOverLastHour|long|DIRECT SOLAR RADIATION INTEGRATED OVER LAST HOUR|J m-2|-3|0|14|J m-2|-3|4
+014052|globalUpwardSolarRadiationIntegratedOverPeriodSpecified|long|GLOBAL UPWARD SOLAR RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-2|-1048574|20|J m-2|-2|7
+014053|netRadiationIntegratedOverPeriodSpecified|long|NET RADIATION (HIGH ACCURACY), INTEGRATED OVER PERIOD SPECIFIED|J m-2|-2|-1048574|21|J m-2|-2|7
+014054|photosyntheticallyActiveRadiationIntegratedOverPeriodSpecified|long|PHOTOSYNTHETICALLY ACTIVE RADIATION, INTEGRATED OVER PERIOD SPECIFIED|J m-2|-3|0|16|J m-2|-3|5
+014055|solarActivityIndex|long|SOLAR ACTIVITY INDEX|Numeric|0|-32768|16|Numeric|0|5
+014056|backgroundLuminance|long|BACKGROUND LUMINANCE|cd m-2|0|0|18|cd m-2|0|6
+014057|soilHeatFlux|long|SOIL HEAT FLUX|J m-2|-2|-1048574|21|J m-2|-2|7
+014058|correctedCrossPoleBackscatter|double|CORRECTED CROSS-POLE BACKSCATTER|dB|2|-5000|13|dB|2|5
+014072|globalUvIrradiation|long|GLOBAL UV IRRADIATION|J m-2|0|-4000000|23|J m-2|0|7
+015001|totalOzone|long|TOTAL OZONE|DU|0|0|10|DU|0|4
+015002|airMassSlantPathAt22Km|long|AIR MASS (SLANT PATH AT 22 KM)|Numeric|2|0|10|Numeric|2|3
+015003|measuredOzonePartialPressureSounding|double|MEASURED OZONE PARTIAL PRESSURE (SOUNDING)|Pa|4|0|9|nbar|0|3
+015004|ozoneSoundingCorrectionFactor|long|OZONE SOUNDING CORRECTION FACTOR (CF)|Numeric|3|0|11|Numeric|3|4
+015005|ozoneP|long|OZONE P|DU|0|0|10|DU|0|3
+015006|log10OfNumberDensityOfAtmosphere|double|LOG10 OF NUMBER DENSITY OF ATMOSPHERE|log (m-3)|5|1800000|20|log (m-3)|5|7
+015007|estimatedAmountOfChemicalConstituent|double|ESTIMATED AMOUNT OF CHEMICAL CONSTITUENT|DU|2|0|16|DU|2|6
+015008|significandOfVolumetricMixingRatio|long|SIGNIFICAND OF VOLUMETRIC MIXING RATIO|Numeric|0|0|10|Numeric|0|4
+015009|log10OfNumberDensityOfOzone|double|LOG10 OF NUMBER DENSITY OF OZONE|log (m-3)|5|1200000|20|log (m-3)|5|7
+015011|log10IntegratedElectronDensity|double|LOG10 OF INTEGRATED ELECTRON DENSITY|log (m-2)|3|14000|13|log (m-2)|3|4
+015012|totalElectronCountPerSquareMetre|long|TOTAL ELECTRON COUNT PER SQUARE METRE|m-2|-16|0|6|m-2|-16|2
+015015|maxImageSpectralComponentBeforeNormalization|long|MAXIMUM IMAGE SPECTRAL COMPONENT BEFORE NORMALIZATION|Numeric|0|0|31|Numeric|0|10
+015020|integratedOzoneDensity|double|INTEGRATED OZONE DENSITY|kg m-2|8|0|21|kg m-2|8|7
+015021|integratedMassDensity|double|INTEGRATED MASS DENSITY|kg m-2|11|0|31|kg m-2|11|10
+015022|extendedIntegratedMassDensity|double|EXTENDED INTEGRATED MASS DENSITY|kg m-2|1|-100000000|31|kg m-2|1|10
+015024|opticalDepth|long|OPTICAL DEPTH|Numeric|4|0|24|Numeric|4|8
+015025|pollutantType|table|TYPE OF POLLUTANT|CODE TABLE|0|0|4|CODE TABLE|0|2
+015026|moleFractionOfPollutant|double|CONCENTRATION OF POLLUTANT (MOL MOL-1)|mol/mol|9|0|9|mol/mol|9|3
+015027|massConcentrationOfPollutant|double|CONCENTRATION OF POLLUTANT (KG M-3)|kg m-3|9|0|10|kg m-3|9|4
+015028|moleFractionOfAtmosphericConstituentOrPollutantInDryAir|double|MOLE FRACTION OF ATMOSPHERIC CONSTITUENT/POLLUTANT IN DRY AIR|0/00|5|0|16|0/00|5|5
+015029|extinctionCoefficient|double|EXTINCTION COEFFICIENT|/m|9|0|30|/m|9|10
+015030|aerosolContaminationIndex|long|AEROSOL CONTAMINATION INDEX|Numeric|2|-1000|12|Numeric|2|4
+015031|atmosphericPathDelayInSatelliteSignal|double|ATMOSPHERIC PATH DELAY IN SATELLITE SIGNAL|m|4|10000|15|m|4|5
+015032|estimatedErrorInAtmosphericPathDelay|double|ESTIMATED ERROR IN ATMOSPHERIC PATH DELAY|m|4|0|10|m|4|4
+015033|differenceInPathDelaysForLimbViewsAtExtremesOfScan|double|DIFFERENCE IN PATH DELAYS FOR LIMB VIEWS AT EXTREMES OF SCAN|m|5|-10000|15|m|5|5
+015034|estimatedErrorInPathDelayDifference|double|ESTIMATED ERROR IN PATH DELAY DIFFERENCE|m|5|0|14|m|5|5
+015035|componentOfZenithPathDelayDueToWaterVapour|double|COMPONENT OF ZENITH PATH DELAY DUE TO WATER VAPOUR|m|4|0|14|m|4|5
+015036|atmosphericRefractivity|double|ATMOSPHERIC REFRACTIVITY|N units|3|0|19|N units|3|6
+015037|bendingAngle|double|BENDING ANGLE|rad|8|-100000|23|rad|8|7
+015038|pathDelayDueToNeutralAtmosphere|double|PATH DELAY DUE TO NEUTRAL ATMOSPHERE|m|4|0|20|m|4|11
+015039|estimatedErrorInNeutralAtmospherePathDelay|double|ESTIMATED ERROR IN NEUTRAL ATMOSPHERE PATH DELAY|m|4|0|14|m|4|9
+015041|sulphurDioxideIndex|long|SULPHUR DIOXIDE INDEX|Numeric|2|-1200|14|Numeric|2|4
+015042|reflectance|double|REFLECTANCE|%|2|0|14|%|2|5
+015043|numberOfAveragingKernelLayers|long|NUMBER OF AVERAGING KERNEL LAYERS|Numeric|0|0|10|Numeric|0|0
+015044|averagingKernelValue|long|AVERAGING KERNEL VALUE|Numeric|6|-5000000|31|Numeric|0|0
+015045|sulphurDioxide|double|SULPHUR DIOXIDE|DU|2|-2000|15|DU|2|5
+015046|volcanoContaminationIndex|long|VOLCANO CONTAMINATION INDEX|Numeric|2|-1000|11|Numeric|2|4
+015049|aerosolAngstromWavelengthExponent|long|AEROSOL ANGSTROM WAVELENGTH EXPONENT|Numeric|3|-2000|14|Numeric|3|5
+015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6
+015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3
+015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4
+015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 UM|log (m-3)|2|550|9|log (m-3)|2|4
+015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3
+015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5
+015063|attenuatedBackscatter|double|ATTENUATED BACKSCATTER|m-1 sr-1|8|0|20|m-1 sr-1|8|7
+015064|uncertaintyInAttenuatedBackscatter|double|UNCERTAINTY IN ATTENUATED BACKSCATTER|m-1 sr-1|8|0|20|m-1 sr-1|8|7
+015065|particleBackscatterCoefficient|double|PARTICLE BACKSCATTER COEFFICIENT|m-1 sr-1|8|0|20|m-1 sr-1|8|7
+015066|uncertaintyInParticleBackscatterCoefficient|double|UNCERTAINTY IN PARTICLE BACKSCATTER COEFFICIENT|m-1 sr-1|8|0|20|m-1 sr-1|8|7
+015067|particleExtinctionCoefficient|double|PARTICLE EXTINCTION COEFFICIENT|/m|8|0|20|/m|8|7
+015068|uncertaintyInParticleExtinctionCoefficient|double|UNCERTAINTY IN PARTICLE EXTINCTION COEFFICIENT|/m|8|0|20|/m|8|7
+015069|particleLidarRatio|double|PARTICLE LIDAR RATIO|sr|2|0|14|sr|2|5
+015070|uncertaintyInLidarRatio|double|UNCERTAINTY IN LIDAR RATIO|sr|2|0|14|sr|2|5
+015071|particleDepolarizationRatio|double|PARTICLE DEPOLARIZATION RATIO|%|2|0|14|%|2|5
+015072|uncertaintyInDepolarizationRatio|double|UNCERTAINTY IN DEPOLARIZATION RATIO|%|2|0|14|%|2|5
+015073|attenuatedBackscatter1|double|ATTENUATED BACKSCATTER|m-1 sr-1|8|-524288|20|m-1 sr-1|8|7
+015074|particleBackscatterCoefficient1|double|PARTICLE BACKSCATTER COEFFICIENT|m-1 sr-1|8|-524288|20|m-1 sr-1|8|7
+015075|particleExtinctionCoefficient1|double|PARTICLE EXTINCTION COEFFICIENT|m|8|-524288|20|/m|8|7
+015076|particleLidarRatio1|double|PARTICLE LIDAR RATIO|sr|1|-2048|13|sr|1|5
+015077|uncertaintyInLidarRatio1|double|UNCERTAINTY IN LIDAR RATIO|sr|1|0|12|sr|1|5
+015078|particleDepolarizationRatio1|double|PARTICLE DEPOLARIZATION RATIO|%|2|-8192|15|%|2|5
+015079|zenithPathDelayDueToNeutralAtmosphere|double|ZENITH PATH DELAY DUE TO NEUTRAL ATMOSPHERE|m|4|0|15|m|4|9
+015080|estimatedErrorInNeutralAtmosphereZenithPathDelay|double|ESTIMATED ERROR IN NEUTRAL ATMOSPHERE ZENITH PATH DELAY|m|4|0|12|m|4|8
+015081|wetPathDelayDueToNeutralAtmosphere|double|WET PATH DELAY DUE TO NEUTRAL ATMOSPHERE|m|4|0|18|m|4|10
+015082|pathIntegratedWaterVapour|double|PATH INTEGRATED WATER VAPOUR|kg m-2|1|0|16|kg m-2|1|10
+015083|gnssDerivedNeutralAtmosphereGradient|double|GNSS DERIVED NEUTRAL ATMOSPHERE GRADIENT|m|5|-8192|14|m|5|9
+015084|gnssLeastSquaresResidual|double|GNSS LEAST SQUARES RESIDUAL|m|4|0|14|m|4|9
+015085|gnssMultiPathDelay|double|GNSS MULTI-PATH DELAY|m|4|0|14|m|4|9
+015086|gnssHydrostaticMappingFunction|long|GNSS HYDROSTATIC MAPPING FUNCTION|Numeric|3|0|16|Numeric|3|10
+015087|gnssWetMappingFunction|long|GNSS WET MAPPING FUNCTION|Numeric|3|0|16|Numeric|3|10
+015088|gnssGradientMappingFunction|long|GNSS GRADIENT MAPPING FUNCTION|Numeric|3|0|16|Numeric|3|10
+015089|zenithPathDelayDueToNeutralHydrostaticAtmosphere|double|ZENITH PATH DELAY DUE TO NEUTRAL HYDROSTATIC ATMOSPHERE|m|4|0|15|m|4|9
+015090|pathDelayDueToNeutralHydrostaticAtmosphere|double|PATH DELAY DUE TO NEUTRAL HYDROSTATIC ATMOSPHERE|m|4|0|20|m|4|11
+019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2
+019002|effectiveRadiusOfFeature|long|EFFECTIVE RADIUS OF FEATURE|m|-2|0|12|m|-2|4
+019003|windSpeedThreshold|long|WIND SPEED THRESHOLD|m/s|0|0|8|m/s|0|3
+019004|effectiveRadiusWithRespectToWindSpeedsAboveThreshold|long|EFFECTIVE RADIUS WITH RESPECT TO WIND SPEEDS ABOVE THRESHOLD|m|-2|0|12|m|-2|4
+019005|featureDirectionOfMotion|long|DIRECTION OF MOTION OF FEATURE|deg|0|0|9|deg|0|3
+019006|speedOfMotionOfFeature|double|SPEED OF MOTION OF FEATURE|m/s|2|0|14|m/s|2|5
+019007|effectiveRadiusOfFeature|long|EFFECTIVE RADIUS OF FEATURE|m|-3|0|12|m|-3|4
+019008|verticalExtentOfCirculation|table|VERTICAL EXTENT OF CIRCULATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+019009|effectiveRadiusWithRespectToWindSpeedsAboveThresholdLargeStorms|long|EFFECTIVE RADIUS WITH RESPECT TO WIND SPEEDS ABOVE THRESHOLD (LARGE STORMS)|m|-3|0|12|m|-3|4
+019010|methodForTrackingCentreOfSynopticFeature|table|METHOD FOR TRACKING THE CENTRE OF SYNOPTIC FEATURE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019100|timeIntervalToCalculateMovementOfTropicalCyclone|table|TIME INTERVAL TO CALCULATE THE MOVEMENT OF THE TROPICAL CYCLONE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019101|accuracyOfPositionOfCentreOfTropicalCyclone|table|ACCURACY OF THE POSITION OF THE CENTRE OF THE TROPICAL CYCLONE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019102|shapeAndDefinitionOfEyeOfTropicalCyclone|table|SHAPE AND DEFINITION OF THE EYE OF THE TROPICAL CYCLONE|CODE TABLE|0|0|3|CODE TABLE|0|1
+019103|diameterOfMajorAxisOfEyeOfTropicalCyclone|table|DIAMETER OF MAJOR AXIS OF THE EYE OF THE TROPICAL CYCLONE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019104|changeInCharacterOfEyeDuring30Minutes|table|CHANGE IN CHARACTER OF THE EYE DURING THE 30 MINUTES|CODE TABLE|0|0|4|CODE TABLE|0|2
+019105|distanceBetweenEndOfSpiralBandAndCentre|table|DISTANCE BETWEEN THE END OF SPIRAL BAND AND THE CENTRE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019106|identificationNumberOfTropicalCyclone|long|IDENTIFICATION NUMBER OF TROPICAL CYCLONE|Numeric|0|0|7|Numeric|0|3
+019107|timeIntervalOverWhichMovementOfTropicalCycloneHasBeenCalculated|table|TIME INTERVAL OVER WHICH THE MOVEMENT OF THE TROPICAL CYCLONE HAS BEEN CALCULATED|CODE TABLE|0|0|4|CODE TABLE|0|2
+019108|accuracyOfGeographicalPositionOfTropicalCyclone|table|ACCURACY OF GEOGRAPHICAL POSITION OF THE TROPICAL CYCLONE|CODE TABLE|0|0|3|CODE TABLE|0|1
+019109|meanDiameterOfOvercastCloudOfTropicalCyclone|table|MEAN DIAMETER OF THE OVERCAST CLOUD OF THE TROPICAL CYCLONE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019110|apparent24HourChangeInIntensityOfTropicalCyclone|table|APPARENT 24-HOUR CHANGE IN INTENSITY OF THE TROPICAL CYCLONE|CODE TABLE|0|0|4|CODE TABLE|0|2
+019111|currentIntensityNumberOfTropicalCyclone|long|CURRENT INTENSITY (CI) NUMBER OF THE TROPICAL CYCLONE|Numeric|1|0|7|Numeric|1|3
+019112|dataTropicalNumberOfTropicalCyclone|long|DATA TROPICAL (DT) NUMBER OF THE TROPICAL CYCLONE|Numeric|1|0|7|Numeric|1|3
+019113|cloudPatternTypeOfDtNumber|table|CLOUD PATTERN TYPE OF THE DT-NUMBER|CODE TABLE|0|0|4|CODE TABLE|0|2
+019114|modelExpectedTropicalNumberOfTropicalCyclone|long|MODEL EXPECTED TROPICAL (MET) NUMBER OF THE TROPICAL CYCLONE|Numeric|1|0|7|Numeric|1|3
+019115|trendOfPast24HourChangeDevelopedWeakened|long|TREND OF THE PAST 24-HOUR CHANGE (+: DEVELOPED, -: WEAKENED)|Numeric|1|-30|6|Numeric|1|2
+019116|patternTropicalNumberOfTropicalCyclone|long|PATTERN TROPICAL (PT) NUMBER OF THE TROPICAL CYCLONE|Numeric|1|0|7|Numeric|1|3
+019117|cloudPictureTypeOfPtNumber|table|CLOUD PICTURE TYPE OF THE PT-NUMBER|CODE TABLE|0|0|3|CODE TABLE|0|1
+019118|finalTropicalNumberOfTropicalCyclone|long|FINAL TROPICAL (T) NUMBER OF THE TROPICAL CYCLONE|Numeric|1|0|7|Numeric|1|3
+019119|finalTNumberType|table|TYPE OF THE FINAL T-NUMBER|CODE TABLE|0|0|3|CODE TABLE|0|1
+019150|typhoonInternationalCommonNumberTyphoonCommittee|string|TYPHOON INTERNATIONAL COMMON NUMBER (TYPHOON COMMITTEE)|CCITT IA5|0|0|32|Character|0|4
+020001|horizontalVisibility|long|HORIZONTAL VISIBILITY|m|-1|0|13|m|-1|4
+020002|verticalVisibility|long|VERTICAL VISIBILITY|m|-1|0|7|m|-1|3
+020003|presentWeather|table|PRESENT WEATHER|CODE TABLE|0|0|9|CODE TABLE|0|3
+020004|pastWeather1|table|PAST WEATHER (1)|CODE TABLE|0|0|5|CODE TABLE|0|2
+020005|pastWeather2|table|PAST WEATHER (2)|CODE TABLE|0|0|5|CODE TABLE|0|2
+020006|flightRules|table|FLIGHT RULES|CODE TABLE|0|0|3|CODE TABLE|0|1
+020008|cloudDistributionForAviation|table|CLOUD DISTRIBUTION FOR AVIATION|CODE TABLE|0|0|5|CODE TABLE|0|2
+020009|generalWeatherIndicatorTafOrMetar|table|GENERAL WEATHER INDICATOR (TAF/METAR)|CODE TABLE|0|0|4|CODE TABLE|0|2
+020010|cloudCoverTotal|long|CLOUD COVER (TOTAL)|%|0|0|7|%|0|3
+020011|cloudAmount|table|CLOUD AMOUNT|CODE TABLE|0|0|4|CODE TABLE|0|2
+020012|cloudType|table|CLOUD TYPE|CODE TABLE|0|0|6|CODE TABLE|0|2
+020013|heightOfBaseOfCloud|long|HEIGHT OF BASE OF CLOUD|m|-1|-40|11|m|-1|4
+020014|heightOfTopOfCloud|long|HEIGHT OF TOP OF CLOUD|m|-1|-40|11|m|-1|4
+020015|pressureAtBaseOfCloud|long|PRESSURE AT BASE OF CLOUD|Pa|-1|0|14|Pa|-1|5
+020016|pressureAtTopOfCloud|long|PRESSURE AT TOP OF CLOUD|Pa|-1|0|14|Pa|-1|5
+020017|cloudTopDescription|table|CLOUD TOP DESCRIPTION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020018|tendencyOfRunwayVisualRange|table|TENDENCY OF RUNWAY VISUAL RANGE|CODE TABLE|0|0|2|CODE TABLE|0|1
+020019|significantWeather|string|SIGNIFICANT PRESENT OR FORECAST WEATHER|CCITT IA5|0|0|72|Character|0|9
+020020|significantRecentWeatherPhenomena|string|SIGNIFICANT RECENT WEATHER PHENOMENA|CCITT IA5|0|0|32|Character|0|4
+020021|precipitationType|flag|TYPE OF PRECIPITATION|FLAG TABLE|0|0|30|FLAG TABLE|0|10
+020022|characterOfPrecipitation|table|CHARACTER OF PRECIPITATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020023|otherWeatherPhenomena|flag|OTHER WEATHER PHENOMENA|FLAG TABLE|0|0|18|FLAG TABLE|0|6
+020024|intensityOfPhenomena|table|INTENSITY OF PHENOMENA|CODE TABLE|0|0|3|CODE TABLE|0|1
+020025|obscuration|flag|OBSCURATION|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+020026|characterOfObscuration|table|CHARACTER OF OBSCURATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020027|phenomenaOccurrence|flag|PHENOMENA OCCURRENCE|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+020028|expectedChangeInIntensity|table|EXPECTED CHANGE IN INTENSITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+020029|rainFlag|table|RAIN FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+020031|iceDepositThickness|double|ICE DEPOSIT (THICKNESS)|m|2|0|7|m|2|3
+020032|rateOfIceAccretionEstimated|table|RATE OF ICE ACCRETION (ESTIMATED)|CODE TABLE|0|0|3|CODE TABLE|0|1
+020033|causeOfIceAccretion|flag|CAUSE OF ICE ACCRETION|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+020034|seaIceConcentration|table|SEA ICE CONCENTRATION|CODE TABLE|0|0|5|CODE TABLE|0|2
+020035|amountAndTypeOfIce|table|AMOUNT AND TYPE OF ICE|CODE TABLE|0|0|4|CODE TABLE|0|2
+020036|iceSituation|table|ICE SITUATION|CODE TABLE|0|0|5|CODE TABLE|0|2
+020037|iceDevelopment|table|ICE DEVELOPMENT|CODE TABLE|0|0|5|CODE TABLE|0|2
+020038|iceEdgeBearing|long|BEARING OF ICE EDGE|deg|0|0|12|deg|0|3
+020039|iceDistance|long|ICE DISTANCE|m|-1|0|13|m|-1|4
+020040|evolutionOfDriftSnow|table|EVOLUTION OF DRIFT SNOW|CODE TABLE|0|0|4|CODE TABLE|0|2
+020041|airframeIcing|table|AIRFRAME ICING|CODE TABLE|0|0|4|CODE TABLE|0|2
+020042|airframeIcingPresent|table|AIRFRAME ICING PRESENT|CODE TABLE|0|0|2|CODE TABLE|0|1
+020043|peakLiquidWaterContent|double|PEAK LIQUID WATER CONTENT|kg m-3|4|0|7|kg m-3|4|2
+020044|averageLiquidWaterContent|double|AVERAGE LIQUID WATER CONTENT|kg m-3|4|0|7|kg m-3|4|2
+020045|supercooledLargeDropletConditions|table|SUPERCOOLED LARGE DROPLET (SLD) CONDITIONS|CODE TABLE|0|0|2|CODE TABLE|0|1
+020048|evolutionOfFeature|table|EVOLUTION OF FEATURE|CODE TABLE|0|0|4|CODE TABLE|0|2
+020050|cloudIndex|table|CLOUD INDEX|CODE TABLE|0|0|8|CODE TABLE|0|3
+020051|amountOfLowClouds|long|AMOUNT OF LOW CLOUDS|%|0|0|7|%|0|3
+020052|amountOfMiddleClouds|long|AMOUNT OF MIDDLE CLOUDS|%|0|0|7|%|0|3
+020053|amountOfHighClouds|long|AMOUNT OF HIGH CLOUDS|%|0|0|7|%|0|3
+020054|trueDirectionFromWhichAPhenomenonOrCloudsAreMovingOrInWhichTheyAreObserved|long|TRUE DIRECTION FROM WHICH A PHENOMENON OR CLOUDS ARE MOVING OR IN WHICH THEY ARE OBSERVED|deg|0|0|9|deg|0|3
+020055|stateOfSkyInTropics|table|STATE OF SKY IN THE TROPICS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020056|cloudPhase|table|CLOUD PHASE|CODE TABLE|0|0|3|CODE TABLE|0|1
+020058|visibilitySeawardsFromACoastalStation|long|VISIBILITY SEAWARDS FROM A COASTAL STATION|m|-1|0|13|m|-1|4
+020059|minimumHorizontalVisibility|long|MINIMUM HORIZONTAL VISIBILITY|m|-1|0|9|m|-1|3
+020060|prevailingHorizontalVisibility|long|PREVAILING HORIZONTAL VISIBILITY|m|-1|0|10|m|-1|4
+020061|runwayVisualRangeRvr|long|RUNWAY VISUAL RANGE (RVR)|m|0|0|12|m|0|4
+020062|stateOfGround|table|STATE OF THE GROUND (WITH OR WITHOUT SNOW)|CODE TABLE|0|0|5|CODE TABLE|0|2
+020063|specialPhenomena|table|SPECIAL PHENOMENA|CODE TABLE|0|0|10|CODE TABLE|0|4
+020065|snowCover|long|SNOW COVER|%|0|0|7|%|0|3
+020066|maximumDiameterOfHailstones|double|MAXIMUM DIAMETER OF HAILSTONES|m|3|0|8|m|3|3
+020067|diameterOfDeposit|double|DIAMETER OF DEPOSIT|m|3|0|9|m|3|3
+020070|minimumNumberOfAtmospherics|long|MINIMUM NUMBER OF ATMOSPHERICS|Numeric|0|0|7|Numeric|0|3
+020071|accuracyOfFixAndRateOfAtmospherics|table|ACCURACY OF FIX AND RATE OF ATMOSPHERICS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020079|snowOrIceCrystalsIndicator|table|SNOW OR ICE CRYSTALS INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+020081|cloudAmountInSegment|long|CLOUD AMOUNT IN SEGMENT|%|0|0|7|%|0|3
+020082|amountSegmentCloudFree|long|AMOUNT SEGMENT CLOUD FREE|%|0|0|7|%|0|3
+020083|amountOfSegmentCoveredByScene|long|AMOUNT OF SEGMENT COVERED BY SCENE|%|0|0|7|%|0|3
+020085|generalConditionOfRunway|table|GENERAL CONDITION OF RUNWAY|CODE TABLE|0|0|4|CODE TABLE|0|1
+020086|runwayDeposits|table|RUNWAY DEPOSITS|CODE TABLE|0|0|4|CODE TABLE|0|1
+020087|runwayContamination|table|RUNWAY CONTAMINATION|CODE TABLE|0|0|4|CODE TABLE|0|1
+020088|depthOfRunwayDeposits|double|DEPTH OF RUNWAY DEPOSITS|m|3|0|12|m|0|4
+020089|runwayFrictionCoefficient|table|RUNWAY FRICTION COEFFICIENT|CODE TABLE|0|0|7|CODE TABLE|0|2
+020090|specialClouds|table|SPECIAL CLOUDS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020091|verticalVisibility|long|VERTICAL VISIBILITY|ft|-2|0|10|ft|-2|3
+020092|heightOfBaseOfCloud|long|HEIGHT OF BASE OF CLOUD|ft|-2|0|10|ft|-2|3
+020093|heightOfInversion|long|HEIGHT OF INVERSION|m|-1|0|8|m|-1|3
+020095|iceProbability|long|ICE PROBABILITY|Numeric|3|0|10|Numeric|3|4
+020096|iceAgeAParameter|double|ICE AGE (A PARAMETER)|dB|2|-4096|13|dB|2|4
+020101|locustAcridianName|table|LOCUST (ACRIDIAN) NAME|CODE TABLE|0|0|4|CODE TABLE|0|2
+020102|locustMaturityColour|table|LOCUST (MATURITY) COLOUR|CODE TABLE|0|0|4|CODE TABLE|0|2
+020103|stageOfDevelopmentOfLocusts|table|STAGE OF DEVELOPMENT OF LOCUSTS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020104|organizationStateOfSwarm|table|ORGANIZATION STATE OF SWARM OR BAND OF LOCUSTS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020105|sizeOfSwarmOrBandOfLocustsAndDurationOfPassageOfSwarm|table|SIZE OF SWARM OR BAND OF LOCUSTS AND DURATION OF PASSAGE OF SWARM|CODE TABLE|0|0|4|CODE TABLE|0|2
+020106|locustPopulationDensity|table|LOCUST POPULATION DENSITY|CODE TABLE|0|0|4|CODE TABLE|0|2
+020107|directionOfMovementsOfLocustSwarm|table|DIRECTION OF MOVEMENTS OF LOCUST SWARM|CODE TABLE|0|0|4|CODE TABLE|0|2
+020108|extentOfVegetation|table|EXTENT OF VEGETATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020111|xAxisErrorEllipseMajorComponent|long|X-AXIS ERROR ELLIPSE MAJOR COMPONENT|m|-1|0|17|m|-1|6
+020112|yAxisErrorEllipseMinorComponent|long|Y-AXIS ERROR ELLIPSE MINOR COMPONENT|m|-1|0|17|m|-1|6
+020113|zAxisErrorEllipseComponent|long|Z-AXIS ERROR ELLIPSE COMPONENT|m|-1|0|17|m|-1|6
+020114|angleOfXAxisInErrorEllipse|double|ANGLE OF X-AXIS IN ERROR ELLIPSE|deg|2|-18000|16|deg|2|5
+020115|angleOfZAxisInErrorEllipse|double|ANGLE OF Z-AXIS IN ERROR ELLIPSE|deg|2|-18000|16|deg|2|5
+020116|emissionHeightOfCloudStroke|long|EMISSION HEIGHT OF CLOUD STROKE|m|0|0|16|m|0|5
+020117|amplitudeOfLightningStrike|long|AMPLITUDE OF LIGHTNING STRIKE|A|-1|-32000|16|A|-1|5
+020118|lightningDetectionError|long|LIGHTNING DETECTION ERROR|m|0|0|19|m|0|6
+020119|lightningDischargePolarity|table|LIGHTNING DISCHARGE POLARITY|CODE TABLE|0|0|2|CODE TABLE|0|1
+020121|thresholdValueForPolarityDecision|double|THRESHOLD VALUE FOR POLARITY DECISION|V|3|0|16|V|3|5
+020122|thresholdValueForPolarityDecision|long|THRESHOLD VALUE FOR POLARITY DECISION|A|0|0|16|A|0|5
+020123|minimumDirectionThreshold|double|MINIMUM THRESHOLD FOR DETECTION|V/m|3|0|16|V/m|3|5
+020124|lightningStrokeOrFlash|table|LIGHTNING STROKE OR FLASH|CODE TABLE|0|0|2|CODE TABLE|0|1
+020126|lightningRateOfDischarge|long|LIGHTNING RATE OF DISCHARGE|/h|0|0|23|/h|0|7
+020127|lightningDistanceFromStation|long|LIGHTNING - DISTANCE FROM STATION|m|-3|0|8|m|-3|3
+020128|lightningDirectionFromStation|double|LIGHTNING - DIRECTION FROM STATION|deg|1|0|12|deg|1|4
+020129|lightningDensityStrokeFlashOrEvent|double|LIGHTNING DENSITY (STROKE, FLASH OR EVENT)|m-2|6|0|10|m-2|6|4
+020130|cloudHydrometeorConcentration|long|CLOUD HYDROMETEOR CONCENTRATION|Numeric|0|0|10|Numeric|0|3
+020131|effectiveRadiusOfCloudHydrometeors|double|EFFECTIVE RADIUS OF CLOUD HYDROMETEORS|m|5|0|6|m|5|2
+020132|cloudLiquidWaterContent|double|CLOUD LIQUID WATER CONTENT|kg m-3|5|0|11|kg m-3|5|4
+020133|hydrometeorRadius|double|HYDROMETEOR RADIUS|m|5|0|6|m|5|2
+020135|iceMassOnARod|double|ICE MASS (ON A ROD)|kg/m|1|0|10|kg/m|1|3
+020136|supplementaryCloudType|table|SUPPLEMENTARY CLOUD TYPE|CODE TABLE|0|0|9|CODE TABLE|0|3
+020137|evolutionOfClouds|table|EVOLUTION OF CLOUDS|CODE TABLE|0|0|4|CODE TABLE|0|2
+020138|roadSurfaceCondition|table|ROAD SURFACE CONDITION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020139|finalCloudModelAssumption|table|FINAL CLOUD MODEL ASSUMPTION|CODE TABLE|0|0|4|CODE TABLE|0|2
+020140|lightningArea|long|LIGHTNING AREA|m2|0|0|30|m2|0|0
+020141|lightningEnergy|double|LIGHTNING ENERGY|J|19|0|30|J|0|0
+020142|lightningDetectionEfficiency|long|LIGHTNING DETECTION EFFICIENCY|%|0|0|7|%|0|0
+020143|liquidCloud|table|LIQUID CLOUD|CODE TABLE|0|0|2|CODE TABLE|0|1
+021001|horizontalReflectivity|long|HORIZONTAL REFLECTIVITY|dB|0|-64|7|dB|0|3
+021002|verticalReflectivity|long|VERTICAL REFLECTIVITY|dB|0|-64|7|dB|0|3
+021003|differentialReflectivity|double|DIFFERENTIAL REFLECTIVITY|dB|1|-5|7|dB|1|3
+021004|differentialReflectivity|double|DIFFERENTIAL REFLECTIVITY|dB|2|-800|11|dB|2|4
+021005|linearDepolarizationRatio|long|LINEAR DEPOLARIZATION RATIO|dB|0|-65|6|dB|0|2
+021006|circularDepolarizationRatio|long|CIRCULAR DEPOLARIZATION RATIO|dB|0|-65|6|dB|0|2
+021007|radarReflectivityFactor|double|RADAR REFLECTIVITY FACTOR|dB|2|-9000|15|dB|0|0
+021008|uncertaintyInRadarReflectivityFactor|double|UNCERTAINTY IN RADAR REFLECTIVITY FACTOR|dB|2|0|13|dB|0|0
+021009|verticalDopplerVelocity|double|VERTICAL DOPPLER VELOCITY|m/s|2|-10000|15|m/s|0|0
+021010|uncertaintyInVerticalDopplerVelocity|double|UNCERTAINTY IN VERTICAL DOPPLER VELOCITY|m/s|2|-10000|15|m/s|0|0
+021011|dopplerMeanVelocityXDirection|long|DOPPLER MEAN VELOCITY IN X-DIRECTION|m/s|0|-128|8|m/s|0|3
+021012|dopplerMeanVelocityYDirection|long|DOPPLER MEAN VELOCITY IN Y-DIRECTION|m/s|0|-128|8|m/s|0|3
+021013|dopplerMeanVelocityZDirection|long|DOPPLER MEAN VELOCITY IN Z-DIRECTION|m/s|0|-128|8|m/s|0|3
+021014|dopplerMeanVelocityRadial|double|DOPPLER MEAN VELOCITY (RADIAL)|m/s|1|-4096|13|m/s|1|4
+021017|dopplerVelocitySpectralWidth|double|DOPPLER VELOCITY SPECTRAL WIDTH|m/s|1|0|8|m/s|1|3
+021018|extendedNyquistVelocity|double|EXTENDED NYQUIST VELOCITY|m/s|1|0|10|m/s|1|4
+021019|highNyquistVelocity|double|HIGH NYQUIST VELOCITY|m/s|1|0|10|m/s|1|3
+021021|echoTops|long|ECHO TOPS|m|-3|0|4|m|-3|2
+021022|rangeBinOffset|double|RANGE BIN OFFSET|m|1|0|14|m|1|5
+021023|rangeBinSize|long|RANGE BIN SIZE|m|0|0|14|m|0|5
+021024|azimuthOffset|double|AZIMUTH OFFSET|deg|1|0|12|deg|1|4
+021025|azimuthalResolution|double|AZIMUTHAL RESOLUTION|deg|1|0|8|deg|1|3
+021026|ascatSigma0Usability|table|ASCAT SIGMA-0 USABILITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+021027|landContributionRatio|long|LAND CONTRIBUTION RATIO|Numeric|4|0|14|Numeric|4|5
+021028|differentialPhase|double|DIFFERENTIAL PHASE|deg|1|0|12|deg|1|4
+021029|crossPolarizationCorrelationCoefficient|long|CROSS-POLARIZATION CORRELATION COEFFICIENT|Numeric|2|-100|8|Numeric|2|3
+021030|signalToNoiseRatio|long|SIGNAL TO NOISE RATIO|dB|0|-32|8|dB|0|3
+021031|verticallyIntegratedLiquidWaterContent|long|VERTICALLY INTEGRATED LIQUID-WATER CONTENT|kg m-2|0|0|7|kg m-2|0|3
+021036|radarRainfallIntensity|double|RADAR RAINFALL INTENSITY|m/s|7|0|12|m/s|7|4
+021041|brightBandHeight|long|BRIGHT-BAND HEIGHT|m|-2|0|8|m|-2|3
+021051|signalPowerAbove1Mw|long|SIGNAL POWER ABOVE 1 MW|dB|0|-256|8|dB|0|3
+021062|backscatter|double|BACKSCATTER|dB|2|-5000|13|dB|2|4
+021063|radiometricResolutionNoiseValue|double|RADIOMETRIC RESOLUTION (NOISE VALUE)|%|1|0|10|%|1|4
+021064|clutterNoiseEstimate|long|CLUTTER NOISE ESTIMATE|Numeric|0|0|8|Numeric|0|3
+021065|missingPacketCounter|long|MISSING PACKET COUNTER|Numeric|0|-127|8|Numeric|0|3
+021066|waveScatterometerProductConfidenceData|flag|WAVE SCATTEROMETER PRODUCT CONFIDENCE DATA|FLAG TABLE|0|0|12|FLAG TABLE|0|4
+021067|windProductConfidenceData|flag|WIND PRODUCT CONFIDENCE DATA|FLAG TABLE|0|0|13|FLAG TABLE|0|5
+021068|radarAltimeterProductConfidenceData|flag|RADAR ALTIMETER PRODUCT CONFIDENCE DATA|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+021069|sstProductConfidenceData|flag|SST PRODUCT CONFIDENCE DATA|FLAG TABLE|0|0|10|FLAG TABLE|0|4
+021070|sstProductConfidenceDataSadist2|flag|SST PRODUCT CONFIDENCE DATA (SADIST-2)|FLAG TABLE|0|0|23|FLAG TABLE|0|6
+021071|peakiness|long|PEAKINESS|Numeric|0|0|16|Numeric|0|5
+021072|satelliteAltimeterCalibrationStatus|flag|SATELLITE ALTIMETER CALIBRATION STATUS|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+021073|satelliteAltimeterInstrumentMode|flag|SATELLITE ALTIMETER INSTRUMENT MODE|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+021075|imageSpectrumIntensity|long|IMAGE SPECTRUM INTENSITY|Numeric|0|0|8|Numeric|0|3
+021076|representationOfIntensities|table|REPRESENTATION OF INTENSITIES|CODE TABLE|0|0|3|CODE TABLE|0|1
+021077|altitudeCorrectionIonosphere|double|ALTITUDE CORRECTION (IONOSPHERE)|m|3|0|14|m|3|5
+021078|altitudeCorrectionDryTroposphere|double|ALTITUDE CORRECTION (DRY TROPOSPHERE)|m|3|0|9|m|3|3
+021079|altitudeCorrectionWetTroposphere|double|ALTITUDE CORRECTION (WET TROPOSPHERE)|m|3|2000|10|m|3|4
+021080|altitudeCorrectionCalibrationConstant|double|ALTITUDE CORRECTION (CALIBRATION CONSTANT)|m|3|0|11|m|3|4
+021081|openLoopCorrectionHeightTimeLoop|double|OPEN LOOP CORRECTION (HEIGHT-TIME LOOP)|m|3|0|10|m|3|4
+021082|openLoopCorrectionAutoGainControl|double|OPEN LOOP CORRECTION (AUTO GAIN CONTROL)|dB|3|-3000|14|dB|3|5
+021083|warmTargetCalibration|long|WARM TARGET CALIBRATION|Numeric|0|0|16|Numeric|0|5
+021084|coldTargetCalibration|long|COLD TARGET CALIBRATION|Numeric|0|0|16|Numeric|0|5
+021085|atsrSeaSurfaceTemperatureAcrossTrackBandNumber|long|ATSR SEA-SURFACE TEMPERATURE ACROSS-TRACK BAND NUMBER|Numeric|0|0|4|Numeric|0|2
+021086|numberOfPixelsInNadirOnlyAverage|long|NUMBER OF PIXELS IN NADIR ONLY, AVERAGE|Numeric|0|0|9|Numeric|0|3
+021087|numberOfPixelsInDualViewAverage|long|NUMBER OF PIXELS IN DUAL VIEW, AVERAGE|Numeric|0|0|9|Numeric|0|3
+021088|wetBackscatter|double|WET BACKSCATTER|dB|2|-5000|13|dB|2|4
+021091|radarSignalDopplerSpectrum0thMoment|long|RADAR SIGNAL DOPPLER SPECTRUM 0TH MOMENT|dB|0|-100|8|dB|0|3
+021092|rassSignalDopplerSpectrum0thMomentReferringToRassSignal|long|RASS SIGNAL DOPPLER SPECTRUM 0TH MOMENT, REFERRING TO RASS SIGNAL|dB|0|-100|8|dB|0|3
+021093|kuBandPeakiness|long|KU BAND PEAKINESS|Numeric|3|0|16|Numeric|3|5
+021094|sBandPeakiness|long|S BAND PEAKINESS|Numeric|3|0|16|Numeric|3|5
+021095|kpCoefficientA|long|KP COEFFICIENT A|Numeric|6|0|20|Numeric|6|7
+021096|kpCoefficientB|long|KP COEFFICIENT B|Numeric|6|0|20|Numeric|6|7
+021097|kpCoefficientC|long|KP COEFFICIENT C|Numeric|6|0|20|Numeric|6|7
+021101|numberOfVectorAmbiguities|long|NUMBER OF VECTOR AMBIGUITIES|Numeric|0|0|3|Numeric|0|1
+021102|indexOfSelectedWindVector|long|INDEX OF SELECTED WIND VECTOR|Numeric|0|0|3|Numeric|0|1
+021103|totalNumberOfSigma0Measurements|long|TOTAL NUMBER OF SIGMA-0 MEASUREMENTS|Numeric|0|0|5|Numeric|0|2
+021104|likelihoodComputedForSolution|long|LIKELIHOOD COMPUTED FOR SOLUTION|Numeric|3|-30000|15|Numeric|3|5
+021105|normalizedRadarCrossSection|double|NORMALIZED RADAR CROSS-SECTION|dB|2|-10000|14|dB|2|5
+021106|kpVarianceCoefficientAlpha|long|KP VARIANCE COEFFICIENT (ALPHA)|Numeric|3|0|14|Numeric|3|5
+021107|kpVarianceCoefficientBeta|long|KP VARIANCE COEFFICIENT (BETA)|Numeric|8|0|16|Numeric|8|5
+021109|seawindsWindVectorCellQuality|flag|SEAWINDS WIND VECTOR CELL QUALITY|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+021110|numberOfInnerBeamSigma0ForwardOfSatellite|long|NUMBER OF INNER-BEAM SIGMA-0 (FORWARD OF SATELLITE)|Numeric|0|0|6|Numeric|0|2
+021111|numberOfOuterBeamSigma0ForwardOfSatellite|long|NUMBER OF OUTER-BEAM SIGMA-0 (FORWARD OF SATELLITE)|Numeric|0|0|6|Numeric|0|2
+021112|numberOfInnerBeamSigma0AftOfSatellite|long|NUMBER OF INNER-BEAM SIGMA-0 (AFT OF SATELLITE)|Numeric|0|0|6|Numeric|0|2
+021113|numberOfOuterBeamSigma0AftOfSatellite|long|NUMBER OF OUTER-BEAM SIGMA-0 (AFT OF SATELLITE)|Numeric|0|0|6|Numeric|0|2
+021114|kpVarianceCoefficientGamma|double|KP VARIANCE COEFFICIENT (GAMMA)|dB|3|-140000|18|dB|3|6
+021115|seawindsSigma0Quality|flag|SEAWINDS SIGMA-0 QUALITY|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+021116|seawindsSigma0Mode|flag|SEAWINDS SIGMA-0 MODE|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+021117|sigma0VarianceQualityControl|long|SIGMA-0 VARIANCE QUALITY CONTROL|Numeric|2|0|16|Numeric|2|5
+021118|attenuationCorrectionOnSigma0|double|ATTENUATION CORRECTION ON SIGMA-0|dB|2|-10000|14|dB|2|5
+021119|windScatterometerGeophysicalModelFunction|table|WIND SCATTEROMETER GEOPHYSICAL MODEL FUNCTION|CODE TABLE|0|0|6|CODE TABLE|0|2
+021120|probabilityOfRain|long|PROBABILITY OF RAIN|Numeric|3|0|10|Numeric|3|4
+021121|seawindsNofRainIndex|long|SEAWINDS NOF RAIN INDEX|Numeric|0|0|8|Numeric|0|3
+021122|attenuationCorrectionOnSigma0FromTb|double|ATTENUATION CORRECTION ON SIGMA-0 (FROM TB)|dB|2|-10000|14|dB|2|5
+021123|seawindsNormalizedRadarCrossSection|double|SEAWINDS NORMALIZED RADAR CROSS-SECTION|dB|2|-30000|15|dB|2|5
+021128|numberOfValidPointsPerSecondUsedToDerivePreviousParameters|long|NUMBER OF VALID POINTS PER SECOND USED TO DERIVE PREVIOUS PARAMETERS|Numeric|0|0|8|Numeric|0|3
+021130|spectrumTotalEnergy|long|SPECTRUM TOTAL ENERGY|Numeric|6|0|28|Numeric|6|9
+021131|spectrumMaxEnergy|long|SPECTRUM MAX ENERGY|Numeric|6|0|28|Numeric|6|9
+021132|directionOfSpectrumMaxOnHigherResolutionGrid|double|DIRECTION OF SPECTRUM MAX ON HIGHER RESOLUTION GRID|deg|3|0|19|deg|3|6
+021133|wavelengthOfSpectrumMaxOnHigherResolutionGrid|double|WAVELENGTH OF SPECTRUM MAX ON HIGHER RESOLUTION GRID|m|3|0|29|m|3|9
+021134|rangeResolutionOfCressCovarianceSpectrum|double|RANGE RESOLUTION OF CRESS COVARIANCE SPECTRUM|rad/m|3|0|19|rad/m|3|6
+021135|realPartOfCrossSpectraPolarGridNumberOfBins|long|REAL PART OF CROSS SPECTRA POLAR GRID NUMBER OF BINS|Numeric|3|-524288|20|Numeric|3|7
+021136|imaginaryPartOfCrossSpectraPolarGridNumberOfBins|long|IMAGINARY PART OF CROSS SPECTRA POLAR GRID NUMBER OF BINS|Numeric|3|-524288|20|Numeric|3|7
+021137|kuBandCorrectedOceanBackscatterCoefficient|double|KU BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021138|stdKuBandCorrectedOceanBackscatterCoefficient|double|STD KU BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021139|kuBandNetInstrumentalCorrectionForAgc|double|KU BAND NET INSTRUMENTAL CORRECTION FOR AGC|dB|2|-2048|12|dB|2|4
+021140|sBandCorrectedOceanBackscatterCoefficient|double|S BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021141|stdSBandCorrectedOceanBackscatterCoefficient|double|STD S BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021142|sBandNetInstrumentalCorrectionForAgc|double|S BAND NET INSTRUMENTAL CORRECTION FOR AGC|dB|2|-1024|11|dB|2|4
+021143|kuBandRainAttenuation|double|KU BAND RAIN ATTENUATION|dB|2|-1073741824|31|dB|2|10
+021144|altimeterRainFlag|flag|ALTIMETER RAIN FLAG|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+021145|kuBandAutomaticGainControl|double|KU BAND AUTOMATIC GAIN CONTROL|dB|2|0|13|dB|2|4
+021146|rmsKuBandAutomaticGainControl|double|RMS KU BAND AUTOMATIC GAIN CONTROL|dB|2|0|8|dB|2|3
+021147|numberOfValidPointsForKuBandAutomaticGainControl|long|NUMBER OF VALID POINTS FOR KU BAND AUTOMATIC GAIN CONTROL|Numeric|0|0|5|Numeric|0|2
+021148|trailingEdgeVariationFlag|flag|TRAILING EDGE VARIATION FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+021150|beamCollocation|table|BEAM CO-LOCATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+021151|estimatedErrorInSigma0At40DegreesIncidenceAngle|double|ESTIMATED ERROR IN SIGMA-0 AT 40 DEGREES INCIDENCE ANGLE|dB|2|0|9|dB|2|3
+021152|slopeAt40DegreesIncidenceAngle|double|SLOPE AT 40 DEGREES INCIDENCE ANGLE|dB/deg|2|-80|7|dB/deg|2|2
+021153|estimatedErrorInSlopeAt40DegreesIncidenceAngle|double|ESTIMATED ERROR IN SLOPE AT 40 DEGREES INCIDENCE ANGLE|dB/deg|2|-40|6|dB/deg|2|2
+021154|soilMoistureSensitivity|double|SOIL MOISTURE SENSITIVITY|dB|2|0|12|dB|2|4
+021155|windVectorCellQuality|flag|WIND VECTOR CELL QUALITY|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+021156|backscatterDistance|long|BACKSCATTER DISTANCE|Numeric|1|-4096|13|Numeric|1|4
+021157|lossPerUnitLengthOfAtmosphere|double|LOSS PER UNIT LENGTH OF ATMOSPHERE USED|dB/m|10|0|22|dB/m|10|7
+021158|ascatKpEstimateQuality|table|ASCAT KP ESTIMATE QUALITY|CODE TABLE|0|0|2|CODE TABLE|0|1
+021159|ascatSigma0Usability|table|ASCAT SIGMA-0 USABILITY|CODE TABLE|0|0|2|CODE TABLE|0|1
+021160|ascatUseOfSyntheticData|long|ASCAT USE OF SYNTHETIC DATA|Numeric|3|0|10|Numeric|3|4
+021161|ascatSyntheticDataQuantity|long|ASCAT SYNTHETIC DATA QUANTITY|Numeric|3|0|10|Numeric|3|4
+021162|ascatSatelliteOrbitAndAttitudeQuality|long|ASCAT SATELLITE ORBIT AND ATTITUDE QUALITY|Numeric|3|0|10|Numeric|3|4
+021163|ascatSolarArrayReflectionContamination|long|ASCAT SOLAR ARRAY REFLECTION CONTAMINATION|Numeric|3|0|10|Numeric|3|4
+021164|ascatTelemetryPresenceAndQuality|long|ASCAT TELEMETRY PRESENCE AND QUALITY|Numeric|3|0|10|Numeric|3|4
+021165|ascatExtrapolatedReferenceFunctionPresence|long|ASCAT EXTRAPOLATED REFERENCE FUNCTION PRESENCE|Numeric|3|0|10|Numeric|3|4
+021166|landFraction|long|LAND FRACTION|Numeric|3|0|10|Numeric|3|4
+021169|icePresenceIndicator|table|ICE PRESENCE INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+021170|cBandCorrectedOceanBackscatterCoefficient|double|C BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021171|rmsCBandCorrectedOceanBackscatterCoefficient|double|RMS C BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021172|cBandNetInstrumentalCorrectionForAgc|double|C BAND NET INSTRUMENTAL CORRECTION FOR AGC|dB|2|-2048|12|dB|2|4
+021173|cBandAutomaticGainControl|double|C BAND AUTOMATIC GAIN CONTROL|dB|2|0|13|dB|2|4
+021174|rmsCBandAutomaticGainControl|double|RMS C BAND AUTOMATIC GAIN CONTROL|dB|2|0|9|dB|2|3
+021175|numberOfValidPointsForCBandAutomaticGainControl|long|NUMBER OF VALID POINTS FOR C BAND AUTOMATIC GAIN CONTROL|Numeric|0|0|10|Numeric|0|4
+021176|highFrequencyVariabilityCorrection|double|HIGH FREQUENCY VARIABILITY CORRECTION|m|3|0|16|m|3|5
+021177|correctedOcogBackscatterCoefficient|double|CORRECTED OCOG BACKSCATTER COEFFICIENT|dB|2|0|16|dB|2|5
+021178|stdOf20HzOcogBackscatterCoefficient|double|STD OF 20 HZ OCOG BACKSCATTER COEFFICIENT|dB|2|0|16|dB|2|5
+021179|numberOf20HzValidPointsForOcogBackscatterCoefficient|long|NUMBER OF 20 HZ VALID POINTS FOR OCOG BACKSCATTER COEFFICIENT|Numeric|0|0|16|Numeric|0|5
+021180|numberOf20HzValidPointsForOceanBackscatterCoefficient|long|NUMBER OF 20 HZ VALID POINTS FOR OCEAN BACKSCATTER COEFFICIENT|Numeric|0|0|8|Numeric|0|3
+021181|20HzOceanBackscatterCoefficient|double|20 HZ OCEAN BACKSCATTER COEFFICIENT|dB|2|0|16|dB|2|5
+021182|20HzKuBandPeakiness|long|20 HZ KU BAND PEAKINESS|Numeric|3|0|16|Numeric|3|5
+021183|specificBandCorrectedOceanBackscatterCoefficient|double|SPECIFIC BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021184|stdSpecificBandCorrectedOceanBackscatterCoefficient|double|STD SPECIFIC BAND CORRECTED OCEAN BACKSCATTER COEFFICIENT|dB|2|-32768|16|dB|2|5
+021185|specificBandNetInstrumentalCorrectionForAgc|double|SPECIFIC BAND NET INSTRUMENTAL CORRECTION FOR AGC|dB|2|-2048|12|dB|2|4
+021186|specificBandAutomaticGainControl|double|SPECIFIC BAND AUTOMATIC GAIN CONTROL|dB|2|0|13|dB|2|4
+021187|rmsSpecificBandAutomaticGainControl|double|RMS SPECIFIC BAND AUTOMATIC GAIN CONTROL|dB|2|0|8|dB|2|3
+021188|numberOfValidPointsForSpecificBandAutomaticGainControl|long|NUMBER OF VALID POINTS FOR SPECIFIC BAND AUTOMATIC GAIN CONTROL|Numeric|0|0|7|Numeric|0|3
+021189|correctedOcogBackscatterCoefficientNegativeReference|double|CORRECTED OCOG BACKSCATTER COEFFICIENT (NEGATIVE REFERENCE)|dB|2|-32768|16|dB|2|6
+022001|wavesDirection|long|DIRECTION OF WAVES|deg|0|0|9|deg|0|3
+022002|windWavesDirection|long|DIRECTION OF WIND WAVES|deg|0|0|9|deg|0|3
+022003|swellWavesDirection|long|DIRECTION OF SWELL WAVES|deg|0|0|9|deg|0|3
+022004|currentDirection|long|DIRECTION OF CURRENT|deg|0|0|9|deg|0|3
+022005|seaSurfaceCurrentDirection|long|DIRECTION OF SEA-SURFACE CURRENT|deg|0|0|9|deg|0|3
+022011|periodOfWaves|long|PERIOD OF WAVES|s|0|0|6|s|0|2
+022012|periodOfWindWaves|long|PERIOD OF WIND WAVES|s|0|0|6|s|0|2
+022013|periodOfSwellWaves|long|PERIOD OF SWELL WAVES|s|0|0|6|s|0|2
+022021|heightOfWaves|double|HEIGHT OF WAVES|m|1|0|10|m|1|4
+022022|heightOfWindWaves|double|HEIGHT OF WIND WAVES|m|1|0|10|m|1|4
+022023|heightOfSwellWaves|double|HEIGHT OF SWELL WAVES|m|1|0|10|m|1|4
+022025|standardDeviationWaveHeight|double|STANDARD DEVIATION WAVE HEIGHT|m|2|0|10|m|2|4
+022026|standardDeviationOfSignificantWaveHeight|double|STANDARD DEVIATION OF SIGNIFICANT WAVE HEIGHT|m|2|0|10|m|2|4
+022031|speedOfCurrent|double|SPEED OF CURRENT|m/s|2|0|13|m/s|2|4
+022032|speedOfSeaSurfaceCurrent|double|SPEED OF SEA-SURFACE CURRENT|m/s|2|0|13|m/s|2|4
+022035|tidalElevationWithRespectToLocalChartDatum|double|TIDAL ELEVATION WITH RESPECT TO LOCAL CHART DATUM|m|2|0|14|m|2|4
+022036|meteorologicalResidualTidalElevationSurgeOrOffset|double|METEOROLOGICAL RESIDUAL TIDAL ELEVATION (SURGE OR OFFSET)|m|2|0|14|m|2|4
+022037|tidalElevationWithRespectToNationalLandDatum|double|TIDAL ELEVATION WITH RESPECT TO NATIONAL LAND DATUM|m|3|-10000|15|m|3|5
+022038|tidalElevationWithRespectToLocalChartDatum|double|TIDAL ELEVATION WITH RESPECT TO LOCAL CHART DATUM|m|3|-10000|15|m|3|5
+022039|meteorologicalResidualTidalElevationSurgeOrOffset|double|METEOROLOGICAL RESIDUAL TIDAL ELEVATION (SURGE OR OFFSET)|m|3|-5000|13|m|3|4
+022040|meteorologicalResidualTidalElevationSurgeOrOffset|double|METEOROLOGICAL RESIDUAL TIDAL ELEVATION (SURGE OR OFFSET)|m|3|-5000|14|m|3|5
+022041|seaSurfaceTemperature15DayRunningMean|double|SEA-SURFACE TEMPERATURE (15-DAY RUNNING MEAN)|K|1|0|12|K|1|4
+022042|oceanographicWaterTemperature|double|SEA/WATER TEMPERATURE|K|1|0|12|K|1|4
+022043|oceanographicWaterTemperature|double|SEA/WATER TEMPERATURE|K|2|0|15|K|2|5
+022044|soundVelocity|double|SOUND VELOCITY|m/s|1|0|14|m/s|1|5
+022045|oceanographicWaterTemperature|double|SEA/WATER TEMPERATURE|K|3|0|19|K|3|6
+022046|seaIceFraction|long|SEA ICE FRACTION|Numeric|2|0|7|Numeric|2|3
+022049|seaSurfaceTemperature|double|SEA-SURFACE TEMPERATURE|K|2|0|15|K|2|5
+022050|standardDeviationSeaSurfaceTemperature|double|STANDARD DEVIATION SEA-SURFACE TEMPERATURE|K|2|0|8|K|2|3
+022055|floatCycleNumber|long|FLOAT CYCLE NUMBER|Numeric|0|0|10|Numeric|0|3
+022056|directionOfProfile|table|DIRECTION OF PROFILE|CODE TABLE|0|0|2|CODE TABLE|0|1
+022059|seaSurfaceSalinity|double|SEA-SURFACE SALINITY|0/00|2|0|14|0/00|2|5
+022060|lagrangianDrifterDrogueStatus|table|LAGRANGIAN DRIFTER DROGUE STATUS|CODE TABLE|0|0|3|CODE TABLE|0|1
+022061|seaState|table|STATE OF THE SEA|CODE TABLE|0|0|4|CODE TABLE|0|2
+022062|salinity|double|SALINITY|0/00|2|0|14|0/00|2|5
+022063|totalWaterDepth|long|TOTAL WATER DEPTH|m|0|0|14|m|0|5
+022064|salinity|double|SALINITY|0/00|3|0|17|0/00|3|6
+022065|oceanographicWaterPressure|long|WATER PRESSURE|Pa|-3|0|17|Pa|-3|6
+022066|oceanographicWaterConductivity|double|WATER CONDUCTIVITY|S/m|6|0|26|S/m|6|8
+022067|instrumentTypeForWaterTemperatureOrSalinityProfileMeasurement|table|INSTRUMENT TYPE FOR WATER TEMPERATURE/SALINITY PROFILE MEASUREMENT|CODE TABLE|0|0|10|CODE TABLE|0|4
+022068|waterTemperatureProfileRecorderTypes|table|WATER TEMPERATURE PROFILE RECORDER TYPES|CODE TABLE|0|0|7|CODE TABLE|0|3
+022069|spectralWaveDensity|double|SPECTRAL WAVE DENSITY|m2/Hz|3|0|22|m2/Hz|3|7
+022070|significantWaveHeight|double|SIGNIFICANT WAVE HEIGHT|m|2|0|13|m|2|4
+022071|spectralPeakWavePeriod|double|SPECTRAL PEAK WAVE PERIOD|s|1|0|9|s|1|3
+022072|spectralPeakWaveLength|long|SPECTRAL PEAK WAVELENGTH|m|0|0|13|m|0|4
+022073|maximumWaveHeight|double|MAXIMUM WAVE HEIGHT|m|2|0|13|m|2|4
+022074|averageWavePeriod|double|AVERAGE WAVE PERIOD|s|1|0|9|s|1|3
+022075|averageWaveLength|long|AVERAGE WAVELENGTH|m|0|0|13|m|0|4
+022076|directionFromWhichDominantWavesAreComing|long|DIRECTION FROM WHICH DOMINANT WAVES ARE COMING|deg|0|0|9|deg|0|3
+022077|directionalSpreadOfDominantWave|long|DIRECTIONAL SPREAD OF DOMINANT WAVE|deg|0|0|9|deg|0|3
+022078|durationOfWaveRecord|long|DURATION OF WAVE RECORD|s|0|0|12|s|0|4
+022079|lengthOfWaveRecord|long|LENGTH OF WAVE RECORD|m|0|0|16|m|0|5
+022080|wavebandCentralFrequency|double|WAVEBAND CENTRAL FREQUENCY|Hz|3|0|10|Hz|3|4
+022081|wavebandCentralWaveNumber|double|WAVEBAND CENTRAL WAVE NUMBER|/m|5|0|13|/m|5|4
+022082|maximumNonDirectionalSpectralWaveDensity|double|MAXIMUM NON-DIRECTIONAL SPECTRAL WAVE DENSITY|m2 s|2|0|20|m2 s|2|7
+022083|maximumNonDirectionalSpectralWaveNumber|double|MAXIMUM NON-DIRECTIONAL SPECTRAL WAVE NUMBER|m3|2|0|20|m3|2|7
+022084|bandContainingMaximumNonDirectionalSpectralWaveDensity|long|BAND CONTAINING MAXIMUM NON-DIRECTIONAL SPECTRAL WAVE DENSITY|Numeric|0|0|7|Numeric|0|3
+022085|spectralWaveDensityRatio|long|SPECTRAL WAVE DENSITY RATIO|Numeric|0|0|7|Numeric|0|3
+022086|meanDirectionFromWhichWavesAreComing|long|MEAN DIRECTION FROM WHICH WAVES ARE COMING|deg|0|0|9|deg|0|3
+022087|principalDirectionFromWhichWavesAreComing|long|PRINCIPAL DIRECTION FROM WHICH WAVES ARE COMING|deg|0|0|9|deg|0|3
+022088|firstNormalizedPolarCoordinateFromFourierCoefficients|long|FIRST NORMALIZED POLAR COORDINATE FROM FOURIER COEFFICIENTS|Numeric|2|0|7|Numeric|2|3
+022089|secondNormalizedPolarCoordinateFromFourierCoefficients|long|SECOND NORMALIZED POLAR COORDINATE FROM FOURIER COEFFICIENTS|Numeric|2|0|7|Numeric|2|3
+022090|nonDirectionalSpectralEstimateByWaveFrequency|double|NON-DIRECTIONAL SPECTRAL ESTIMATE BY WAVE FREQUENCY|m2 s|2|0|20|m2 s|2|7
+022091|nonDirectionalSpectralEstimateByWaveNumber|double|NON-DIRECTIONAL SPECTRAL ESTIMATE BY WAVE NUMBER|m3|2|0|20|m3|2|7
+022092|directionalSpectralEstimateByWaveFrequency|double|DIRECTIONAL SPECTRAL ESTIMATE BY WAVE FREQUENCY|m2 rad-1 s|2|0|20|m2 rad-1 s|2|7
+022093|directionalSpectralEstimateByWaveNumber|double|DIRECTIONAL SPECTRAL ESTIMATE BY WAVE NUMBER|m4|2|0|20|m4|2|7
+022094|totalNumberOfWaveBands|long|TOTAL NUMBER OF WAVE BANDS|Numeric|0|0|7|Numeric|0|3
+022095|directionalSpreadOfIndividualWaves|long|DIRECTIONAL SPREAD OF INDIVIDUAL WAVES|deg|0|0|8|deg|0|3
+022096|spectralBandWidth|double|SPECTRAL BAND WIDTH|/s|3|0|4|/s|3|2
+022097|meanWavelength731MOfImageSpectrumAtLowWaveNumbers|long|MEAN WAVELENGTH > 731 M OF IMAGE SPECTRUM AT LOW WAVE NUMBERS|m|0|0|14|m|0|5
+022098|wavelengthSpreadWavelength731MAtLowWaveNumbers|long|WAVELENGTH SPREAD (WAVELENGTH > 731 M) AT LOW WAVE NUMBERS|m|0|0|14|m|0|5
+022099|meanDirectionAtLowWaveNumbersWavelength731M|long|MEAN DIRECTION AT LOW WAVE NUMBERS (WAVELENGTH > 731 M)|deg|0|0|9|deg|0|3
+022100|directionSpreadAtLowWaveNumbersWavelength731M|long|DIRECTION SPREAD AT LOW WAVE NUMBERS (WAVELENGTH > 731 M)|deg|0|0|9|deg|0|3
+022101|totalEnergyWavelength731mAtLowWaveNumbers|long|TOTAL ENERGY (WAVELENGTH > 731M) AT LOW WAVE NUMBERS|Numeric|0|0|31|Numeric|0|10
+022102|scaledMaximumNonDirectionalSpectralWaveDensityByFrequency|long|SCALED MAXIMUM NON-DIRECTIONAL SPECTRAL WAVE DENSITY BY FREQUENCY|m2 s|0|0|14|m2 s|0|5
+022103|scaledMaximumNonDirectionalSpectralWaveDensityByWavenumber|long|SCALED MAXIMUM NON-DIRECTIONAL SPECTRAL WAVE DENSITY BY WAVE NUMBER|m3|0|0|14|m3|0|5
+022104|scaledNonDirectionalSpectralWaveDensityByFrequency|long|SCALED NON-DIRECTIONAL SPECTRAL WAVE DENSITY BY FREQUENCY|m2 s|0|0|14|m2 s|0|5
+022105|scaledNonDirectionalSpectralWaveDensityByWavenumber|long|SCALED NON-DIRECTIONAL SPECTRAL WAVE DENSITY BY WAVE NUMBER|m3|0|0|14|m3|0|5
+022106|scaledDirectionalSpectralWaveDensityByFrequency|long|SCALED DIRECTIONAL SPECTRAL WAVE DENSITY BY FREQUENCY|m2 rad-1 s|0|0|14|m2 rad-1 s|0|5
+022107|scaledDirectionalSpectralWaveDensityByWavenumber|long|SCALED DIRECTIONAL SPECTRAL WAVE DENSITY BY WAVE NUMBER|m4|0|0|14|m4|0|5
+022108|spectralWaveDensityRatio|long|SPECTRAL WAVE DENSITY RATIO|%|0|0|7|%|0|3
+022120|tideStationAutomatedWaterLevelCheck|table|TIDE STATION AUTOMATED WATER LEVEL CHECK|CODE TABLE|0|0|5|CODE TABLE|0|2
+022121|tideStationManualWaterLevelCheck|table|TIDE STATION MANUAL WATER LEVEL CHECK|CODE TABLE|0|0|5|CODE TABLE|0|2
+022122|automatedMeteorologicalDataCheck|table|TIDE STATION AUTOMATED METEOROLOGICAL DATA CHECK|CODE TABLE|0|0|5|CODE TABLE|0|2
+022123|tideStationManualMeteorologicalDataCheck|table|TIDE STATION MANUAL METEOROLOGICAL DATA CHECK|CODE TABLE|0|0|5|CODE TABLE|0|2
+022130|numberOfValidPointsForSpecificBand|long|NUMBER OF VALID POINTS FOR SPECIFIC BAND|Numeric|0|0|10|Numeric|0|4
+022131|rmsSpecificBandSignificantWaveHeight|double|RMS SPECIFIC BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022132|numberOfValidPointsForSpecificBandSignificantWaveHeight|long|NUMBER OF VALID POINTS FOR SPECIFIC BAND SIGNIFICANT WAVE HEIGHT|Numeric|0|0|10|Numeric|0|4
+022133|specificBandNetInstrumentCorrectionForSignificantWaveHeight|double|SPECIFIC BAND NET INSTRUMENT CORRECTION FOR SIGNIFICANT WAVE HEIGHT|m|3|-1000|11|m|3|4
+022134|numberOfValidPointsForSpecificBandBackscatter|long|NUMBER OF VALID POINTS FOR SPECIFIC BAND BACKSCATTER|Numeric|0|0|10|Numeric|0|4
+022141|seaSurfaceTemperature15DayRunningMean|double|SEA-SURFACE TEMPERATURE (15-DAY RUNNING MEAN)|K|2|0|15|K|2|5
+022142|squareOfSignificantWaveHeight|double|SQUARE OF SIGNIFICANT WAVE HEIGHT|m2|3|-33554432|26|m2|3|8
+022143|stdOf20HzSwhSquared|double|STD OF 20 HZ SWH SQUARED|m2|3|-8388608|24|m2|3|8
+022144|numberOf20HzValidPointsForSwhSquared|long|NUMBER OF 20 HZ VALID POINTS FOR SWH SQUARED|Numeric|0|0|9|Numeric|0|3
+022145|stdOf20HzOceanRange|double|STD OF 20 HZ OCEAN RANGE|m|3|-33554432|31|m|3|10
+022146|ocogRange|double|OCOG RANGE|m|3|0|31|m|3|10
+022147|stdOf20HzOcogRange|double|STD OF 20 HZ OCOG RANGE|m|3|-8388608|31|m|3|10
+022148|numberOf20HzValidPointsForOceanRange|long|NUMBER OF 20 HZ VALID POINTS FOR OCEAN RANGE|Numeric|0|0|9|Numeric|0|3
+022149|20HzSignificantWaveHeightSquared|double|20 HZ SIGNIFICANT WAVE HEIGHT SQUARED|m2|3|-33554432|26|m2|3|8
+022150|numberOf18HzValidPointsForKuBand|long|NUMBER OF 18 HZ VALID POINTS FOR KU BAND|Numeric|0|0|10|Numeric|0|4
+022151|kuBandOceanRange|double|KU BAND OCEAN RANGE|m|3|0|31|m|3|10
+022152|stdOf18HzKuBandOceanRange|double|STD OF 18 HZ KU BAND OCEAN RANGE|m|3|0|16|m|3|5
+022153|numberOf18HzValidPointsForSBand|long|NUMBER OF 18 HZ VALID POINTS FOR S BAND|Numeric|0|0|10|Numeric|0|4
+022154|sBandOceanRange|double|S BAND OCEAN RANGE|m|3|0|31|m|3|10
+022155|stdOf18HzSBandOceanRange|double|STD OF 18 HZ S BAND OCEAN RANGE|m|3|0|16|m|3|5
+022156|kuBandSignificantWaveHeight|double|KU BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022157|stdOf18HzKuBandOceanRange|double|STD OF 18 HZ KU BAND OCEAN RANGE|m|3|0|16|m|3|5
+022158|sBandSignificantWaveHeight|double|S BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022159|stdOf18HzSBandSignificantWaveHeight|double|STD OF 18 HZ S BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022160|normalizedInverseWaveAge|long|NORMALIZED INVERSE WAVE AGE|Numeric|6|0|21|Numeric|6|7
+022161|waveSpectra|double|WAVE SPECTRA|m4|4|0|27|m4|4|9
+022162|rmsOf20HzKuBandOceanRange|double|RMS OF 20 HZ KU BAND OCEAN RANGE|m|3|0|16|m|3|5
+022163|numberOf20HzValidPointsForKuBand|long|NUMBER OF 20 HZ VALID POINTS FOR KU BAND|Numeric|0|0|10|Numeric|0|4
+022164|rms20HzKuBandSignificantWaveHeight|double|RMS 20 HZ KU BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022165|numberOf20HzValidPointsForKuBandSignificantWaveHeight|long|NUMBER OF 20 HZ VALID POINTS FOR KU BAND SIGNIFICANT WAVE HEIGHT|Numeric|0|0|10|Numeric|0|4
+022166|kuBandNetInstrumentalCorrectionForSignificantWaveHeight|double|KU BAND NET INSTRUMENTAL CORRECTION FOR SIGNIFICANT WAVE HEIGHT|m|3|-1000|11|m|3|4
+022167|numberOfValidPointsForKuBandBackscatter|long|NUMBER OF VALID POINTS FOR KU BAND BACKSCATTER|Numeric|0|0|10|Numeric|0|4
+022168|cBandOceanRange|double|C BAND OCEAN RANGE|m|3|0|31|m|3|10
+022169|rmsOfCBandOceanRange|double|RMS OF C BAND OCEAN RANGE|m|3|0|16|m|3|5
+022170|numberOf20HzValidPointsForCBand|long|NUMBER OF 20 HZ VALID POINTS FOR C BAND|Numeric|0|0|10|Numeric|0|4
+022171|cBandSignificantWaveHeight|double|C BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022172|rms20HzCBandSignificantWaveHeight|double|RMS 20 HZ C BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022173|numberOf20HzValidPointsForCBandSignificantWaveHeight|long|NUMBER OF 20 HZ VALID POINTS FOR C BAND SIGNIFICANT WAVE HEIGHT|Numeric|0|0|10|Numeric|0|4
+022174|cBandNetInstrumentalCorrectionForSignificantWaveHeight|double|C BAND NET INSTRUMENTAL CORRECTION FOR SIGNIFICANT WAVE HEIGHT|m|3|-1000|11|m|3|4
+022175|numberOfValidPointsForCBandBackscatter|long|NUMBER OF VALID POINTS FOR C BAND BACKSCATTER|Numeric|0|0|10|Numeric|0|4
+022177|heightOfXbtOrXctdLauncher|long|HEIGHT OF XBT/XCTD LAUNCHER|m|0|0|6|m|0|3
+022178|xbtOrXctdLauncherType|table|XBT/XCTD LAUNCHER TYPE|CODE TABLE|0|0|8|CODE TABLE|0|3
+022179|specificBandSignificantWaveHeightNegativeReference|double|SPECIFIC BAND SIGNIFICANT WAVE HEIGHT (NEGATIVE REFERENCE)|m|3|-500|16|m|3|6
+022182|waterColumnHeight|double|WATER COLUMN HEIGHT|m|3|0|23|m|3|7
+022184|waterColumnHeightDeviationFromReferenceValue|double|WATER COLUMN HEIGHT DEVIATION FROM THE REFERENCE VALUE|m|3|-2000|12|m|3|4
+022185|bprTransmissionCount|long|BPR TRANSMISSION COUNT|Numeric|0|0|10|Numeric|0|3
+022186|directionFromWhichWavesAreComing|long|DIRECTION FROM WHICH WAVES ARE COMING|deg|0|0|9|deg|0|3
+022187|directionalSpreadOfWaves|long|DIRECTIONAL SPREAD OF WAVE|deg|0|0|9|deg|0|3
+022188|oceanographicDissolvedOxygen|double|DISSOLVED OXYGEN|umol/kg|3|0|19|umol/kg|3|6
+022189|specificBandOceanRange|double|SPECIFIC BAND OCEAN RANGE|m|3|0|31|m|3|10
+022190|specificBandSignificantWaveHeight|double|SPECIFIC BAND SIGNIFICANT WAVE HEIGHT|m|3|0|16|m|3|5
+022191|rmsOfSpecificBandOceanRange|double|RMS OF SPECIFIC BAND OCEAN RANGE|m|4|0|16|m|4|5
+023001|accidentEarlyNotificationArticleApplicable|table|ACCIDENT EARLY NOTIFICATION - ARTICLE APPLICABLE|CODE TABLE|0|0|3|CODE TABLE|0|1
+023002|facilityInvolvedInIncident|table|ACTIVITY OR FACILITY INVOLVED IN INCIDENT|CODE TABLE|0|0|5|CODE TABLE|0|2
+023003|releaseType|table|TYPE OF RELEASE|CODE TABLE|0|0|3|CODE TABLE|0|1
+023004|countermeasuresTakenNearBorder|table|COUNTERMEASURES TAKEN NEAR BORDER|CODE TABLE|0|0|3|CODE TABLE|0|1
+023005|causeOfIncident|table|CAUSE OF INCIDENT|CODE TABLE|0|0|2|CODE TABLE|0|1
+023006|incidentSituation|table|INCIDENT SITUATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+023007|characteristicsOfRelease|table|CHARACTERISTICS OF RELEASE|CODE TABLE|0|0|3|CODE TABLE|0|1
+023008|stateOfCurrentRelease|table|STATE OF CURRENT RELEASE|CODE TABLE|0|0|2|CODE TABLE|0|1
+023009|stateOfExpectedRelease|table|STATE OF EXPECTED RELEASE|CODE TABLE|0|0|2|CODE TABLE|0|1
+023016|possibilityOfSignificantChemicalToxicHealthEffect|table|POSSIBILITY OF SIGNIFICANT CHEMICAL TOXIC HEALTH EFFECT|CODE TABLE|0|0|2|CODE TABLE|0|1
+023017|flowDischargeOfMajorRecipient|double|FLOW DISCHARGE OF MAJOR RECIPIENT|m3/s|6|0|20|m3/s|6|7
+023018|releaseBehaviourOverTime|table|RELEASE BEHAVIOUR OVER TIME|CODE TABLE|0|0|3|CODE TABLE|0|1
+023019|actualReleaseHeight|long|ACTUAL RELEASE HEIGHT|m|0|-15000|17|m|0|6
+023021|effectiveReleaseHeight|long|EFFECTIVE RELEASE HEIGHT|m|0|-15000|17|m|0|6
+023022|distanceOfReleasePointOrSiteOfIncident|long|DISTANCE OF RELEASE POINT OR SITE OF INCIDENT|m|0|0|24|m|0|8
+023023|mainTransportSpeedInAtmosphere|double|MAIN TRANSPORT SPEED IN THE ATMOSPHERE|m/s|1|0|12|m/s|1|4
+023024|mainTransportSpeedInWater|double|MAIN TRANSPORT SPEED IN WATER|m/s|2|0|13|m/s|2|4
+023025|mainTransportSpeedInGroundWater|double|MAIN TRANSPORT SPEED IN GROUND WATER|m/s|2|0|13|m/s|2|4
+023027|mainTransportDirectionInTheAtmosphere|long|MAIN TRANSPORT DIRECTION IN THE ATMOSPHERE|deg|0|0|9|deg|0|3
+023028|mainTransportDirectionInWater|long|MAIN TRANSPORT DIRECTION IN WATER|deg|0|0|9|deg|0|3
+023029|mainTransportDirectionInGroundWater|long|MAIN TRANSPORT DIRECTION IN GROUND WATER|deg|0|0|9|deg|0|3
+023031|possibilityPlume|table|POSSIBILITY THAT PLUME WILL ENCOUNTER PRECIPITATION IN STATE IN WHICH INCIDENT OCCURRED|CODE TABLE|0|0|2|CODE TABLE|0|1
+023032|plumeWillEncounterChangeInWindDirectionAndOrOrSpeedFlag|table|PLUME WILL ENCOUNTER CHANGE IN WIND DIRECTION AND/OR SPEED FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+023040|flowDischargeRiver|double|FLOW DISCHARGE - RIVER|m3/s|1|0|22|m3/s|1|7
+023041|flowDischargeWell|double|FLOW DISCHARGE - WELL|m3/s|3|0|16|m3/s|3|5
+024001|estimateOfAmountOfRadioactivityReleasedUpToSpecifiedTime|long|ESTIMATE OF AMOUNT OF RADIOACTIVITY RELEASED UP TO SPECIFIED TIME|Bq|-11|0|28|Bq|-11|9
+024002|estimatedMaximumPotentialRelease|long|ESTIMATED MAXIMUM POTENTIAL RELEASE|Bq|-11|0|28|Bq|-11|9
+024003|compositionOfRelease|table|COMPOSITION OF RELEASE|CODE TABLE|0|0|5|CODE TABLE|0|2
+024004|elementName|string|ELEMENT NAME|CCITT IA5|0|0|16|Character|0|2
+024005|isotopeMass|long|ISOTOPE MASS|Numeric|0|0|9|Numeric|0|3
+024011|dose|double|DOSE|mSv|2|0|32|mSv|2|10
+024012|trajectoryDoseDefinedLocationAndExpectedTimeOfArrival|double|TRAJECTORY DOSE (DEFINED LOCATION AND EXPECTED TIME OF ARRIVAL)|mSv|2|0|32|mSv|2|10
+024013|gammaDoseInAirAlongMainTransportPathDefinedLocationAndTimePeriod|double|GAMMA DOSE IN AIR ALONG THE MAIN TRANSPORT PATH (DEFINED LOCATION AND TIME PERIOD)|mSv|2|0|32|mSv|2|10
+024014|gammaRadiationDoseRate|double|GAMMA RADIATION DOSE RATE|nSv/h|1|0|14|nSv/h|1|4
+024021|airConcentrationOfNamedIsotopeTypeIncludingGrossBeta|double|AIR CONCENTRATION (OF NAMED ISOTOPE TYPE INCLUDING GROSS BETA)|Bq m-3|2|0|32|Bq m-3|2|10
+024022|concentrationInPrecipitationOfNamedIsotopeType|double|CONCENTRATION IN PRECIPITATION (OF NAMED ISOTOPE TYPE)|Bq/l|2|0|32|Bq/l|2|10
+024023|pulseRateOfBetaRadiation|double|PULSE RATE OF BETA RADIATION|/s|1|0|14|/s|1|4
+024024|pulseRateOfGammaRadiation|double|PULSE RATE OF GAMMA RADIATION|/s|1|0|14|/s|1|4
+025001|rangeGateLength|long|RANGE-GATE LENGTH|m|-1|0|6|m|-1|2
+025002|numberOfGatesAveraged|long|NUMBER OF GATES AVERAGED|Numeric|0|0|4|Numeric|0|2
+025003|numberOfIntegratedPulses|long|NUMBER OF INTEGRATED PULSES|Numeric|0|0|8|Numeric|0|3
+025004|echoProcessing|table|ECHO PROCESSING|CODE TABLE|0|0|2|CODE TABLE|0|1
+025005|echoIntegration|table|ECHO INTEGRATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+025006|zToRConversion|table|Z TO R CONVERSION|CODE TABLE|0|0|3|CODE TABLE|0|1
+025007|zToRConversionFactor|long|Z TO R CONVERSION FACTOR|Numeric|0|0|12|Numeric|0|4
+025008|zToRConversionExponent|long|Z TO R CONVERSION EXPONENT|Numeric|2|0|9|Numeric|2|3
+025009|calibrationMethod|flag|CALIBRATION METHOD|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+025010|clutterTreatment|table|CLUTTER TREATMENT|CODE TABLE|0|0|4|CODE TABLE|0|2
+025011|groundOccultationCorrectionScreening|table|GROUND OCCULTATION CORRECTION (SCREENING)|CODE TABLE|0|0|2|CODE TABLE|0|1
+025012|rangeAttenuationCorrection|table|RANGE ATTENUATION CORRECTION|CODE TABLE|0|0|2|CODE TABLE|0|1
+025013|brightBandCorrection|flag|BRIGHT-BAND CORRECTION|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+025014|azimuthClutterCutOff|long|AZIMUTH CLUTTER CUT-OFF|Numeric|0|0|12|Numeric|0|4
+025015|radomeAttenuationCorrection|flag|RADOME ATTENUATION CORRECTION|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+025016|clearAirAttenuationCorrection|double|CLEAR-AIR ATTENUATION CORRECTION|dB/m|5|0|6|dB/m|5|2
+025017|precipitationAttenuationCorrection|flag|PRECIPITATION ATTENUATION CORRECTION|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+025018|aToZLawForAttenuationFactor|long|A TO Z LAW FOR ATTENUATION FACTOR|Numeric|7|0|6|Numeric|7|2
+025019|aToZLawForAttenuationExponent|long|A TO Z LAW FOR ATTENUATION EXPONENT|Numeric|2|0|7|Numeric|2|3
+025020|meanSpeedEstimation|table|MEAN SPEED ESTIMATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+025021|windComputationEnhancement|flag|WIND COMPUTATION ENHANCEMENT|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+025022|ghrsstRejectionFlag|flag|GHRSST REJECTION FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025023|ghrsstConfidenceFlag|flag|GHRSST CONFIDENCE FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025024|ghrsstDataQuality|table|GHRSST DATA QUALITY|CODE TABLE|0|0|4|CODE TABLE|0|2
+025025|batteryVoltage|double|BATTERY VOLTAGE|V|1|0|9|V|1|3
+025026|batteryVoltageLargeRange|double|BATTERY VOLTAGE (LARGE RANGE)|V|1|0|12|V|1|4
+025028|operatorOrManufacturerDefinedParameter|long|OPERATOR OR MANUFACTURER DEFINED PARAMETER|Numeric|1|-16384|15|Numeric|1|5
+025029|calibrationMethod|flag|CALIBRATION METHOD|FLAG TABLE|0|0|6|FLAG TABLE|0|2
+025030|runningMeanSeaSurfaceTemperatureUsage|table|RUNNING MEAN SEA-SURFACE TEMPERATURE USAGE|CODE TABLE|0|0|2|CODE TABLE|0|1
+025031|nwpGeneratedVerticalProfileThinningMethod|table|NWP-GENERATED VERTICAL PROFILE THINNING METHOD|CODE TABLE|0|0|3|CODE TABLE|0|1
+025032|windProfilerModeInformation|table|WIND PROFILER MODE INFORMATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+025033|windProfilerSubmodeInformation|table|WIND PROFILER SUBMODE INFORMATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+025034|windProfilerQualityControlTestResults|flag|WIND PROFILER QUALITY CONTROL TEST RESULTS|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+025035|decisionMethodForPolarity|table|DECISION METHOD FOR POLARITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+025036|atmosphericsLocationMethod|table|ATMOSPHERICS LOCATION METHOD|CODE TABLE|0|0|4|CODE TABLE|0|2
+025037|sstBias|double|SST BIAS|K|2|-127|8|K|2|3
+025038|differenceBetweenSstAndAnalysis|double|DIFFERENCE BETWEEN SST AND ANALYSIS|K|1|-127|8|K|1|3
+025040|co2WindProductDerivation|table|CO2 WIND PRODUCT DERIVATION|CODE TABLE|0|0|4|CODE TABLE|0|2
+025041|movingPlatformDirectionReportingMethod|table|MOVING PLATFORM DIRECTION REPORTING METHOD|CODE TABLE|0|0|2|CODE TABLE|0|1
+025042|movingPlatformSpeedReportingMethod|table|MOVING PLATFORM SPEED REPORTING METHOD|CODE TABLE|0|0|2|CODE TABLE|0|1
+025043|waveSamplingIntervalTime|double|WAVE SAMPLING INTERVAL (TIME)|s|4|0|15|s|4|5
+025044|waveSamplingIntervalSpace|double|WAVE SAMPLING INTERVAL (SPACE)|m|2|0|14|m|2|5
+025045|hirsChannelCombination|flag|HIRS CHANNEL COMBINATION|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+025046|msuChannelCombination|flag|MSU CHANNEL COMBINATION|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+025047|ssuChannelCombination|flag|SSU CHANNEL COMBINATION|FLAG TABLE|0|0|4|FLAG TABLE|0|2
+025048|amsuAChannelCombination|flag|AMSU-A CHANNEL COMBINATION|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+025049|amsuBChannelCombination|flag|AMSU-B CHANNEL COMBINATION|FLAG TABLE|0|0|6|FLAG TABLE|0|2
+025050|principalComponentScore|long|PRINCIPAL COMPONENT SCORE|Numeric|4|-131072|18|Numeric|4|6
+025051|avhrrChannelCombination|flag|AVHRR CHANNEL COMBINATION|FLAG TABLE|0|0|7|FLAG TABLE|0|3
+025052|log10OfPrincipalComponentsNormalizedFitToData|long|LOG10 OF PRINCIPAL COMPONENTS NORMALIZED FIT TO DATA|Numeric|4|0|15|Numeric|4|5
+025053|observationQuality|flag|OBSERVATION QUALITY|FLAG TABLE|0|0|12|FLAG TABLE|0|4
+025054|ssmisSubframeIdNumber|long|SSMIS SUBFRAME ID NUMBER|Numeric|0|0|5|Numeric|0|2
+025055|multiplexerHousekeeping|double|MULTIPLEXER HOUSEKEEPING|K|2|0|16|K|2|5
+025056|normalizedErrorEstimateInBackscatterMeasurementKp|long|NORMALIZED ERROR ESTIMATE IN BACKSCATTER MEASUREMENT (KP)|Numeric|4|0|14|Numeric|4|5
+025060|softwareIdentification|long|SOFTWARE IDENTIFICATION|Numeric|0|0|14|Numeric|0|5
+025061|softwareVersionNumber|string|SOFTWARE IDENTIFICATION AND VERSION NUMBER|CCITT IA5|0|0|96|Character|0|12
+025062|databaseIdentification|long|DATABASE IDENTIFICATION|Numeric|0|0|14|Numeric|0|5
+025063|SystemIdentifier|table|CENTRAL PROCESSOR OR SYSTEM IDENTIFIER|CODE TABLE|0|0|8|CODE TABLE|0|3
+025065|orientationCorrectionAzimuth|double|ORIENTATION CORRECTION (AZIMUTH)|deg|2|-1000|11|deg|2|4
+025066|orientationCorrectionElevation|double|ORIENTATION CORRECTION (ELEVATION)|deg|2|-1000|11|deg|2|4
+025067|radiosondeReleasePointPressureCorrection|long|RADIOSONDE RELEASE POINT PRESSURE CORRECTION|Pa|0|-8000|14|Pa|0|4
+025068|numberOfArchiveRecomputes|long|NUMBER OF ARCHIVE RECOMPUTES|Numeric|0|0|7|Numeric|0|3
+025069|flightLevelPressureCorrections|flag|FLIGHT LEVEL PRESSURE CORRECTIONS|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+025070|majorFrameCount|long|MAJOR FRAME COUNT|Numeric|0|0|4|Numeric|0|2
+025071|frameCount|long|FRAME COUNT|Numeric|0|0|5|Numeric|0|2
+025075|satelliteAntennaCorrectionsVersionNumber|long|SATELLITE ANTENNA CORRECTIONS VERSION NUMBER|Numeric|0|0|5|Numeric|0|2
+025076|log10OfTemperatureRadianceCentralWaveNumberForAtovs|double|LOG10 OF (TEMPERATURE-RADIANCE CENTRAL WAVE NUMBER) FOR ATOVS|log (m-1)|8|0|30|log (m-1)|8|10
+025077|bandwidthCorrectionCoefficient1|long|BANDWIDTH CORRECTION COEFFICIENT 1|Numeric|5|-100000|18|Numeric|5|7
+025078|bandwidthCorrectionCoefficient2|long|BANDWIDTH CORRECTION COEFFICIENT 2|Numeric|5|0|17|Numeric|5|6
+025079|albedoRadianceSolarFilteredIrradianceForAtovs|double|ALBEDO-RADIANCE SOLAR FILTERED IRRADIANCE FOR ATOVS|W m-2|4|0|24|W m-2|4|8
+025080|albedoRadianceEquivalentFilterWidthForAtovs|double|ALBEDO-RADIANCE EQUIVALENT FILTER WIDTH FOR ATOVS|m|10|0|14|m|10|5
+025081|incidenceAngle|double|INCIDENCE ANGLE|deg|3|0|17|deg|3|6
+025082|azimuthAngle|double|AZIMUTH ANGLE|deg|3|0|19|deg|3|6
+025083|faradayRotationalAngle|double|FARADAY ROTATIONAL ANGLE|deg|3|0|19|deg|3|6
+025084|geometricRotationalAngle|double|GEOMETRIC ROTATIONAL ANGLE|deg|5|0|26|deg|5|8
+025085|fractionOfClearPixelsInHirsFov|long|FRACTION OF CLEAR PIXELS IN HIRS FOV|Numeric|0|0|7|Numeric|0|3
+025086|depthCorrectionIndicator|table|DEPTH CORRECTION INDICATOR|CODE TABLE|0|0|2|CODE TABLE|0|1
+025090|orbitStateFlag|table|ORBIT STATE FLAG|CODE TABLE|0|0|4|CODE TABLE|0|2
+025091|structureConstantOfRefractionIndexCn2|double|STRUCTURE CONSTANT OF THE REFRACTION INDEX (CN2)|dB|3|-18192|13|dB|3|5
+025092|acousticPropagationVelocity|double|ACOUSTIC PROPAGATION VELOCITY|m/s|2|28000|14|m/s|2|5
+025093|rassComputationCorrection|flag|RASS COMPUTATION CORRECTION|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+025095|altimeterStateFlag|flag|ALTIMETER STATE FLAG|FLAG TABLE|0|0|2|FLAG TABLE|0|1
+025096|radiometerStateFlag|flag|RADIOMETER STATE FLAG|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+025097|threeDimensionalErrorEstimateOfNavigatorOrbit|table|THREE-DIMENSIONAL ERROR ESTIMATE OF THE NAVIGATOR ORBIT|CODE TABLE|0|0|4|CODE TABLE|0|2
+025098|altimeterDataQualityFlag|flag|ALTIMETER DATA QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025099|altimeterCorrectionQualityFlag|flag|ALTIMETER CORRECTION QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025100|xbtOrXctdFallRateEquationCoefficientA|long|XBT/XCTD FALL RATE EQUATION COEFFICIENT A|Numeric|5|0|20|Numeric|5|6
+025101|xbtOrXctdFallRateEquationCoefficientB|long|XBT/XCTD FALL RATE EQUATION COEFFICIENT B|Numeric|5|-500000|21|Numeric|5|6
+025102|numberOfMissingLinesExcludingDataGaps|long|NUMBER OF MISSING LINES EXCLUDING DATA GAPS|Numeric|0|0|8|Numeric|0|3
+025103|numberOfDirectionalBins|long|NUMBER OF DIRECTIONAL BINS|Numeric|0|0|8|Numeric|0|3
+025104|numberOfWavelengthBins|long|NUMBER OF WAVELENGTH BINS|Numeric|0|0|8|Numeric|0|3
+025105|firstDirectionalBin|double|FIRST DIRECTIONAL BIN|deg|3|0|19|deg|3|6
+025106|directionalBinStep|double|DIRECTIONAL BIN STEP|deg|3|0|19|deg|3|6
+025107|firstWavelengthBin|double|FIRST WAVELENGTH BIN|m|3|0|29|m|3|9
+025108|lastWavelengthBin|double|LAST WAVELENGTH BIN|m|3|0|29|m|3|9
+025110|imageProcessingSummary|flag|IMAGE PROCESSING SUMMARY|FLAG TABLE|0|0|10|FLAG TABLE|0|4
+025111|numberOfInputDataGaps|long|NUMBER OF INPUT DATA GAPS|Numeric|0|0|8|Numeric|0|3
+025112|bandSpecificAltimeterDataQualityFlag|flag|BAND SPECIFIC ALTIMETER DATA QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025113|bandSpecificAltimeterCorrectionQualityFlag|flag|BAND SPECIFIC ALTIMETER CORRECTION QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+025120|ra2L2ProcessingFlag|table|RA2-L2-PROCESSING FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+025121|ra2L2ProcessingQuality|long|RA2-L2-PROCESSING QUALITY|%|0|0|7|%|0|3
+025122|hardwareConfigurationForRf|table|HARDWARE CONFIGURATION FOR RF|CODE TABLE|0|0|2|CODE TABLE|0|1
+025123|hardwareConfigurationForHpa|table|HARDWARE CONFIGURATION FOR HPA|CODE TABLE|0|0|2|CODE TABLE|0|1
+025124|mwrL2ProcessingFlag|table|MWR-L2-PROCESSING FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+025125|mwrL2ProcessingQuality|long|MWR-L2-PROCESSING QUALITY|%|0|0|7|%|0|3
+025126|modelDryTroposphericCorrection|double|MODEL DRY TROPOSPHERIC CORRECTION|m|3|-32768|16|m|3|5
+025127|invertedBarometerCorrection|double|INVERTED BAROMETER CORRECTION|m|3|-32768|16|m|3|5
+025128|modelWetTroposphericCorrection|double|MODEL WET TROPOSPHERIC CORRECTION|m|3|-32768|16|m|3|5
+025129|mwrDerivedWetTroposphericCorrection|double|MWR DERIVED WET TROPOSPHERIC CORRECTION|m|3|-32768|16|m|3|5
+025130|ra2IonosphericCorrectionOnKuBand|double|RA2 IONOSPHERIC CORRECTION ON KU BAND|m|3|-32768|16|m|3|5
+025131|ionosphericCorrectionFromDorisOnKuBand|double|IONOSPHERIC CORRECTION FROM DORIS ON KU BAND|m|3|-32768|16|m|3|5
+025132|ionosphericCorrectionFromModelOnKuBand|double|IONOSPHERIC CORRECTION FROM MODEL ON KU BAND|m|3|-32768|16|m|3|5
+025133|seaStateBiasCorrectionOnKuBand|double|SEA STATE BIAS CORRECTION ON KU BAND|m|3|-32768|16|m|3|5
+025134|ra2IonosphericCorrectionOnSBand|double|RA2 IONOSPHERIC CORRECTION ON S BAND|m|3|-32768|16|m|3|5
+025135|ionosphericCorrectionFromDorisOnSBand|double|IONOSPHERIC CORRECTION FROM DORIS ON S BAND|m|3|-32768|16|m|3|5
+025136|ionosphericCorrectionFromModelOnSBand|double|IONOSPHERIC CORRECTION FROM MODEL ON S BAND|m|3|-32768|16|m|3|5
+025137|seaStateBiasCorrectionOnSBand|double|SEA STATE BIAS CORRECTION ON S BAND|m|3|-32768|16|m|3|5
+025138|averageSignalToNoiseRatio|long|AVERAGE SIGNAL-TO-NOISE RATIO|Numeric|0|-2048|12|Numeric|0|4
+025139|processingLevel|long|PROCESSING LEVEL|Numeric|0|0|5|Numeric|0|4
+025140|startChannel|long|START CHANNEL|Numeric|0|0|14|Numeric|0|5
+025141|endChannel|long|END CHANNEL|Numeric|0|0|14|Numeric|0|5
+025142|channelScaleFactor|long|CHANNEL SCALE FACTOR|Numeric|0|0|6|Numeric|0|2
+025143|linearCoefficient|long|LINEAR COEFFICIENT|Numeric|6|-5000000|24|Numeric|6|8
+025144|numberOfVisualChannelsUsedInProcessing|long|NUMBER OF VISUAL CHANNELS USED IN PROCESSING|Numeric|0|0|6|Numeric|0|2
+025145|numberOfInfraredChannelsUsedInProcessing|long|NUMBER OF INFRARED CHANNELS USED IN PROCESSING|Numeric|0|0|6|Numeric|0|2
+025148|coefficientOfVariation|long|COEFFICIENT OF VARIATION|Numeric|2|-10000|15|Numeric|2|5
+025149|optimalEstimationCost|long|OPTIMAL ESTIMATION COST|Numeric|0|0|8|Numeric|0|3
+025150|methodOfTropicalCycloneIntensityAnalysisUsingSatelliteData|table|METHOD OF TROPICAL CYCLONE INTENSITY ANALYSIS USING SATELLITE DATA|CODE TABLE|0|0|4|CODE TABLE|0|2
+025160|kuBandNetInstrumentalCorrection|double|KU BAND NET INSTRUMENTAL CORRECTION|m|4|-120000|18|m|4|6
+025161|cBandNetInstrumentalCorrection|double|C BAND NET INSTRUMENTAL CORRECTION|m|4|-120000|18|m|4|6
+025162|seaStateBiasCorrectionOnCBand|double|SEA STATE BIAS CORRECTION ON C BAND|m|4|-6000|13|m|4|4
+025163|altimeterIonosphericCorrectionOnKuBand|double|ALTIMETER IONOSPHERIC CORRECTION ON KU BAND|m|3|-32768|16|m|3|5
+025164|radiometerWetTroposphericCorrection|double|RADIOMETER WET TROPOSPHERIC CORRECTION|m|4|-5000|13|m|4|4
+025165|ionosphericCorrectionFromModelOnSpecificBand|double|IONOSPHERIC CORRECTION FROM MODEL ON SPECIFIC BAND|m|4|-32768|16|m|4|5
+025166|seaStateBiasCorrectionOnSpecificBand|double|SEA STATE BIAS CORRECTION ON SPECIFIC BAND|m|4|-32768|16|m|4|5
+025167|specificBandNetInstrumentalCorrection|double|SPECIFIC BAND NET INSTRUMENTAL CORRECTION|m|4|-120000|18|m|4|6
+025170|samplingIntervalTime|long|SAMPLING INTERVAL (TIME)|s|0|0|10|s|0|4
+025171|sampleAveragingPeriod|long|SAMPLE AVERAGING PERIOD|s|0|0|10|s|0|4
+025172|numberOfSamples|long|NUMBER OF SAMPLES|Numeric|0|0|10|Numeric|0|4
+025174|smosInformationFlag|flag|SMOS INFORMATION FLAG|FLAG TABLE|0|0|14|FLAG TABLE|0|5
+025175|modifiedResidual|long|MODIFIED RESIDUAL|Numeric|2|0|13|Numeric|2|4
+025180|lrmPercent|double|LRM PER CENT|%|2|0|16|%|2|5
+025181|l2ProcessingFlag|table|L2 PROCESSING FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+025182|l1ProcessingFlag|table|L1 PROCESSING FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+025183|l1ProcessingQuality|double|L1 PROCESSING QUALITY|%|2|0|14|%|2|5
+025184|l2ProductStatus|table|L2 PRODUCT STATUS|CODE TABLE|0|0|2|CODE TABLE|0|1
+025185|encryptionMethod|table|ENCRYPTION METHOD|CODE TABLE|0|0|8|CODE TABLE|0|3
+025186|encryptionKeyVersion|string|ENCRYPTION KEY VERSION|CCITT IA5|0|0|96|Character|0|12
+025187|confidenceFlag|table|CONFIDENCE FLAG|CODE TABLE|0|0|4|CODE TABLE|0|2
+025188|methodForReducingPressureToSeaLevel|table|METHOD FOR REDUCING PRESSURE TO SEA LEVEL|CODE TABLE|0|0|5|CODE TABLE|0|2
+025189|rangeCutOffWavelength|long|RANGE CUT-OFF WAVELENGTH|m|0|1|9|m|0|3
+025190|altimeterEchoProcessingMode|table|ALTIMETER ECHO PROCESSING MODE|CODE TABLE|0|0|8|CODE TABLE|0|3
+025191|altimeterTrackingMode|table|ALTIMETER TRACKING MODE|CODE TABLE|0|0|8|CODE TABLE|0|3
+026001|principalTimeOfDailyReadingInUtcOfMaximumTemperature|double|PRINCIPAL TIME OF DAILY READING IN UTC OF MAXIMUM TEMPERATURE|h|1|0|12|h|1|3
+026002|principalTimeOfDailyReadingInUtcOfMinimumTemperature|double|PRINCIPAL TIME OF DAILY READING IN UTC OF MINIMUM TEMPERATURE|h|1|0|12|h|1|3
+026003|timeDifference|long|TIME DIFFERENCE|min|0|-1440|12|min|0|4
+026010|hoursIncluded|flag|HOURS INCLUDED|FLAG TABLE|0|0|26|FLAG TABLE|0|9
+026020|durationOfPrecipitation|long|DURATION OF PRECIPITATION|min|0|0|11|min|0|4
+026021|nonCoordinateYear|long|YEAR|a|0|0|12|a|0|4
+026022|nonCoordinateMonth|long|MONTH|mon|0|0|4|mon|0|2
+026023|nonCoordinateDay|long|DAY|d|0|0|6|d|0|2
+026030|measurementIntegrationTime|double|MEASUREMENT INTEGRATION TIME|s|2|0|8|s|2|3
+027001|nonCoordinateLatitude|double|LATITUDE (HIGH ACCURACY)|deg|5|-9000000|25|deg|5|7
+027002|nonCoordinateLatitude|double|LATITUDE (COARSE ACCURACY)|deg|2|-9000|15|deg|2|4
+027003|alternateLatitude|double|ALTERNATE LATITUDE (COARSE ACCURACY)|deg|2|-9000|15|deg|2|4
+027004|alternateLatitude|double|ALTERNATE LATITUDE (HIGH ACCURACY)|deg|5|-9000000|25|deg|5|7
+027010|footprintAxis1|long|FOOTPRINT AXIS 1|m|-1|0|14|m|-1|5
+027020|satelliteLocationCounter|long|SATELLITE LOCATION COUNTER|Numeric|0|0|16|Numeric|0|5
+027021|satelliteSublocationDimension|long|SATELLITE SUBLOCATION DIMENSION|Numeric|0|0|16|Numeric|0|5
+027031|DistanceFromEarthCentreInDirectionOf0DegreesLongitude|double|IN DIRECTION OF 0 DEGREES LONGITUDE, DISTANCE FROM THE EARTH'S CENTRE|m|2|-1073741824|31|m|2|10
+027079|horizontalWidthOfSampledVolume|long|HORIZONTAL WIDTH OF SAMPLED VOLUME|m|0|0|18|m|0|6
+027080|viewingAzimuthAngle|double|VIEWING AZIMUTH ANGLE|deg|2|0|16|deg|0|5
+028001|nonCoordinateLongitude|double|LONGITUDE (HIGH ACCURACY)|deg|5|-18000000|26|deg|5|8
+028002|nonCoordinateLongitude|double|LONGITUDE (COARSE ACCURACY)|deg|2|-18000|16|deg|2|5
+028003|alternateLongitude|double|ALTERNATE LONGITUDE (COARSE ACCURACY)|deg|2|-18000|16|deg|2|5
+028004|alternateLongitude|double|ALTERNATE LONGITUDE (HIGH ACCURACY)|deg|5|-18000000|26|deg|5|8
+028010|footprintAxis2|long|FOOTPRINT AXIS 2|m|-1|0|14|m|-1|5
+028031|DistanceFromEarthCentreInDirection90DegreesEast|double|IN DIRECTION 90 DEGREES EAST, DISTANCE FROM THE EARTH'S CENTRE|m|2|-1073741824|31|m|2|10
+029001|projectionType|table|PROJECTION TYPE|CODE TABLE|0|0|3|CODE TABLE|0|1
+029002|coordinateGridType|table|COORDINATE GRID TYPE|CODE TABLE|0|0|3|CODE TABLE|0|1
+029014|optionalListOfParametersForAnExternalMapProjectionLibrary|string|OPTIONAL LIST OF PARAMETERS FOR AN EXTERNAL MAP PROJECTION LIBRARY|CCITT IA5|0|0|504|Character|0|63
+030001|pixelValue4Bits|long|PIXEL VALUE (4 BITS)|Numeric|0|0|4|Numeric|0|2
+030002|pixelValue8Bits|long|PIXEL VALUE (8 BITS)|Numeric|0|0|8|Numeric|0|3
+030004|pixelValue16Bits|long|PIXEL VALUE (16 BITS)|Numeric|0|0|16|Numeric|0|5
+030010|numberOfGridPoints|long|NUMBER OF GRID POINTS|Numeric|0|0|13|Numeric|0|4
+030021|numberOfPixelsPerRow|long|NUMBER OF PIXELS PER ROW|Numeric|0|0|12|Numeric|0|4
+030022|numberOfPixelsPerColumn|long|NUMBER OF PIXELS PER COLUMN|Numeric|0|0|12|Numeric|0|4
+030031|pictureType|table|PICTURE TYPE|CODE TABLE|0|0|4|CODE TABLE|0|2
+030032|combinationWithOtherData|flag|COMBINATION WITH OTHER DATA|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+030033|numberOfBinsAlongRadial|long|NUMBER OF BINS ALONG THE RADIAL|Numeric|0|0|12|Numeric|0|4
+030034|numberOfAzimuths|long|NUMBER OF AZIMUTHS|Numeric|0|0|12|Numeric|0|4
+031000|shortDelayedDescriptorReplicationFactor|long|SHORT DELAYED DESCRIPTOR REPLICATION FACTOR|Numeric|0|0|1|NA|0|0
+031001|delayedDescriptorReplicationFactor|long|DELAYED DESCRIPTOR REPLICATION FACTOR|Numeric|0|0|8|NA|0|0
+031002|extendedDelayedDescriptorReplicationFactor|long|EXTENDED DELAYED DESCRIPTOR REPLICATION FACTOR|Numeric|0|0|16|NA|0|0
+031011|delayedDescriptorAndDataRepetitionFactor|long|DELAYED DESCRIPTOR AND DATA REPETITION FACTOR|Numeric|0|0|8|NA|0|0
+031012|extendedDelayedDescriptorAndDataRepetitionFactor|long|EXTENDED DELAYED DESCRIPTOR AND DATA REPETITION FACTOR|Numeric|0|0|16|NA|0|0
+031021|associatedFieldSignificance|table|ASSOCIATED FIELD SIGNIFICANCE|CODE TABLE|0|0|6|NA|0|0
+031031|dataPresentIndicator|flag|DATA PRESENT INDICATOR|FLAG TABLE|0|0|1|NA|0|0
+033002|qualityInformation|table|QUALITY INFORMATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+033003|qualityInformation|table|QUALITY INFORMATION|CODE TABLE|0|0|3|CODE TABLE|0|1
+033005|qualityInformationAwsData|flag|QUALITY INFORMATION (AWS DATA)|FLAG TABLE|0|0|30|FLAG TABLE|0|10
+033006|internalMeasurementStatusInformationAws|table|INTERNAL MEASUREMENT STATUS INFORMATION (AWS)|CODE TABLE|0|0|3|CODE TABLE|0|1
+033007|percentConfidence|long|PER CENT CONFIDENCE|%|0|0|7|%|0|3
+033015|dataQualityCheckIndicator|table|DATA QUALITY-CHECK INDICATOR|CODE TABLE|0|0|6|CODE TABLE|0|2
+033020|qualityControlIndicationOfFollowingValue|table|QUALITY CONTROL INDICATION OF FOLLOWING VALUE|CODE TABLE|0|0|3|CODE TABLE|0|1
+033021|qualityOfFollowingValue|table|QUALITY OF FOLLOWING VALUE|CODE TABLE|0|0|2|CODE TABLE|0|1
+033022|qualityOfBuoySatelliteTransmission|table|QUALITY OF BUOY SATELLITE TRANSMISSION|CODE TABLE|0|0|2|CODE TABLE|0|1
+033023|qualityOfBuoyLocation|table|QUALITY OF BUOY LOCATION|CODE TABLE|0|0|2|CODE TABLE|0|1
+033024|stationElevationQualityMarkForMobileStations|table|STATION ELEVATION QUALITY MARK (FOR MOBILE STATIONS)|CODE TABLE|0|0|4|CODE TABLE|0|2
+033025|acarsInterpolatedValuesIndicator|table|ACARS INTERPOLATED VALUES INDICATOR|CODE TABLE|0|0|3|CODE TABLE|0|1
+033026|moistureQuality|table|MOISTURE QUALITY|CODE TABLE|0|0|6|CODE TABLE|0|2
+033027|locationQualityClassRangeOfRadiusOf66Confidence|table|LOCATION QUALITY CLASS (RANGE OF RADIUS OF 66 % CONFIDENCE)|CODE TABLE|0|0|3|CODE TABLE|0|1
+033028|snapshotOverallQuality|table|SNAPSHOT OVERALL QUALITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+033030|scanLineStatusFlagsForAtovs|flag|SCAN LINE STATUS FLAGS FOR ATOVS|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033031|scanLineQualityFlagsForAtovs|flag|SCAN LINE QUALITY FLAGS FOR ATOVS|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033032|channelQualityFlagsForAtovs|flag|CHANNEL QUALITY FLAGS FOR ATOVS|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033033|fieldOfViewQualityFlagsForAtovs|flag|FIELD OF VIEW QUALITY FLAGS FOR ATOVS|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033035|qualityControl|table|MANUAL/AUTOMATIC QUALITY CONTROL|CODE TABLE|0|0|4|CODE TABLE|0|2
+033036|nominalConfidenceThreshold|long|NOMINAL CONFIDENCE THRESHOLD|%|0|0|7|%|0|3
+033037|windCorrelationError|flag|WIND CORRELATION ERROR|FLAG TABLE|0|0|20|FLAG TABLE|0|7
+033038|qualityFlagsForGroundBasedGnssData|flag|QUALITY FLAGS FOR GROUND-BASED GNSS DATA|FLAG TABLE|0|0|10|FLAG TABLE|0|4
+033039|radioOccultationDataQualityFlags|flag|QUALITY FLAGS FOR RADIO OCCULTATION DATA|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033040|confidenceInterval|long|CONFIDENCE INTERVAL|%|0|0|7|%|0|3
+033041|attributeOfFollowingValue|table|ATTRIBUTE OF FOLLOWING VALUE|CODE TABLE|0|0|2|CODE TABLE|0|1
+033042|typeOfLimitRepresentedByFollowingValue|table|TYPE OF LIMIT REPRESENTED BY FOLLOWING VALUE|CODE TABLE|0|0|3|CODE TABLE|0|1
+033043|astConfidence|flag|AST CONFIDENCE|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+033044|asarQualityInformation|flag|ASAR QUALITY INFORMATION|FLAG TABLE|0|0|15|FLAG TABLE|0|5
+033045|probabilityOfFollowingEvent|long|PROBABILITY OF FOLLOWING EVENT|%|0|0|7|%|0|3
+033046|conditionalProbability|long|CONDITIONAL PROBABILITY OF FOLLOWING EVENT WITH RESPECT TO SPECIFIED CONDITIONING EVENT|%|0|0|7|%|0|3
+033047|measurementConfidenceData|flag|MEASUREMENT CONFIDENCE DATA|FLAG TABLE|0|0|31|FLAG TABLE|0|11
+033048|confidenceMeasureOfSarInversion|table|CONFIDENCE MEASURE OF SAR INVERSION|CODE TABLE|0|0|2|CODE TABLE|0|1
+033049|confidenceMeasureOfWindRetrieval|table|CONFIDENCE MEASURE OF WIND RETRIEVAL|CODE TABLE|0|0|2|CODE TABLE|0|1
+033050|globalGtsppQualityFlag|table|GLOBAL GTSPP QUALITY FLAG|CODE TABLE|0|0|4|CODE TABLE|0|2
+033052|sBandOceanRetrackingQuality|flag|S BAND OCEAN RETRACKING QUALITY|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+033053|kuBandOceanRetrackingQuality|flag|KU BAND OCEAN RETRACKING QUALITY|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+033054|overallQualityOfRetrievedAtmosphericProfile|table|OVERALL QUALITY OF RETRIEVED ATMOSPHERIC PROFILE|CODE TABLE|0|0|3|CODE TABLE|0|1
+033055|windVectorQualityFlag|flag|WIND VECTOR QUALITY FLAG|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033056|sigma0QualityFlag|flag|SIGMA-0 QUALITY FLAG|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033060|gqisFlagQual|table|GQISFLAGQUAL - INDIVIDUAL IASI-SYSTEM QUALITY FLAG|CODE TABLE|0|0|2|CODE TABLE|0|1
+033061|gqisQualIndex|long|GQISQUALINDEX - INDICATOR FOR INSTRUMENT NOISE PERFORMANCE (CONTRIBUTIONS FROM SPECTRAL AND RADIOMETRIC CALIBRATION)|%|0|0|7|%|0|3
+033062|gqisQualIndexLoc|long|GQISQUALINDEXLOC - INDICATOR FOR GEOMETRIC QUALITY INDEX|%|0|0|7|%|0|3
+033063|gqisQualIndexRad|long|GQISQUALINDEXRAD - INDICATOR FOR INSTRUMENT NOISE PERFORMANCE (CONTRIBUTIONS FROM RADIOMETRIC CALIBRATION)|%|0|0|7|%|0|3
+033064|gqisQualIndexSpect|long|GQISQUALINDEXSPECT - INDICATOR FOR INSTRUMENT NOISE PERFORMANCE (CONTRIBUTIONS FROM SPECTRAL CALIBRATION)|%|0|0|7|%|0|3
+033065|gqisSysTecQual|long|GQISSYSTECSONDQUAL - OUTPUT OF SYSTEM TEC (TECHNICAL EXPERTISE CENTRE) QUALITY FUNCTION|Numeric|0|0|24|Numeric|0|8
+033066|amvQualityFlag|flag|AMV QUALITY FLAG|FLAG TABLE|0|0|24|FLAG TABLE|0|8
+033070|totalOzoneQuality|table|TOTAL OZONE QUALITY|CODE TABLE|0|0|4|CODE TABLE|0|2
+033071|profileOzoneQuality|table|PROFILE OZONE QUALITY|CODE TABLE|0|0|4|CODE TABLE|0|2
+033072|ozoneError|table|OZONE ERROR|CODE TABLE|0|0|5|CODE TABLE|0|2
+033075|scanLevelDataValidityQualityFlags|flag|SCAN-LEVEL QUALITY FLAGS|FLAG TABLE|0|0|13|FLAG TABLE|0|5
+033076|calibrationQualityFlags|flag|CALIBRATION QUALITY FLAGS|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+033077|fieldOfViewQualityFlags|flag|FIELD-OF-VIEW QUALITY FLAGS|FLAG TABLE|0|0|19|FLAG TABLE|0|7
+033078|geolocationQuality|table|GEOLOCATION QUALITY|CODE TABLE|0|0|4|CODE TABLE|0|2
+033079|granuleLevelQualityFlags|flag|GRANULE LEVEL QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033080|scanLevelQualityFlags|flag|SCAN LEVEL QUALITY FLAGS|FLAG TABLE|0|0|20|FLAG TABLE|0|7
+033081|channelDataQualityFlags|flag|CHANNEL DATA QUALITY FLAGS|FLAG TABLE|0|0|12|FLAG TABLE|0|4
+033082|geolocationQualityFlags|flag|GEOLOCATION QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033083|radianceDataQualityFlags|flag|RADIANCE DATA QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033084|pixelLevelQualityFlags|flag|PIXEL LEVEL QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033085|aerosolOpticalThicknessQualityFlags|flag|AEROSOL OPTICAL THICKNESS QUALITY FLAGS|FLAG TABLE|0|0|18|FLAG TABLE|0|6
+033086|qualityOfPixelLevelRetrieval|table|QUALITY OF PIXEL LEVEL RETRIEVAL|CODE TABLE|0|0|3|CODE TABLE|0|1
+033087|extentOfSatelliteWithinSouthAtlanticAnomalyBasedOnClimatologicalData|table|EXTENT OF SATELLITE WITHIN SOUTH ATLANTIC ANOMALY (BASED ON CLIMATOLOGICAL DATA)|CODE TABLE|0|0|4|CODE TABLE|0|1
+033088|ozoneTotalColumnQualityFlag|flag|OZONE TOTAL COLUMN QUALITY FLAG|FLAG TABLE|0|0|18|FLAG TABLE|0|6
+033089|noiseEquivalentDeltaTemperatureNedtQualityIndicatorsForWarmTargetCalibration|double|NOISE EQUIVALENT DELTA TEMPERATURE (NEDT) QUALITY INDICATORS FOR WARM TARGET CALIBRATION|K|2|0|12|K|2|4
+033090|nedtQualityIndicatorsForColdTargetCalibration|double|NEDT QUALITY INDICATORS FOR COLD TARGET CALIBRATION|K|2|0|12|K|2|4
+033091|nedtQualityIndicatorsForOverallCalibration|double|NEDT QUALITY INDICATORS FOR OVERALL CALIBRATION|K|2|0|12|K|2|4
+033092|bandSpecificOceanQualityFlag|flag|BAND SPECIFIC OCEAN QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+033093|extendedQualityFlagsForGroundBasedGnssData|flag|EXTENDED QUALITY FLAGS FOR GROUND-BASED GNSS DATA|FLAG TABLE|0|0|31|FLAG TABLE|0|31
+033094|calibrationQualityControlFlags|flag|CALIBRATION QUALITY CONTROL FLAGS|FLAG TABLE|0|0|24|FLAG TABLE|0|24
+033095|mwiTemperaturesFlag|flag|MWI TEMPERATURES FLAG|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+033096|mwiCalibrationFlag|flag|MWI CALIBRATION FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033097|mwiScanQualityFlag|flag|MWI SCAN QUALITY FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033098|mwiDataQualityFlag|flag|MWI DATA QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+033099|mwiNavigationStatusFlag|flag|MWI NAVIGATION STATUS FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033100|iciTemperaturesFlag|flag|ICI TEMPERATURES FLAG|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+033101|iciCalibrationFlag|flag|ICI CALIBRATION FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033102|iciScanQualityFlag|flag|ICI SCAN QUALITY FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033103|iciDataQualityFlag|flag|ICI DATA QUALITY FLAG|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+033104|iciNavigationStatusFlag|flag|ICI NAVIGATION STATUS FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033105|iciProcessingFlags|flag|ICI PROCESSING FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033106|mwiProcessingFlags|flag|MWI PROCESSING FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033107|mwsScanLineProcessingFlags|flag|MWS SCAN LINE PROCESSING FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033108|mwsNavigationStatusFlags|flag|MWS NAVIGATION STATUS FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033109|mwsOverallQualityFlags|flag|MWS OVERALL QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033110|mwsChannelProcessingFlags|flag|MWS CHANNEL PROCESSING FLAGS|FLAG TABLE|0|0|9|FLAG TABLE|0|3
+033111|scaQualityFlags|flag|SCA QUALITY FLAGS|FLAG TABLE|0|0|32|FLAG TABLE|0|11
+033112|faradayRotationAngleOneWay|double|FARADAY ROTATION ANGLE (ONE WAY)|deg|2|-18000|16|deg|2|6
+033113|iasiNgGeneralQualityFlags|flag|IASI-NG GENERAL QUALITY FLAGS|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+033114|outOfBoundsCheck|flag|OUT OF BOUNDS CHECK|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+033115|aerosolOpticalDepthQualityInformation|table|AEROSOL OPTICAL DEPTH QUALITY INFORMATION|CODE TABLE|0|0|5|CODE TABLE|0|2
+033116|firstGuessInBoundsCheck|flag|FIRST GUESS IN BOUNDS CHECK|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+033117|inBoundsCheck|flag|IN BOUNDS CHECK|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+033118|relativeErrorPercentage|double|RELATIVE ERROR PERCENTAGE|%|2|-10000|15|%|2|5
+033119|forecastErrorPercentage|long|FORECAST ERROR PERCENTAGE|%|0|-100|8|%|0|3
+035000|fmAndRegionalCodeNumber|table|FM AND REGIONAL CODE NUMBER|CODE TABLE|0|0|10|CODE TABLE|0|3
+035001|timeFrameForMonitoring|table|TIME FRAME FOR MONITORING|CODE TABLE|0|0|3|CODE TABLE|0|1
+035011|numberOfReportsActuallyReceived|long|NUMBER OF REPORTS ACTUALLY RECEIVED|Numeric|0|0|14|Numeric|0|4
+035021|bulletinBeingMonitoredTtaaii|string|BULLETIN BEING MONITORED (TTAAII)|CCITT IA5|0|0|48|Character|0|6
+035022|bulletinBeingMonitoredYygggg|string|BULLETIN BEING MONITORED (YYGGGG)|CCITT IA5|0|0|48|Character|0|6
+035023|bulletinBeingMonitoredCccc|string|BULLETIN BEING MONITORED (CCCC)|CCITT IA5|0|0|32|Character|0|4
+035024|bulletinBeingMonitoredBbb|string|BULLETIN BEING MONITORED (BBB)|CCITT IA5|0|0|24|Character|0|3
+035030|discrepanciesInAvailabilityOfExpectedData|table|DISCREPANCIES IN THE AVAILABILITY OF EXPECTED DATA|CODE TABLE|0|0|4|CODE TABLE|0|1
+035031|qualifierOnMonitoringResults|table|QUALIFIER ON MONITORING RESULTS|CODE TABLE|0|0|7|CODE TABLE|0|2
+035032|causeOfMissingData|table|CAUSE OF MISSING DATA|CODE TABLE|0|0|4|CODE TABLE|0|1
+035033|observationAndCollectionDeficiencies|table|OBSERVATION AND COLLECTION DEFICIENCIES|CODE TABLE|0|0|7|CODE TABLE|0|2
+035034|statisticalTrendsForAvailabilityOfDataDuringSurveyPeriods|table|STATISTICAL TRENDS FOR AVAILABILITY OF DATA (DURING THE SURVEY PERIOD(S))|CODE TABLE|0|0|3|CODE TABLE|0|1
+035035|reasonForTermination|table|REASON FOR TERMINATION|CODE TABLE|0|0|5|CODE TABLE|0|2
+040001|surfaceSoilMoisture|double|SURFACE SOIL MOISTURE (MS)|%|1|0|10|%|1|4
+040002|estimatedErrorInSurfaceSoilMoisture|double|ESTIMATED ERROR IN SURFACE SOIL MOISTURE|%|1|0|10|%|1|4
+040003|meanSurfaceSoilMoisture|long|MEAN SURFACE SOIL MOISTURE|Numeric|3|0|10|Numeric|3|4
+040004|rainFallDetection|long|RAIN FALL DETECTION|Numeric|3|0|10|Numeric|3|4
+040005|soilMoistureCorrectionFlag|flag|SOIL MOISTURE CORRECTION FLAG|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+040006|soilMoistureProcessingFlag|flag|SOIL MOISTURE PROCESSING FLAG|FLAG TABLE|0|0|16|FLAG TABLE|0|6
+040007|soilMoistureQuality|double|SOIL MOISTURE QUALITY|%|1|0|10|%|1|4
+040008|frozenLandSurfaceFraction|double|FROZEN LAND SURFACE FRACTION|%|1|0|10|%|1|4
+040009|inundationAndWetlandFraction|double|INUNDATION AND WETLAND FRACTION|%|1|0|10|%|1|4
+040010|topographicComplexity|double|TOPOGRAPHIC COMPLEXITY|%|1|0|10|%|1|4
+040011|interpolationFlag|flag|INTERPOLATION FLAG|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+040012|radiometerDataQualityFlag|flag|RADIOMETER DATA QUALITY FLAG|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+040013|radiometerBrightnessTemperatureInterpretationFlag|table|RADIOMETER BRIGHTNESS TEMPERATURE INTERPRETATION FLAG|CODE TABLE|0|0|3|CODE TABLE|0|1
+040014|highFrequencyFluctuationsOfSeaSurfaceTopographyCorrection|double|HIGH-FREQUENCY FLUCTUATIONS OF THE SEA-SURFACE TOPOGRAPHY CORRECTION|m|4|-3000|13|m|4|4
+040015|normalizedDifferentialVegetationIndex|long|NORMALIZED DIFFERENTIAL VEGETATION INDEX (NDVI)|Numeric|2|-100|8|Numeric|2|3
+040016|residualRmsInBand|long|RESIDUAL RMS IN BAND|Numeric|3|0|14|Numeric|3|5
+040017|nonNormalizedPrincipalComponentScore|long|NON-NORMALIZED PRINCIPAL COMPONENT SCORE|Numeric|0|-1073741824|31|Numeric|0|10
+040018|averageOfImagerMeasurements|double|GIACAVGIMAGIIS - AVERAGE OF IMAGER MEASUREMENTS|W m-2 sr-1 m|6|0|24|W m-2 sr-1 m|6|8
+040019|giacvarimagiisVarianceOfImagerMeasurements|double|GIACVARIMAGIIS - VARIANCE OF IMAGER MEASUREMENTS|W m-2 sr-1 m|6|0|24|W m-2 sr-1 m|6|8
+040020|gqisFlagQualDetailed|flag|GQISFLAGQUALDETAILED - QUALITY FLAG FOR THE SYSTEM|FLAG TABLE|0|0|17|FLAG TABLE|0|6
+040021|fractionOfWeightedAvhrrPixelInIasiFovCoveredWithSnowOrIce|long|FRACTION OF WEIGHTED AVHRR PIXEL IN IASI FOV COVERED WITH SNOW/ICE|%|0|0|7|%|0|3
+040022|numberOfMissingBadOrFailedAvhrrPixels|long|NUMBER OF MISSING, BAD OR FAILED AVHRR PIXELS|Numeric|0|0|7|Numeric|0|3
+040023|auxiliaryAltimeterStateFlags|flag|AUXILIARY ALTIMETER STATE FLAGS|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+040024|meteorologicalMapAvailability|table|METEOROLOGICAL MAP AVAILABILITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+040025|interpolationFlagForMeanDiurnalTide|table|INTERPOLATION FLAG FOR MEAN DIURNAL TIDE|CODE TABLE|0|0|2|CODE TABLE|0|1
+040026|scoreQuantizationFactor|long|SCORE QUANTIZATION FACTOR|Numeric|2|0|16|Numeric|2|5
+040027|sunGlintAngle|double|SUN GLINT ANGLE|deg|2|-18000|16|deg|2|5
+040028|gmiQualityFlag|table|GMI QUALITY FLAG|CODE TABLE|0|0|4|CODE TABLE|0|2
+040029|horizontalObservationIntegrationLength|long|HORIZONTAL OBSERVATION INTEGRATION LENGTH|m|0|0|26|m|0|8
+040030|horizontalLineOfSightWind|double|HORIZONTAL LINE OF SIGHT WIND|m/s|2|-32767|16|m/s|2|5
+040031|errorEstimateOfHorizontalLineOfSightWind|double|ERROR ESTIMATE OF HORIZONTAL LINE OF SIGHT WIND|m/s|2|0|15|m/s|2|5
+040032|derivativeWindToPressure|double|DERIVATIVE WIND TO PRESSURE|m s-1 Pa-1|3|-100000|18|m s-1 Pa-1|3|6
+040033|derivativeWindToTemperature|double|DERIVATIVE WIND TO TEMPERATURE|m s-1 K-1|3|-100000|18|m s-1 K-1|3|6
+040034|derivativeWindToBackscatterRatio|double|DERIVATIVE WIND TO BACKSCATTER RATIO|m/s|3|-200000|19|m/s|3|6
+040035|satelliteRange|long|SATELLITE RANGE|m|0|380000|18|m|0|6
+040036|lidarL2bClassificationType|table|LIDAR L2B CLASSIFICATION TYPE|CODE TABLE|0|0|4|CODE TABLE|0|2
+040037|backscatterRatio|long|BACKSCATTER RATIO|Numeric|3|500|20|Numeric|3|7
+040038|cloudParticleSize|double|CLOUD PARTICLE SIZE|m|7|0|28|m|7|6
+040039|singleLookComplexImageIntensity|long|SINGLE LOOK COMPLEX IMAGE INTENSITY|Numeric|0|-25|5|Numeric|0|3
+040040|singleLookComplexImageSkewness|long|SINGLE LOOK COMPLEX IMAGE SKEWNESS|Numeric|2|1|13|Numeric|0|4
+040041|singleLookComplexImageKurtosis|long|SINGLE LOOK COMPLEX IMAGE KURTOSIS|Numeric|2|1|13|Numeric|0|4
+040042|singleLookComplexImageVariance|long|SINGLE LOOK COMPLEX IMAGE VARIANCE|Numeric|2|1|13|Numeric|0|4
+040043|satelliteManoeuvreIndicator|table|SATELLITE MANOEUVRE INDICATOR|CODE TABLE|0|0|3|CODE TABLE|0|1
+040044|dustIndex|long|DUST INDEX|Numeric|1|0|8|Numeric|1|3
+040045|cloudFormationAndHeightAssignment|flag|CLOUD FORMATION AND HEIGHT ASSIGNMENT|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+040046|cloudinessSummary|table|CLOUDINESS SUMMARY|CODE TABLE|0|0|3|CODE TABLE|0|1
+040047|validationFlagForIasiOrIasiNgLevel1Product|table|VALIDATION FLAG FOR IASI OR IASI-NG LEVEL 1 PRODUCT|CODE TABLE|0|0|3|CODE TABLE|0|1
+040048|validationFlagOfAmsuALevel1DataFlow|table|VALIDATION FLAG OF AMSU-A LEVEL 1 DATA FLOW|CODE TABLE|0|0|3|CODE TABLE|0|1
+040049|cloudTestsExecutedAndResults|flag|CLOUD TESTS EXECUTED AND RESULTS|FLAG TABLE|0|0|16|FLAG TABLE|0|5
+040050|retrievalInitialisation|flag|RETRIEVAL INITIALISATION|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+040051|convergenceOfTheIterativeRetrieval|table|CONVERGENCE OF THE ITERATIVE RETRIEVAL|CODE TABLE|0|0|3|CODE TABLE|0|1
+040052|indicationOfSuperAdiabaticAndSuperSaturationInFinalRetrieval|flag|INDICATION OF SUPER-ADIABATIC AND SUPER-SATURATION IN FINAL RETRIEVAL|FLAG TABLE|0|0|8|FLAG TABLE|0|3
+040053|numberOfIterationsUsedForRetrieval|long|NUMBER OF ITERATIONS USED FOR RETRIEVAL|Numeric|0|0|8|Numeric|0|3
+040054|potentialProcessingAndInputsErrors|flag|POTENTIAL PROCESSING AND INPUTS ERRORS|FLAG TABLE|0|0|13|FLAG TABLE|0|4
+040055|diagnosticsOnTheRetrieval|flag|DIAGNOSTICS ON THE RETRIEVAL|FLAG TABLE|0|0|21|FLAG TABLE|0|7
+040056|generalRetrievalQuality|table|GENERAL RETRIEVAL QUALITY|CODE TABLE|0|0|3|CODE TABLE|0|1
+040057|iasiLevel2RetrievalFlags|flag|IASI LEVEL 2 RETRIEVAL FLAGS|FLAG TABLE|0|0|31|FLAG TABLE|0|10
+040058|numberOfVectorsDescribingTheCharacterizationMatrices|long|NUMBER OF VECTORS DESCRIBING THE CHARACTERIZATION MATRICES|Numeric|0|0|8|Numeric|0|3
+040059|numberOfLayersActuallyRetrieved|long|NUMBER OF LAYERS ACTUALLY RETRIEVED|Numeric|0|0|8|Numeric|0|3
+040060|numberOfProfilesRetrievedInScanline|long|NUMBER OF PROFILES RETRIEVED IN SCANLINE|Numeric|0|0|8|Numeric|0|3
+040061|airPartialColumnsOnEachRetrievedLayer|double|AIR PARTIAL COLUMNS ON EACH RETRIEVED LAYER|mol cm-2|3|0|16|mol cm-2|3|5
+040062|aPrioriPartialColumnsOnEachRetrievedLayer|double|A-PRIORI PARTIAL COLUMNS ON EACH RETRIEVED LAYER|mol cm-2|10|0|16|mol cm-2|10|5
+040063|scalingVectorMultiplyingTheAPrioriVectorInOrderToDefineTheRetrievedVector|long|SCALING VECTOR MULTIPLYING THE A PRIORI VECTOR IN ORDER TO DEFINE THE RETRIEVED VECTOR|Numeric|5|0|26|Numeric|5|8
+040064|mainEigenvaluesOfTheSensitivityMatrix|long|MAIN EIGENVALUES OF THE SENSITIVITY MATRIX|Numeric|6|0|31|Numeric|6|10
+040065|mainEigenvectorsOfTheSensitivityMatrix|long|MAIN EIGENVECTORS OF THE SENSITIVITY MATRIX|Numeric|6|-1000000000|31|Numeric|6|10
+040066|qualityIndicatorForAtmosphericWaterVapour|long|QUALITY INDICATOR FOR ATMOSPHERIC WATER VAPOUR|Numeric|1|0|8|Numeric|1|3
+040067|qualityIndicatorForAtmosphericTemperature|long|QUALITY INDICATOR FOR ATMOSPHERIC TEMPERATURE|Numeric|1|0|8|Numeric|1|3
+040068|generalRetrievalQualityFlagForSo2|table|GENERAL RETRIEVAL QUALITY FLAG FOR SO2|CODE TABLE|0|0|4|CODE TABLE|0|2
+040069|pwlrEstimatedRetrievalErrorForSurfaceAirTemperature|double|PWLR ESTIMATED RETRIEVAL ERROR FOR SURFACE AIR TEMPERATURE|K|4|-1000000|21|K|4|7
+040070|pwlrEstimatedRetrievalErrorOfSurfaceDewpoint|double|PWLR ESTIMATED RETRIEVAL ERROR OF SURFACE DEWPOINT|K|4|-1000000|21|K|4|7
+040071|retrievalErrorCovarianceMatrixForOzoneInPrincipalComponentDomain|long|RETRIEVAL ERROR COVARIANCE MATRIX FOR OZONE IN PRINCIPAL COMPONENT DOMAIN|Numeric|4|-1000000|21|Numeric|4|7
+040072|pwlrEstimatedRetrievalQualityIndicatorOfAtmosphericOzone|long|PWLR ESTIMATED RETRIEVAL QUALITY INDICATOR OF ATMOSPHERIC OZONE|Numeric|1|0|8|Numeric|1|3
+040073|pwlrEstimatedRetrievalErrorOfSurfaceSkinTemperature|double|PWLR ESTIMATED RETRIEVAL ERROR OF SURFACE SKIN TEMPERATURE|K|1|0|8|K|1|3
+040074|generalInterferometryQualityFlags|flag|GENERAL INTERFEROMETRY QUALITY FLAGS|FLAG TABLE|0|0|16|NA|0|0
+040075|retrievalErrorCovarianceMatrixForHumidityInPrincipalComponentDomain|long|RETRIEVAL ERROR COVARIANCE MATRIX FOR HUMIDITY IN PRINCIPAL COMPONENT DOMAIN|Numeric|0|0|21|Numeric|0|7
+040076|retrievalErrorCovarianceMatrixForTemperatureInPrincipalComponentDomain|long|RETRIEVAL ERROR COVARIANCE MATRIX FOR TEMPERATURE IN PRINCIPAL COMPONENT DOMAIN|Numeric|0|0|21|Numeric|0|7
+040080|cloudTestResultsForIasiNgLevel2|flag|CLOUD TEST RESULTS FOR IASI-NG LEVEL 2|FLAG TABLE|0|0|5|FLAG TABLE|0|2
+041001|pco2|double|PCO2|Pa|3|0|18|Pa|3|6
+041002|fluorescence|double|FLUORESCENCE|kg l-1|12|0|16|kg l-1|12|5
+041003|dissolvedNitrates|double|DISSOLVED NITRATES|umol/kg|3|0|17|umol/kg|3|5
+041004|chlorophyllA|double|CHLOROPHYLL-A|mg m-3|4|0|19|mg m-3|4|7
+041005|turbidity|double|TURBIDITY|NTU|2|0|12|NTU|2|4
+041006|seaWaterPh|long|SEA WATER PH|Numeric|4|70000|15|Numeric|4|5
+041007|bbp700|double|BBP700|/m|7|0|20|/m|7|7
+042001|dominantSwellWaveDirectionOfSpectralPartition|long|DOMINANT SWELL WAVE DIRECTION OF SPECTRAL PARTITION|deg|0|0|9|deg|0|3
+042002|significantSwellWaveHeightOfSpectralPartition|double|SIGNIFICANT SWELL WAVE HEIGHT OF SPECTRAL PARTITION|m|1|0|9|m|1|3
+042003|dominantSwellWavelengthOfSpectralPartition|double|DOMINANT SWELL WAVELENGTH OF SPECTRAL PARTITION|m|2|100|17|m|2|6
+042004|confidenceOfInversionForEachPartitionOfSwellWaveSpectra|table|CONFIDENCE OF INVERSION FOR EACH PARTITION OF SWELL WAVE SPECTRA|CODE TABLE|0|0|4|CODE TABLE|0|2
+042005|ambiguityRemovalFactorForSwellWavePartition|long|AMBIGUITY REMOVAL FACTOR FOR SWELL WAVE PARTITION|Numeric|5|-100000|18|Numeric|5|6
+042006|waveAge|long|WAVE AGE|Numeric|2|1|8|Numeric|2|3
+042007|shortestOceanWavelengthOnSpectralResolution|double|SHORTEST OCEAN WAVELENGTH ON SPECTRAL RESOLUTION|m|2|0|16|m|2|5
+042008|nonlinearInverseSpectralWidth|double|NONLINEAR INVERSE SPECTRAL WIDTH|m|2|0|16|m|2|5
+042009|binPartitionReference|long|BIN PARTITION REFERENCE|Numeric|0|0|8|Numeric|0|3
+042010|partitionNumber|long|PARTITION NUMBER|Numeric|0|1|4|Numeric|0|2
+042011|a1CoefficientOfTheDirectionalFourierSeries|long|A1 COEFFICIENT OF THE DIRECTIONAL FOURIER SERIES|Numeric|4|-20000|15|Numeric|4|6
+042012|b1CoefficientOfTheDirectionalFourierSeries|long|B1 COEFFICIENT OF THE DIRECTIONAL FOURIER SERIES|Numeric|4|-20000|15|Numeric|4|6
+042013|a2CoefficientOfTheDirectionalFourierSeries|long|A2 COEFFICIENT OF THE DIRECTIONAL FOURIER SERIES|Numeric|4|-20000|15|Numeric|4|6
+042014|b2CoefficientOfTheDirectionalFourierSeries|long|B2 COEFFICIENT OF THE DIRECTIONAL FOURIER SERIES|Numeric|4|-20000|15|Numeric|4|6
+042015|checkFactorK|long|CHECK FACTOR K|Numeric|2|0|12|Numeric|2|4
+042016|seaWaterPotentialDensityReferencedToSeaSurface|double|SEA WATER POTENTIAL DENSITY REFERENCED TO SEA SURFACE|kg m-3|5|-10000000|24|kg m-3|5|9
diff --git a/definitions/bufr/tables/0/wmo/41/sequence.def b/definitions/bufr/tables/0/wmo/41/sequence.def
new file mode 100644
index 000000000..fc720ec2b
--- /dev/null
+++ b/definitions/bufr/tables/0/wmo/41/sequence.def
@@ -0,0 +1,1297 @@
+"300002" = [ 000002, 000003 ]
+"300003" = [ 000010, 000011, 000012 ]
+"300004" = [ 300003, 000013, 000014, 000015, 000016, 000017, 000018, 000019, 000020 ]
+"300010" = [ 300003, 101000, 031001, 000030 ]
+"300015" = [ 000030, 102000, 031002, 000024, 000025 ]
+"300016" = [ 000030, 102000, 031001, 000026, 000027 ]
+"301001" = [ 001001, 001002 ]
+"301002" = [ 001003, 001004, 001005 ]
+"301003" = [ 001011, 001012, 001013 ]
+"301004" = [ 001001, 001002, 001015, 002001 ]
+"301005" = [ 001035, 001034 ]
+"301011" = [ 004001, 004002, 004003 ]
+"301012" = [ 004004, 004005 ]
+"301013" = [ 004004, 004005, 004006 ]
+"301014" = [ 102002, 301011, 301012 ]
+"301018" = [ 001114, 025185, 025186 ]
+"301021" = [ 005001, 006001 ]
+"301022" = [ 005001, 006001, 007001 ]
+"301023" = [ 005002, 006002 ]
+"301024" = [ 005002, 006002, 007001 ]
+"301025" = [ 301023, 004003, 301012 ]
+"301026" = [ 301021, 004003, 004003, 004004, 004004, 004005, 004005 ]
+"301027" = [ 008007, 101000, 031001, 301028, 008007 ]
+"301028" = [ 008040, 033042, 007010, 101000, 031002, 301023, 019007, 008040 ]
+"301029" = [ 001018, 002001, 301011 ]
+"301030" = [ 001018, 002001, 301011, 301024 ]
+"301031" = [ 301001, 002001, 301011, 301012, 301022 ]
+"301032" = [ 301001, 002001, 301011, 301012, 301024 ]
+"301033" = [ 001005, 002001, 301011, 301012, 301021 ]
+"301034" = [ 001005, 002001, 301011, 301012, 301023 ]
+"301035" = [ 001005, 001012, 001013, 002001, 301011, 301012, 301023 ]
+"301036" = [ 301003, 002001, 301011, 301012, 301023 ]
+"301037" = [ 301001, 002011, 002012, 301011, 301012, 301022 ]
+"301038" = [ 301001, 002011, 002012, 301011, 301012, 301024 ]
+"301039" = [ 301003, 002011, 002012, 301011, 301012, 301023 ]
+"301040" = [ 301003, 002011, 002012, 301011, 301012, 301024 ]
+"301041" = [ 001007, 002021, 002022, 301011, 301012 ]
+"301042" = [ 301041, 301021 ]
+"301043" = [ 001007, 002023, 301011, 301013, 301021 ]
+"301044" = [ 001007, 002024, 301011, 301013, 301021 ]
+"301045" = [ 301011, 301012, 201138, 202131, 004006, 201000, 202000, 304030, 304031 ]
+"301046" = [ 001007, 001012, 002048, 021119, 025060, 202124, 002026, 002027, 202000, 005040
+ ]
+"301047" = [ 001007, 025060, 001033, 001034, 001012, 301045, 002021, 301011, 301012, 201138,
+ 202131, 004006, 201000, 202000, 301023 ]
+"301048" = [ 002104, 002121, 002113, 002026, 002027, 002111, 002140, 202127, 001013, 202126,
+ 007001, 202000, 025010, 021064 ]
+"301049" = [ 002111, 002112, 021062, 021063, 021065 ]
+"301051" = [ 001006, 002061, 301011, 301012, 301021, 008004 ]
+"301055" = [ 001005, 002001, 301011, 301012, 301021, 001012, 001014 ]
+"301056" = [ 001087, 001011, 001015, 002008, 002001, 301011, 301012, 301021, 007030, 007031
+ ]
+"301058" = [ 301011, 301012, 201152, 202135, 004006, 202000, 201000, 301021, 020111, 020112,
+ 020113, 020114, 020115, 020116, 020117, 020118, 020119, 025035, 020121, 020122,
+ 020123, 020124, 025175, 020023, 025063, 202136, 201136, 002121, 201000, 202000,
+ 025061, 002184, 002189, 025036, 101000, 031002, 301059 ]
+"301059" = [ 301021, 007030, 007032 ]
+"301062" = [ 101000, 031001, 301001 ]
+"301065" = [ 001006, 001008, 002001, 002002, 002005, 002062, 002070, 002065 ]
+"301066" = [ 301011, 301013, 301023, 007004, 002064, 008004 ]
+"301070" = [ 002143, 002142, 002144 ]
+"301071" = [ 001007, 001031, 002020, 002028, 002029 ]
+"301072" = [ 301071, 301011, 301013, 301021 ]
+"301074" = [ 002143, 002142, 002145, 002146 ]
+"301075" = [ 301001, 001015, 301024, 008021, 301011, 301012 ]
+"301076" = [ 002011, 002143, 002142 ]
+"301089" = [ 001101, 001102 ]
+"301090" = [ 301004, 301011, 301012, 301021, 007030, 007031 ]
+"301091" = [ 002180, 002181, 002182, 002183, 002184, 002179, 002186, 002187, 002188, 002189
+ ]
+"301092" = [ 001011, 001003, 002001, 301011, 301012, 301021, 007030, 007031, 033024 ]
+"301093" = [ 301036, 007030, 007031 ]
+"301110" = [ 301001, 001011, 002011, 002014, 002003 ]
+"301111" = [ 301001, 001011, 002011, 002013, 002014, 002003 ]
+"301112" = [ 001006, 002011, 002013, 002014, 002003 ]
+"301113" = [ 008021, 301011, 301013 ]
+"301114" = [ 301021, 007030, 007031, 007007, 033024 ]
+"301120" = [ 301001, 001094, 002011, 301121 ]
+"301121" = [ 008041, 301122, 301021, 007031, 007007 ]
+"301122" = [ 301011, 301012, 201135, 202130, 004006, 202000, 201000 ]
+"301123" = [ 102002, 008041, 001062, 301001, 001094, 002011, 001018, 001095, 025061, 025068,
+ 001082, 001083, 001081, 002067, 002066, 002014, 025067, 025065, 025066, 002095,
+ 002096, 002097, 002016, 002083, 002080, 002081, 001093, 002084, 002085, 002086,
+ 002082, 008041, 301011 ]
+"301125" = [ 001033, 001034, 025060, 001007, 002019, 001012 ]
+"301126" = [ 001087, 001015, 002149, 301011, 301012, 301021 ]
+"301128" = [ 001081, 001082, 001083, 001095, 002015, 002016, 002017, 002066, 002067, 002080,
+ 002081, 002082, 002083, 002084, 002085, 002086, 002095, 002096, 002097, 002103,
+ 002191, 025061, 035035 ]
+"301129" = [ 001007, 001031, 002019, 002020 ]
+"301130" = [ 301011, 301012, 202131, 201138, 004006, 201000, 202000 ]
+"301131" = [ 301021, 007024, 005021, 007025, 005022 ]
+"301132" = [ 301150, 301001, 301021, 007030, 008021, 301011, 301012, 002006, 001079, 001085
+ ]
+"301150" = [ 001125, 001126, 001127, 001128 ]
+"302001" = [ 010004, 010051, 010061, 010063 ]
+"302002" = [ 010004, 007004, 010003, 010061, 010063 ]
+"302003" = [ 011011, 011012, 012004, 012006, 013003, 020001, 020003, 020004, 020005 ]
+"302004" = [ 020010, 008002, 020011, 020013, 020012, 020012, 020012 ]
+"302005" = [ 008002, 020011, 020012, 020013 ]
+"302006" = [ 010004, 010051, 010062, 010063 ]
+"302011" = [ 302001, 302003, 302004 ]
+"302012" = [ 302002, 302003, 302004 ]
+"302013" = [ 302006, 302003, 101000, 031001, 302005 ]
+"302021" = [ 022001, 022011, 022021 ]
+"302022" = [ 022002, 022012, 022022 ]
+"302023" = [ 022003, 022013, 022023 ]
+"302024" = [ 302022, 101002, 302023 ]
+"302031" = [ 302001, 010062, 007004, 010009 ]
+"302032" = [ 007032, 012101, 012103, 013003 ]
+"302033" = [ 007032, 020001 ]
+"302034" = [ 007032, 013023 ]
+"302035" = [ 302032, 302033, 302034, 007032, 302004, 101000, 031001, 302005 ]
+"302036" = [ 105000, 031001, 008002, 020011, 020012, 020014, 020017 ]
+"302037" = [ 020062, 013013, 012113 ]
+"302038" = [ 020003, 004024, 020004, 020005 ]
+"302039" = [ 004024, 014031 ]
+"302040" = [ 007032, 102002, 004024, 013011 ]
+"302041" = [ 007032, 004024, 004024, 012111, 004024, 004024, 012112 ]
+"302042" = [ 007032, 002002, 008021, 004025, 011001, 011002, 008021, 103002, 004025, 011043,
+ 011041 ]
+"302043" = [ 302038, 101002, 302039, 302040, 302041, 302042, 007032 ]
+"302044" = [ 004024, 002004, 013033 ]
+"302045" = [ 004024, 014002, 014004, 014016, 014028, 014029, 014030 ]
+"302046" = [ 004024, 004024, 012049 ]
+"302047" = [ 102003, 008002, 020054 ]
+"302048" = [ 005021, 007021, 020012, 005021, 007021 ]
+"302049" = [ 008002, 020011, 020013, 020012, 020012, 020012, 008002 ]
+"302050" = [ 008041, 005021, 007005, 202130, 006021, 202000, 008041, 201131, 202129, 002115,
+ 010004, 002115, 013003, 202000, 201000, 002115, 011001, 011002, 002115, 102002,
+ 012101, 004024, 002115, 012103, 012102, 101003, 020012, 020011, 020013, 101002,
+ 020003 ]
+"302051" = [ 010004, 010051, 007004, 010003, 012004, 012051, 012016, 012017, 013004, 102004,
+ 008051, 008020 ]
+"302052" = [ 007032, 007033, 012101, 002039, 012102, 012103, 013003 ]
+"302053" = [ 007032, 007033, 020001 ]
+"302054" = [ 302052, 302053, 007033, 302034, 007032, 302004, 101000, 031001, 302005 ]
+"302055" = [ 020031, 020032, 020033, 020034, 020035, 020036, 020037, 020038 ]
+"302056" = [ 002038, 007063, 022043, 007063 ]
+"302057" = [ 302056, 302021, 302024 ]
+"302058" = [ 007032, 007033, 004024, 004024, 012111, 004024, 004024, 012112 ]
+"302059" = [ 007032, 007033, 002002, 008021, 004025, 011001, 011002, 008021, 103002, 004025,
+ 011043, 011041 ]
+"302060" = [ 302038, 302040, 302058, 302059 ]
+"302062" = [ 025188, 302001, 302093, 101000, 031000, 302053, 007032, 007033, 101000, 031000,
+ 302004, 101000, 031001, 302005, 008002, 101000, 031000, 302055, 101000, 031000,
+ 302056, 101000, 031000, 302021, 101000, 031000, 302024 ]
+"302063" = [ 302038, 101000, 031000, 302040, 101000, 031000, 302034, 007032, 101000, 031000,
+ 302058, 101000, 031000, 302064 ]
+"302064" = [ 007032, 007033, 002002, 008021, 004025, 011001, 011002, 008021, 103000, 031001,
+ 004025, 011043, 011041 ]
+"302066" = [ 020023, 020024, 020027, 020054, 020023, 020027, 020054, 020025, 020026, 020027,
+ 020040, 020066, 020027, 020021, 020067, 020027 ]
+"302067" = [ 001023, 004025, 002177, 101000, 031001, 020003, 103000, 031001, 005021, 020001,
+ 005021, 101000, 031000, 302056, 103000, 031000, 033041, 020058, 022061, 101000,
+ 031000, 302022, 101000, 031001, 302023, 104000, 031001, 020054, 020137, 020012,
+ 020090, 103000, 031001, 020054, 020137, 020136, 004025, 013012, 004025, 011042,
+ 104000, 031001, 008021, 004025, 011042, 008021, 115000, 031001, 008021, 004015,
+ 008021, 004025, 011001, 011002, 008021, 004015, 008021, 004025, 011001, 011002,
+ 008021, 004025, 004015, 103000, 031001, 004025, 004025, 020003, 110000, 031001,
+ 004025, 004025, 005021, 005021, 020054, 020024, 020025, 020026, 020027, 020063
+ ]
+"302069" = [ 007032, 007033, 033041, 020001 ]
+"302070" = [ 007032, 007033, 011001, 011002, 011043, 011041, 011016, 011017 ]
+"302071" = [ 007032, 007033, 008021, 004025, 011001, 011002, 008021, 103002, 004025, 011043,
+ 011041, 004025, 011016, 011017 ]
+"302072" = [ 007032, 007033, 012101, 012103, 013003 ]
+"302073" = [ 020010, 105004, 008002, 020011, 020012, 033041, 020013 ]
+"302074" = [ 020003, 004025, 020004, 020005 ]
+"302075" = [ 008021, 004025, 013055, 013058, 008021 ]
+"302076" = [ 020021, 020022, 026020, 020023, 020024, 020025, 020026 ]
+"302077" = [ 007032, 007033, 004025, 012111, 012112, 007032, 004025, 012112 ]
+"302078" = [ 002176, 020062, 002177, 013013 ]
+"302079" = [ 007032, 002175, 002178, 004025, 013011 ]
+"302080" = [ 002185, 004025, 013033 ]
+"302081" = [ 004025, 014031 ]
+"302082" = [ 004025, 014002, 014004, 014016, 014028, 014029, 014030 ]
+"302083" = [ 004025, 008023, 010004, 011001, 011002, 012101, 013003, 008023 ]
+"302084" = [ 302031, 302072, 103000, 031000, 101005, 307063, 007061, 101000, 031000, 302069,
+ 007032, 007033, 105000, 031000, 020031, 020032, 002038, 022043, 302021, 101000,
+ 031000, 302078, 012113, 101000, 031000, 302004, 105000, 031001, 008002, 020011,
+ 020012, 033041, 020013, 302036, 101000, 031000, 302047, 008002, 101000, 031000,
+ 302048 ]
+"302085" = [ 105000, 031000, 020003, 103002, 004024, 020004, 020005, 101000, 031000, 302175,
+ 102000, 031000, 004025, 302076, 102000, 031000, 004025, 013059, 007032, 007033,
+ 008021, 004025, 011001, 011002, 008021, 103003, 004025, 011043, 011041, 004025,
+ 011016, 011017, 302077, 007033, 302041, 106000, 031000, 007032, 002175, 002178,
+ 102005, 004024, 013011, 007032, 103000, 031000, 002185, 101002, 302044, 102000,
+ 031000, 101002, 302039, 102000, 031000, 101002, 302045, 101000, 031000, 302046,
+ 101000, 031000, 302083 ]
+"302089" = [ 020101, 020102, 020103, 020104, 020105, 020106, 020107, 020108 ]
+"302090" = [ 002038, 007063, 022045 ]
+"302091" = [ 020001, 004024, 013011 ]
+"302092" = [ 011104, 001012, 001013, 010038, 010039, 011007, 011008 ]
+"302093" = [ 007032, 007033, 303099, 012101, 103000, 031000, 007032, 007033, 303099, 002039,
+ 002097, 003024, 003021, 012102, 012103, 013003, 007032, 007033, 303099, 002039,
+ 002097, 003021, 003024 ]
+"302175" = [ 008021, 004025, 013155, 013058, 008021 ]
+"303001" = [ 007003, 011001, 011002 ]
+"303002" = [ 007004, 011001, 011002 ]
+"303003" = [ 007004, 010003, 012001, 012003 ]
+"303004" = [ 007004, 010003, 012001, 012003, 011001, 011002 ]
+"303011" = [ 007003, 008001, 011001, 011002 ]
+"303012" = [ 007004, 008001, 011001, 011002 ]
+"303013" = [ 007004, 008001, 010003, 012001, 013003, 011001, 011002 ]
+"303014" = [ 007004, 008001, 010003, 012001, 012003, 011001, 011002 ]
+"303021" = [ 007004, 007004, 204007, 031021 ]
+"303022" = [ 303021, 010003, 204000 ]
+"303023" = [ 303021, 012001, 204000 ]
+"303024" = [ 303021, 013016, 204000 ]
+"303025" = [ 002025, 204007, 031021, 012063, 204000 ]
+"303026" = [ 007004, 008003, 204007, 031021, 012001, 204000 ]
+"303027" = [ 007004, 204007, 031021, 010003, 204000 ]
+"303031" = [ 007004, 008003, 007021, 007022, 008012, 012061 ]
+"303032" = [ 020011, 020016 ]
+"303033" = [ 020010, 020016 ]
+"303040" = [ 008041, 004025, 004026, 301021, 301122, 201131, 202129, 025069, 007004, 013003,
+ 202000, 201000, 002013, 012101, 010009, 102002, 008040, 035035 ]
+"303041" = [ 002152, 002023, 007004, 011001, 011002, 002153, 002154, 012071 ]
+"303050" = [ 004086, 008042, 007004, 005015, 006015, 011001, 011002 ]
+"303051" = [ 004086, 008042, 007004, 005015, 006015, 011061, 011062 ]
+"303052" = [ 004086, 008042, 007009, 005015, 006015, 011001, 011002 ]
+"303053" = [ 004086, 008042, 007009, 005015, 006015, 011061, 011062 ]
+"303054" = [ 004086, 008042, 007004, 010009, 005015, 006015, 012101, 012103, 011001, 011002
+ ]
+"303055" = [ 004086, 008042, 007009, 005015, 006015, 012101, 013009, 012103, 011001, 011002
+ ]
+"303056" = [ 004086, 008042, 207001, 007004, 010009, 207000, 005015, 006015, 012101, 012103,
+ 011001, 011002 ]
+"303099" = [ 003005, 003006, 003007, 002096, 003022, 003003, 003020, 003004, 003023, 003008,
+ 003009 ]
+"303100" = [ 013165, 013045, 013166, 013044, 013042, 013167, 013168, 013169, 013170, 013171
+ ]
+"304001" = [ 008003, 010004, 012001, 011001, 011002 ]
+"304002" = [ 008003, 010004, 011001, 011002 ]
+"304003" = [ 008003, 012001 ]
+"304004" = [ 008003, 010004, 020010, 012001 ]
+"304005" = [ 002024, 007004, 007004, 013003 ]
+"304006" = [ 014001, 014001, 014003 ]
+"304011" = [ 002163, 002164, 008012, 007024, 002057, 008021, 004001, 004002, 004003, 004004,
+ 008021, 004024, 110004, 008021, 004004, 004005, 004006, 008021, 004004, 004005,
+ 004006, 011001, 011002, 103010, 002163, 007004, 012001 ]
+"304030" = [ 027031, 028031, 010031 ]
+"304031" = [ 001041, 001042, 001043 ]
+"304032" = [ 002153, 002154, 020081, 020082, 020012 ]
+"304033" = [ 002152, 002166, 002167, 002153, 002154, 012075, 012076, 012063 ]
+"304034" = [ 102004, 027001, 028001, 007022, 005043, 020010, 020016, 033003, 010040 ]
+"304035" = [ 002153, 002154, 012063, 008001, 012063, 008001, 012063, 008001, 008003, 012063,
+ 008003, 012063, 008003, 012063, 008003 ]
+"304036" = [ 020082, 008012, 020082, 008012, 020081, 008003, 020081, 008003, 020081, 008003,
+ 020081, 008003 ]
+"304037" = [ 002153, 002154, 012063, 008011, 012063, 008011, 012063, 008011, 008003, 012063,
+ 008003, 012063, 008003, 012063 ]
+"304039" = [ 201136, 005042, 201000, 014046 ]
+"304040" = [ 025140, 025141, 040026, 040016, 025062, 101000, 031002, 040017 ]
+"305001" = [ 011001, 011002, 013060, 013071 ]
+"305002" = [ 301012, 012001, 013003, 014051, 013060, 013072, 013080, 013081, 013082, 013083,
+ 013084 ]
+"305003" = [ 301012, 004065, 101000, 031001, 305001 ]
+"305004" = [ 301030, 305002, 305003 ]
+"305006" = [ 013072, 013082, 013019, 012001, 013073, 013060 ]
+"305007" = [ 301029, 301012, 004065, 101000, 031001, 305006 ]
+"305008" = [ 305006, 012030 ]
+"305009" = [ 301029, 301012, 004065, 101000, 031001, 305008 ]
+"305010" = [ 305008, 002091, 002091 ]
+"305011" = [ 301029, 301012, 004065, 101000, 031001, 305010 ]
+"305016" = [ 014021, 007004, 013003, 011002, 011001, 011041, 011043 ]
+"305017" = [ 013080, 013081, 013083, 013085, 013084 ]
+"305018" = [ 301029, 301012, 004065, 103000, 031001, 305008, 305016, 305017 ]
+"306001" = [ 002032, 102000, 031001, 007062, 022042 ]
+"306002" = [ 002031, 022004, 022031 ]
+"306003" = [ 002002, 011011, 011012, 012004 ]
+"306004" = [ 002032, 002033, 103000, 031001, 007062, 022043, 022062 ]
+"306005" = [ 002031, 103000, 031001, 007062, 022004, 022031 ]
+"306006" = [ 306003, 306002, 022063 ]
+"306007" = [ 001012, 001014, 306008, 004024, 027003, 028003 ]
+"306008" = [ 002034, 002035, 002036 ]
+"306011" = [ 301021, 001075, 002147, 301011, 301013 ]
+"306012" = [ 002007, 008015, 008032, 306029 ]
+"306013" = [ 306012, 301011, 301013, 022120, 022121, 004015, 004065, 102000, 031001, 022038,
+ 022040 ]
+"306014" = [ 306012, 301011, 301013, 022120, 022121, 004015, 004065, 101000, 031001, 022038
+ ]
+"306016" = [ 301011, 301013, 010004, 010051, 302032, 007032, 002002, 008021, 004025, 011001,
+ 011002, 004025, 011043, 011041, 025026, 012060 ]
+"306017" = [ 002032, 008034, 106000, 031002, 007065, 008080, 033050, 022045, 008080, 033050,
+ 008034 ]
+"306018" = [ 002032, 008034, 109000, 031002, 007065, 008080, 033050, 022045, 008080, 033050,
+ 022064, 008080, 033050, 008034 ]
+"306019" = [ 001075, 301011, 301012, 022042, 022120, 022121, 004015, 004065 ]
+"306020" = [ 001075, 301011, 301012, 022042, 022120, 022121, 004075, 004065 ]
+"306021" = [ 001075, 301011, 301012, 022122, 022123, 012001, 303002 ]
+"306022" = [ 001075, 301011, 301012, 022038, 022039 ]
+"306023" = [ 001015, 301023, 301011, 301012, 022038, 022039, 022120, 022121 ]
+"306024" = [ 306020, 102006, 022038, 022039 ]
+"306025" = [ 306019, 102006, 022038, 022039 ]
+"306027" = [ 001005, 001052, 002047, 301011, 301013 ]
+"306028" = [ 306027, 301011, 301013, 301021 ]
+"306029" = [ 025170, 025171, 025172 ]
+"306030" = [ 306027, 306029, 111000, 031001, 033002, 301011, 301013, 025025, 025025, 025026,
+ 022185, 004015, 004065, 101004, 022182 ]
+"306031" = [ 306027, 306029, 001053, 033002, 301011, 301013, 301011, 301013, 022185, 022182,
+ 004016, 004066, 101000, 031001, 022184 ]
+"306033" = [ 002033, 007063, 022064 ]
+"306034" = [ 002031, 003010, 002040, 022005, 022032 ]
+"306035" = [ 112000, 031002, 007062, 008080, 033050, 007065, 008080, 033050, 022043, 008080,
+ 033050, 022064, 008080, 033050 ]
+"306036" = [ 112000, 031002, 007062, 008080, 033050, 007065, 008080, 033050, 022031, 008080,
+ 033050, 022004, 008080, 033050 ]
+"306037" = [ 109000, 031002, 007062, 008080, 033050, 007065, 008080, 033050, 022188, 008080,
+ 033050 ]
+"306038" = [ 010004, 010051, 007033, 012101, 012103, 013003, 007033, 008021, 004025, 011001,
+ 011002, 008021, 004025, 011041, 004025, 007033, 002005, 007063, 022049 ]
+"306039" = [ 022078, 022070, 022073, 022074, 022071, 022076, 022077 ]
+"306040" = [ 022078, 022082, 106000, 031001, 022080, 022069, 022086, 022087, 022088, 022089
+ ]
+"306041" = [ 002032, 102000, 031001, 007062, 022043 ]
+"306042" = [ 002169, 007033, 008021, 004025, 011001, 011002 ]
+"306043" = [ 041001, 008043, 015028, 008043, 013080, 041005, 041003, 022188, 041002, 106000,
+ 031000, 004024, 014002, 014002, 014012, 014004, 004024 ]
+"306044" = [ 203014, 022188, 203255, 108000, 031002, 007065, 008080, 033050, 201129, 022188,
+ 201000, 008080, 033050, 203000 ]
+"306045" = [ 203011, 041004, 203255, 106000, 031002, 007065, 008080, 033050, 041004, 008080,
+ 033050, 203000 ]
+"306046" = [ 203015, 041003, 203255, 106000, 031002, 007065, 008080, 033050, 041003, 008080,
+ 033050, 203000 ]
+"306047" = [ 106000, 031002, 007065, 008080, 033050, 041006, 008080, 033050 ]
+"306048" = [ 203009, 041007, 203255, 106000, 031002, 007065, 008080, 033050, 041007, 008080,
+ 033050, 203000 ]
+"307001" = [ 301031, 302011 ]
+"307002" = [ 301032, 302011 ]
+"307003" = [ 307001, 101000, 031001, 302005 ]
+"307004" = [ 307002, 101000, 031001, 302005 ]
+"307005" = [ 307001, 101004, 302005 ]
+"307006" = [ 307002, 101004, 302005 ]
+"307007" = [ 301031, 302012 ]
+"307008" = [ 301032, 302012 ]
+"307009" = [ 301031, 302013 ]
+"307011" = [ 001063, 002001, 301011, 301012, 301024, 007006, 011001, 011016, 011017, 011002,
+ 011041, 007006, 012001, 012003, 010052, 020009 ]
+"307012" = [ 103000, 031001, 008023, 005021, 020001 ]
+"307013" = [ 106000, 031001, 001064, 008014, 020061, 008014, 020061, 020018 ]
+"307014" = [ 101000, 031001, 020019 ]
+"307015" = [ 101000, 031001, 302005, 020002 ]
+"307016" = [ 101000, 031001, 020020 ]
+"307017" = [ 101000, 031001, 011070 ]
+"307018" = [ 008016, 102000, 031001, 008017, 301012, 104000, 031001, 007006, 011001, 011002,
+ 011041, 020009, 101000, 031001, 020001, 307014 ]
+"307020" = [ 307011, 307014, 307016 ]
+"307021" = [ 307011, 307012, 307013, 307014, 307015, 307016, 307017, 307018, 307015 ]
+"307022" = [ 001015, 301011, 301012, 301022, 008021, 004025, 010004, 012001, 013003, 033038,
+ 008022, 106025, 002020, 001050, 005021, 007021, 015031, 015032, 008060, 015033,
+ 015034, 008060, 015033, 015034, 015035, 201131, 202129, 013016, 202000, 201000,
+ 015011 ]
+"307024" = [ 301150, 001015, 001040, 008021, 301011, 301013, 301022, 010036, 025061, 010004,
+ 012001, 013003, 120000, 031000, 025060, 008021, 004025, 115000, 031001, 015079,
+ 015080, 008022, 033093, 015089, 015035, 102002, 008060, 015083, 201131, 202129,
+ 013016, 202000, 201000, 015011, 131000, 031000, 025060, 008021, 004025, 033093,
+ 125000, 031001, 002020, 001050, 001150, 202127, 304030, 202000, 005021, 007021,
+ 015038, 015039, 015090, 015081, 015082, 015079, 015089, 015035, 102002, 008060,
+ 015083, 015084, 015085, 015086, 015087, 015088, 015011 ]
+"307030" = [ 015001, 015002 ]
+"307031" = [ 008022, 008023, 015001, 008023, 015001, 008023, 015002 ]
+"307041" = [ 301001, 001015, 301024, 301011, 301012, 301070, 307030 ]
+"307042" = [ 301001, 001015, 301024, 301011, 301012, 008021, 004025, 301070, 307031 ]
+"307043" = [ 301001, 001015, 301024, 301011, 301012, 301074, 307030 ]
+"307044" = [ 301001, 001015, 301024, 301011, 301012, 008021, 004025, 301074, 307031 ]
+"307045" = [ 001063, 008079, 002001, 301011, 301012, 301023, 007030, 007031, 007032, 011001,
+ 011016, 011017, 008054, 011083, 011084, 011002, 008054, 011085, 011086, 011041,
+ 008054, 007032, 012023, 012024, 007032, 010052, 020009 ]
+"307046" = [ 020060, 102000, 031001, 005021, 020059 ]
+"307047" = [ 105000, 031001, 008002, 020011, 020012, 020013, 020092, 020002, 020091 ]
+"307048" = [ 008016, 102000, 031001, 008017, 301012, 112000, 031000, 007032, 011001, 008054,
+ 011083, 011084, 011002, 008054, 011085, 011086, 011041, 008054, 007032, 020009,
+ 101000, 031000, 020060, 307014, 307047 ]
+"307049" = [ 102000, 031000, 022043, 022021 ]
+"307050" = [ 101000, 031000, 020085, 102000, 031001, 001064, 020085, 105000, 031001, 001064,
+ 020086, 020087, 020088, 020089 ]
+"307051" = [ 307045, 307046, 307013, 307014, 307047, 307016, 307017, 307049, 307050, 101000,
+ 031001, 307048 ]
+"307052" = [ 001063, 008039, 301011, 301012, 008079, 008039, 301011, 301012, 008039, 301011,
+ 301012, 301023, 007030, 007031 ]
+"307053" = [ 007032, 011001, 008054, 011083, 011084, 011002, 008054, 011085, 011086, 011041,
+ 008054, 007032, 020009, 020060, 307014, 307047 ]
+"307054" = [ 007032, 008039, 004003, 004004, 008023, 012023, 008039, 004003, 004004, 008023,
+ 012023, 008023, 007032 ]
+"307055" = [ 033045, 008016, 008039, 004003, 301012, 008039, 004003, 301012, 307053 ]
+"307056" = [ 307052, 307053, 307054, 101000, 031001, 307055 ]
+"307060" = [ 007061, 012030 ]
+"307061" = [ 301031, 101005, 307060 ]
+"307062" = [ 301032, 101005, 307060 ]
+"307063" = [ 007061, 012130 ]
+"307064" = [ 004025, 106000, 031001, 007061, 201131, 202129, 012130, 201000, 202000 ]
+"307071" = [ 301090, 004074, 004023, 008023, 010004, 010051, 007004, 010009, 007032, 012101,
+ 002051, 004051, 012118, 004052, 012119, 013004, 008023, 012151, 007032, 102005,
+ 008050, 008020, 014032, 014033, 008050, 008020, 102018, 008052, 008022, 007032,
+ 008053, 004003, 012152, 008053, 004003, 012153, 008053, 004003, 008023, 012101,
+ 008053, 004003, 008023, 012101, 008023, 007032, 002002, 008053, 004003, 011046,
+ 008053, 004003, 004004, 004023, 007032, 013060, 013051, 004053, 008050, 008020,
+ 102006, 008052, 008022, 008053, 004003, 013052, 007032 ]
+"307072" = [ 004001, 004001, 004002, 004003, 004004, 004074, 004022, 008023, 010004, 010051,
+ 007004, 010009, 007032, 012101, 002051, 004051, 012118, 004052, 012119, 013004,
+ 012151, 007032, 014032, 008023, 004001, 004001, 004002, 004003, 004004, 004022,
+ 007032, 008023, 013060, 004053, 008023, 102008, 008050, 008020 ]
+"307073" = [ 307071, 307072 ]
+"307074" = [ 301001, 004001, 004002, 301021, 007030, 007032, 112000, 031001, 004003, 004004,
+ 004024, 102003, 008023, 012101, 008023, 004004, 004024, 013060, 013012, 013013
+ ]
+"307075" = [ 301150, 301001, 301021, 007030, 008095, 008096, 008094, 301011, 004023, 301013,
+ 204008, 031021, 013060, 204000, 004023, 301013, 204008, 031021, 013012, 204000,
+ 004023, 301013, 204008, 031021, 013013, 204000, 007032, 107003, 004023, 301013,
+ 008023, 204008, 031021, 012101, 204000, 008023 ]
+"307076" = [ 301090, 004074, 004023, 008023, 010004, 010051, 007004, 010009, 007032, 012101,
+ 002051, 004051, 012118, 004052, 012119, 013004, 008023, 012151, 007032, 102005,
+ 008050, 008020, 014032, 014033, 008050, 008020, 102018, 008052, 008022, 007032,
+ 008053, 004003, 012152, 008053, 004003, 012153, 008053, 004003, 008023, 012101,
+ 008053, 004003, 008023, 012101, 008023, 007032, 002002, 008053, 004003, 011046,
+ 008053, 004003, 004004, 004074, 004023, 007032, 013060, 013051, 004053, 008050,
+ 008020, 102006, 008052, 008022, 008053, 004003, 013052, 007032 ]
+"307077" = [ 004001, 004001, 004002, 004003, 004004, 004074, 004022, 008023, 010004, 010051,
+ 007004, 010009, 007032, 012101, 002051, 004051, 012118, 004052, 012119, 013004,
+ 012151, 007032, 014032, 008023, 004001, 004001, 004002, 004003, 004004, 004074,
+ 004022, 007032, 008023, 013060, 004053, 008023, 102008, 008050, 008020 ]
+"307078" = [ 307076, 307077 ]
+"307079" = [ 301090, 302031, 302035, 302036, 101000, 031000, 302047, 008002, 101000, 031000,
+ 302048, 302037, 102000, 031000, 022061, 020058, 101000, 031000, 302056, 101000,
+ 031000, 302055, 302043, 302044, 101000, 031001, 302045, 101000, 031000, 302046
+ ]
+"307080" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 302043, 302044,
+ 101002, 302045, 302046 ]
+"307081" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 012122, 013056,
+ 013057, 020101, 020102, 020103, 020104, 020105, 020106, 020107, 020108, 302043,
+ 302044, 101002, 302045, 302046 ]
+"307082" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 012121, 012122,
+ 302043, 302044, 101002, 302045, 302046 ]
+"307083" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 012122, 302043,
+ 302044, 101002, 302045, 302046 ]
+"307084" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 020055, 101000,
+ 031001, 205001, 302043, 302044, 101002, 302045, 302046 ]
+"307086" = [ 301090, 302031, 302035, 302036, 008002, 302037, 302066, 302043, 302044, 101002,
+ 302045 ]
+"307087" = [ 301001, 002001, 301011, 301012, 301023, 007030, 007031, 302001, 010062, 007004,
+ 010009, 007032, 012101, 012103, 013003, 007032, 020001, 302004, 101000, 031001,
+ 302005 ]
+"307088" = [ 020003, 004024, 020004, 020005, 004024, 002004, 013033, 102002, 004024, 014031,
+ 102002, 004024, 013011, 007032, 004024, 012111, 004024, 012112, 007032, 002002,
+ 008021, 004025, 011001, 011002, 008021 ]
+"307089" = [ 307087, 307088 ]
+"307090" = [ 301092, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 302043, 302044,
+ 101002, 302045, 302046 ]
+"307091" = [ 301089, 301090, 008010, 301091, 302001, 007004, 010009, 302072, 103000, 031000,
+ 101005, 307063, 007061, 101000, 031000, 302069, 007032, 007033, 105000, 031000,
+ 020031, 020032, 002038, 022043, 302021, 101000, 031000, 302078, 101000, 031000,
+ 302073, 101000, 031000, 302074, 101000, 031000, 302175, 102000, 031000, 004025,
+ 302076, 302071, 302077, 007033, 101000, 031000, 302079, 007032, 101000, 031000,
+ 302080, 101000, 031000, 302081, 101000, 031000, 302082, 102000, 031000, 004025,
+ 013059, 101000, 031000, 302083, 033005, 033006 ]
+"307092" = [ 301150, 301001, 208040, 001019, 208000, 301011, 301012, 301021, 007030, 001023,
+ 108000, 031000, 007031, 204018, 031021, 010004, 010051, 007004, 010009, 204000,
+ 115000, 031001, 007032, 008010, 204018, 031021, 012101, 012103, 202129, 201132,
+ 013003, 201000, 202000, 013009, 204000, 007032, 008010, 107000, 031001, 007061,
+ 204018, 031021, 012130, 013111, 204000, 007061, 105000, 031000, 033041, 204018,
+ 031021, 020001, 204000, 113000, 031000, 204018, 031021, 020010, 204000, 107000,
+ 031001, 008002, 204018, 031021, 020011, 020013, 204000, 008002, 105000, 031000,
+ 204018, 031021, 020062, 013013, 204000, 105000, 031000, 004025, 204018, 031021,
+ 020003, 204000, 105000, 031000, 004025, 204018, 031021, 013011, 204000, 115000,
+ 031001, 007032, 008021, 004025, 204018, 031021, 011001, 011002, 204000, 008021,
+ 204018, 031021, 011043, 011041, 204000, 007032, 105000, 031000, 004025, 204018,
+ 031021, 014031, 204000, 110000, 031000, 004025, 204018, 031021, 014002, 014002,
+ 014004, 014028, 014029, 014030, 204000, 113000, 031000, 004025, 002071, 002072,
+ 204018, 031021, 014072, 204000, 002071, 002072, 204018, 031021, 014072, 204000
+ ]
+"307096" = [ 301090, 301089, 008010, 301091, 302084, 302085, 033005, 033006 ]
+"307101" = [ 301089, 001019, 002001, 301011, 301012, 301021, 007030, 007032, 012101, 007032,
+ 002177, 020062, 013013 ]
+"307102" = [ 301089, 001018, 001015, 001104, 001105, 001106, 003017, 003018, 003019, 301011,
+ 301012, 301021, 007030, 007032, 012101, 012103, 013003, 007032, 020001, 109000,
+ 031001, 003016, 012128, 102000, 031001, 007061, 012129, 007061, 013116, 020138,
+ 004025, 020024, 013055, 020021, 013011, 007032, 008021, 004025, 011001, 011002,
+ 008021, 004025, 011043, 011041, 033005 ]
+"307103" = [ 301150, 307101, 013117, 003028, 013163 ]
+"307182" = [ 301090, 302031, 302035, 302036, 302047, 008002, 302048, 302037, 012120, 012122,
+ 302043, 302044, 101002, 302045, 302046 ]
+"308001" = [ 301033, 302011, 022042 ]
+"308002" = [ 301034, 302011, 022042 ]
+"308003" = [ 301035, 302011, 022042 ]
+"308004" = [ 301036, 302011, 022042 ]
+"308005" = [ 308004, 302024 ]
+"308006" = [ 010004, 010061, 010063, 011001, 011002, 012004, 013003, 022042 ]
+"308007" = [ 301055, 302011, 007062, 022042 ]
+"308009" = [ 301093, 302001, 302054, 008002, 302055, 302057, 302060 ]
+"308010" = [ 001011, 113000, 031001, 301011, 301012, 301021, 004080, 022049, 004080, 022059,
+ 004080, 022005, 002042, 022032, 002042, 004080 ]
+"308011" = [ 001011, 002001, 301011, 301012, 301023, 007030, 007031, 004074, 004023, 008023,
+ 010051, 007032, 007033, 012101, 013004, 007032, 007033, 302056, 008023, 004003,
+ 004004, 004023, 007032, 013060, 013051, 004053, 007032 ]
+"308012" = [ 004001, 004001, 004002, 004003, 004004, 004074, 004022, 008023, 010051, 007032,
+ 007033, 012101, 013004, 007032, 007033, 302056, 008023, 004001, 004001, 004002,
+ 004003, 004004, 004022, 007032, 008023, 013060, 004053, 008023 ]
+"308013" = [ 308011, 308012 ]
+"308014" = [ 101000, 031000, 301018, 003001, 301093, 208032, 001079, 208000, 302062, 302063,
+ 101000, 031000, 302092, 101000, 031000, 306033, 101000, 031000, 306034, 101000,
+ 031000, 306043 ]
+"308015" = [ 001003, 001020, 001005, 001011, 001007, 001001, 001002, 002044, 002045, 301011,
+ 301012, 301021, 022063, 022076, 022077, 022094, 025043, 022078, 105002, 002046,
+ 022070, 022071, 022073, 022074, 127000, 031001, 002046, 008090, 022102, 008090,
+ 022084, 120000, 031001, 022080, 022108, 022086, 022087, 022088, 022089, 105000,
+ 031001, 008090, 022104, 008090, 022186, 022187, 105000, 031001, 008090, 022106,
+ 008090, 022186, 022187 ]
+"308016" = [ 001003, 001020, 001005, 001011, 001007, 001001, 001002, 002044, 002045, 301011,
+ 301012, 301021, 022063, 022076, 022077, 022094, 025044, 022079, 105002, 002046,
+ 022070, 022072, 022073, 022075, 127000, 031001, 002046, 008090, 022103, 008090,
+ 022084, 120000, 031001, 022081, 022108, 022086, 022087, 022088, 022089, 105000,
+ 031001, 008090, 022105, 008090, 022186, 022187, 105000, 031001, 008090, 022107,
+ 008090, 022186, 022187 ]
+"308017" = [ 301056, 302001, 302052, 101000, 031000, 302056, 302064, 302053, 101000, 031000,
+ 302004, 101000, 031000, 302005, 101000, 031000, 302038, 101000, 031000, 306039
+ ]
+"308018" = [ 301150, 301093, 302001, 302072, 101000, 031000, 302056, 101000, 031000, 302064
+ ]
+"308021" = [ 001011, 002001, 301011, 301012, 301023, 007030, 007031, 004074, 004023, 008023,
+ 010051, 007032, 007033, 012101, 013004, 007032, 007033, 302056, 008023, 004003,
+ 004004, 004074, 004023, 007032, 013060, 013051, 004053, 007032 ]
+"308022" = [ 004001, 004001, 004002, 004003, 004004, 004074, 004022, 008023, 010051, 007032,
+ 007033, 012101, 013004, 007032, 007033, 302056, 008023, 004001, 004001, 004002,
+ 004003, 004004, 004074, 004022, 007032, 008023, 013060, 004053, 008023 ]
+"308023" = [ 308021, 308022 ]
+"309001" = [ 301037, 101000, 031001, 303011 ]
+"309002" = [ 301038, 101000, 031001, 303011 ]
+"309003" = [ 301037, 101000, 031001, 303012 ]
+"309004" = [ 301038, 101000, 031001, 303012 ]
+"309005" = [ 301037, 302004, 101000, 031001, 303013 ]
+"309006" = [ 301038, 302004, 101000, 031001, 303013 ]
+"309007" = [ 301037, 302004, 101000, 031001, 303014 ]
+"309008" = [ 301038, 302004, 101000, 031001, 303014 ]
+"309011" = [ 301039, 101000, 031001, 303011 ]
+"309012" = [ 301039, 101000, 031001, 303012 ]
+"309013" = [ 301039, 302004, 101000, 031001, 303013 ]
+"309014" = [ 301039, 302004, 101000, 031001, 303014 ]
+"309015" = [ 301040, 101000, 031001, 303011 ]
+"309016" = [ 301040, 101000, 031001, 303012 ]
+"309017" = [ 301040, 302004, 101000, 031001, 303013 ]
+"309018" = [ 301040, 302004, 101000, 031001, 303014 ]
+"309019" = [ 301031, 002003, 101000, 031001, 303011 ]
+"309020" = [ 301031, 002003, 104000, 031001, 007003, 011003, 011004, 011005 ]
+"309021" = [ 301001, 005001, 006001, 007030, 301014, 002003, 002121, 112000, 031001, 007007,
+ 301021, 011003, 011110, 011004, 011111, 033002, 011006, 011112, 033002, 010071,
+ 027079 ]
+"309022" = [ 301001, 005001, 006001, 007030, 301014, 002003, 002121, 110000, 031001, 007007,
+ 301021, 012007, 012008, 033002, 011006, 011112, 033002, 010071, 027079 ]
+"309023" = [ 301001, 005001, 006001, 007030, 301014, 002003, 302004, 302005, 114000, 031001,
+ 007007, 301021, 101000, 031001, 002121, 015063, 015064, 015065, 015066, 015067,
+ 015068, 015069, 015070, 015071, 015072, 033002, 010071, 027079 ]
+"309024" = [ 301132, 201151, 202130, 002121, 202000, 201000, 008021, 004025, 109000, 031002,
+ 007007, 301021, 011003, 011004, 033002, 011006, 033002, 010071, 027079 ]
+"309025" = [ 301132, 201151, 202130, 002121, 202000, 201000, 008021, 004025, 106000, 031002,
+ 007007, 301021, 012007, 033002, 010071, 027079 ]
+"309026" = [ 301132, 302004, 302005, 008092, 008093, 008021, 004025, 201138, 202126, 002121,
+ 202000, 201000, 115000, 031002, 007007, 301021, 015073, 015064, 015074, 015066,
+ 015075, 015068, 015076, 015077, 015078, 015072, 033002, 010071, 027079 ]
+"309027" = [ 301132, 008043, 025061, 302004, 302005, 008092, 008093, 008021, 004025, 118000,
+ 031001, 002090, 115000, 031002, 007007, 301021, 015073, 015064, 015074, 015066,
+ 015075, 015068, 015076, 015077, 015078, 015072, 033002, 010071, 027079 ]
+"309030" = [ 015004, 015005, 104000, 031001, 004015, 008006, 007004, 015003 ]
+"309031" = [ 015004, 015005, 104000, 031001, 004025, 008006, 007004, 015003 ]
+"309040" = [ 301075, 301076, 309030 ]
+"309041" = [ 307041, 301075, 301076, 309030 ]
+"309042" = [ 307042, 301075, 301076, 309030 ]
+"309043" = [ 307043, 301075, 301076, 309030 ]
+"309044" = [ 307044, 301075, 301076, 309030 ]
+"309045" = [ 301075, 301076, 309031 ]
+"309046" = [ 307041, 301075, 301076, 309031 ]
+"309047" = [ 307042, 301075, 301076, 309031 ]
+"309048" = [ 307043, 301075, 301076, 309031 ]
+"309049" = [ 307044, 301075, 301076, 309031 ]
+"309050" = [ 301110, 301113, 301114, 101000, 031002, 303050, 101000, 031001, 303051 ]
+"309051" = [ 301110, 301113, 301114, 101000, 031002, 303052, 101000, 031001, 303053 ]
+"309052" = [ 301111, 301113, 301114, 302049, 022043, 101000, 031002, 303054, 101000, 031001,
+ 303051 ]
+"309053" = [ 301112, 301113, 301114, 101000, 031002, 303054, 101000, 031001, 303051 ]
+"309054" = [ 301001, 001011, 301011, 301012, 301021, 007030, 007031, 007007, 004023, 004059,
+ 115000, 031001, 008001, 008023, 007004, 010009, 012101, 012103, 008023, 011001,
+ 011002, 008023, 011019, 008050, 008020, 008050, 008020 ]
+"309055" = [ 301111, 025061, 001081, 001082, 002067, 002095, 002096, 002097, 002081, 002082,
+ 002084, 002191, 301113, 301114, 010004, 302032, 007032, 002002, 011001, 011002,
+ 007032, 020003, 302049, 022043, 101000, 031002, 303055 ]
+"309056" = [ 301150, 301111, 301128, 301113, 008091, 301021, 007007, 008091, 101000, 031002,
+ 303056, 101000, 031001, 303051 ]
+"309057" = [ 301150, 301111, 301128, 301113, 301114, 302049, 022043, 101000, 031002, 303056,
+ 101000, 031001, 303051 ]
+"309060" = [ 301123, 301121, 302050, 303040 ]
+"309061" = [ 301120, 008041, 301122, 201131, 202129, 025069, 007004, 202000, 201000, 033007,
+ 033035, 033015, 013009, 033007, 033035, 033015, 002013, 012101, 033007, 033035,
+ 033015 ]
+"309062" = [ 301120, 008041, 301122, 005001, 033035, 033015, 006001, 033035, 033015, 007007,
+ 033035, 033015, 011003, 033035, 033015, 011004, 033035, 033015, 033007 ]
+"309063" = [ 301120, 008041, 301122, 005001, 033035, 033015, 006001, 033035, 033015, 007007,
+ 033035, 033015, 011003, 033035, 033015, 011004, 033035, 033015, 033007 ]
+"309064" = [ 301120, 008041, 301122, 201131, 202129, 104002, 025069, 007004, 033035, 033015,
+ 013003, 033035, 033015, 202000, 201000, 104002, 002013, 012101, 033035, 033015,
+ 012103, 033035, 033015, 010009, 033035, 033015 ]
+"309065" = [ 301120, 008041, 301122, 005001, 033035, 033015, 006001, 033035, 033015, 007007,
+ 033035, 033015, 011003, 033035, 033015, 011004, 033035, 033015 ]
+"309066" = [ 301120, 008041, 301122, 008040, 201131, 202129, 025069, 007004, 013003, 202000,
+ 201000, 002013, 012101, 012103, 010009, 010007, 011002, 011001 ]
+"309070" = [ 001035, 001032, 001015, 001063, 301001, 301011, 301012, 301021, 207001, 010001,
+ 207000, 008086, 007030, 025031, 008021, 004014, 010004, 010051, 010009, 020010,
+ 013095, 128000, 031002, 113000, 031000, 008086, 007004, 011001, 011002, 012101,
+ 012102, 012103, 010009, 103000, 031000, 011021, 011022, 011005, 104000, 031000,
+ 008086, 007006, 011001, 011002, 105000, 031000, 008086, 007006, 012101, 012102,
+ 012103 ]
+"309071" = [ 301001, 002014, 002003, 301113, 301114, 301023, 007030, 007007, 103000, 031001,
+ 007009, 011001, 011002 ]
+"309072" = [ 301132, 107000, 031001, 003032, 003033, 002106, 102000, 031001, 003032, 012190,
+ 113000, 031001, 008021, 301011, 301013, 008021, 004026, 002134, 002135, 020143,
+ 103000, 031001, 003032, 033021, 012063, 114000, 031001, 008021, 301011, 301013,
+ 008021, 004026, 002134, 002135, 105000, 031001, 003034, 003031, 002106, 033021,
+ 012063 ]
+"309073" = [ 301132, 008021, 004026, 013095, 013109, 020013, 008092, 008093, 013095, 013109,
+ 020013, 008092, 008093, 303100, 117000, 031002, 007007, 301021, 033021, 012001,
+ 033021, 013002, 033021, 013003, 008092, 008093, 012001, 013002, 013003, 008092,
+ 008093, 010071, 027079 ]
+"310001" = [ 301042, 303031, 303032, 101026, 303025 ]
+"310002" = [ 301042, 303031, 303032, 101009, 303023 ]
+"310003" = [ 301042, 303031, 303032, 101006, 303023 ]
+"310004" = [ 301042, 303031, 303032, 101003, 303024 ]
+"310005" = [ 301042, 303031, 303033, 101000, 031001, 303025 ]
+"310006" = [ 301042, 303031, 303033, 101000, 031001, 303023 ]
+"310007" = [ 301042, 303031, 303033, 101000, 031001, 303024 ]
+"310008" = [ 310011, 101019, 310012, 002150, 025079, 025080, 033032, 014045 ]
+"310009" = [ 310011, 101015, 310012 ]
+"310010" = [ 310011, 101005, 310012 ]
+"310011" = [ 008070, 001033, 001034, 008070, 001033, 001034, 001007, 002048, 005040, 025075,
+ 201133, 005041, 201000, 005043, 025070, 033030, 033031, 004001, 004002, 004003,
+ 004004, 004005, 202131, 201138, 004006, 201000, 202000, 005001, 006001, 202126,
+ 007001, 202000, 007024, 005021, 007025, 005022, 033033, 002151, 012064, 002151,
+ 012064, 002151, 012064, 002151, 012064 ]
+"310012" = [ 002150, 025076, 025077, 025078, 033032, 201132, 202129, 012063, 202000, 201000
+ ]
+"310013" = [ 001007, 005040, 004001, 004002, 004003, 004004, 004005, 004006, 005001, 006001,
+ 007025, 005043, 025085, 201131, 202129, 002150, 008023, 008072, 014027, 008072,
+ 014027, 002150, 008023, 008072, 014027, 008072, 014027, 002150, 008023, 008072,
+ 014027, 008072, 014027, 202000, 201000, 201132, 202129, 002150, 008023, 008072,
+ 012063, 008072, 012063, 002150, 008023, 008072, 012063, 008072, 012063, 008023,
+ 008072, 012063, 008072, 012063, 002150, 008023, 008072, 012063, 008072, 012063,
+ 202000, 201000 ]
+"310014" = [ 301072, 303041, 304011 ]
+"310015" = [ 301072, 007024, 010002, 303041, 101003, 304032, 002152, 002024, 007004, 007004,
+ 013003, 101003, 304033 ]
+"310016" = [ 301072, 007024, 010002, 303041, 101012, 304032, 002152, 002024, 007004, 007004,
+ 013003, 101012, 304033 ]
+"310018" = [ 001007, 005040, 004001, 004043, 004004, 004005, 004006, 207002, 026030, 207000,
+ 005002, 006002, 033072, 007025, 005022, 207002, 015001, 207000, 008003, 207001,
+ 010004, 207000, 008003, 008003, 033042, 207001, 007004, 207000, 207002, 015001,
+ 207000, 008003, 207002, 020081, 207000, 020065, 008029, 207004, 015030, 207000,
+ 008075 ]
+"310019" = [ 001007, 002019, 301011, 301013, 301023, 007025, 008021, 007025, 008021, 007025,
+ 008021, 008029, 005040, 008075, 008003, 010004, 008003, 207002, 015001, 207000,
+ 033070, 015030, 207002, 020081, 207000, 008003, 033042, 007004, 207002, 015001,
+ 207000, 008003, 113021, 007004, 007004, 207002, 008021, 015005, 008021, 015005,
+ 033007, 207000, 008026, 101020, 025143, 008026, 008043, 109015, 007004, 008090,
+ 207006, 015008, 207000, 008090, 207002, 033007, 207000, 008043, 033071, 108008,
+ 202124, 201107, 002071, 201000, 202000, 207002, 020081, 207000 ]
+"310020" = [ 310022, 301011, 301013, 301021, 304034, 310021 ]
+"310021" = [ 108000, 031001, 201131, 202129, 007004, 007004, 202000, 201000, 015020, 010002
+ ]
+"310022" = [ 001007, 002019, 001033, 002172 ]
+"310023" = [ 301072, 030021, 030022, 008012, 007024, 007025, 010002, 101012, 304032, 105002,
+ 002152, 002024, 007004, 007004, 013003, 101012, 304033 ]
+"310024" = [ 301072, 030021, 030022, 008012, 007024, 007025, 010002, 101003, 304032, 105002,
+ 002152, 002024, 007004, 007004, 013003, 101003, 304033 ]
+"310025" = [ 001007, 008021, 004001, 004002, 004003, 004004, 004005, 201138, 202131, 004006,
+ 202000, 201000, 201132, 005041, 201000, 201129, 005043, 201000, 005002, 006002,
+ 013040, 020029, 104024, 005042, 012163, 021083, 021084, 115003, 004001, 004002,
+ 004003, 201142, 202131, 004026, 202000, 201000, 005001, 006001, 201138, 202129,
+ 007001, 202000, 201000, 008021, 004001, 004002, 004003, 004004, 004005, 005040,
+ 101003, 012070, 025054, 101004, 025055, 008007, 104028, 005002, 006002, 002111,
+ 005021 ]
+"310026" = [ 310022, 025060, 008021, 301011, 301012, 201138, 202131, 004006, 202000, 201000,
+ 033039, 033007, 304030, 304031, 002020, 001050, 202127, 304030, 202000, 304031,
+ 201133, 202131, 004016, 202000, 201000, 301021, 304030, 010035, 005021, 010036,
+ 113000, 031002, 301021, 005021, 108000, 031001, 002121, 007040, 015037, 008023,
+ 201125, 015037, 201000, 008023, 033007, 108000, 031002, 007007, 015036, 008023,
+ 201123, 015036, 201000, 008023, 033007, 116000, 031002, 007009, 010004, 012001,
+ 013001, 008023, 201120, 010004, 201000, 201122, 012001, 201000, 201123, 013001,
+ 201000, 008023, 033007, 008003, 007009, 010004, 008023, 201120, 010004, 201000,
+ 008023, 033007 ]
+"310027" = [ 301071, 301011, 301013, 301021, 030021, 030022, 010002, 304036, 002152, 002167,
+ 101011, 304035 ]
+"310028" = [ 301071, 301011, 301013, 301021, 030021, 030022, 010002, 304036, 002152, 002167,
+ 101011, 304037 ]
+"310029" = [ 110000, 031001, 201138, 202130, 007004, 007004, 202000, 201000, 015020, 010002,
+ 012101, 013098 ]
+"310030" = [ 310022, 301011, 301013, 301021, 304034, 310029 ]
+"310050" = [ 310051, 310052, 101000, 031002, 310053, 101004, 310054, 020010, 310052, 101015,
+ 310053, 310052, 101005, 310053 ]
+"310051" = [ 001007, 005040, 201133, 005041, 201000, 201132, 025070, 201000, 202126, 007001,
+ 202000, 007025, 005022, 102009, 002151, 012064 ]
+"310052" = [ 002019, 301011, 301012, 202131, 201138, 004006, 201000, 202000, 301021, 007024,
+ 005021, 005043 ]
+"310053" = [ 201134, 005042, 201000, 025076, 033032, 012163 ]
+"310054" = [ 201134, 005042, 201000, 025076, 033032, 201131, 202129, 102002, 008023, 014027,
+ 008023, 202000, 201000 ]
+"310055" = [ 310051, 310052, 102020, 025076, 025052, 101000, 031002, 025050 ]
+"310060" = [ 001007, 001033, 002019, 002020, 301011, 301012, 207003, 004006, 207000, 304030,
+ 301021, 007024, 005021, 007025, 005022, 008075, 201133, 005041, 201000, 005045,
+ 005043, 005040, 010001, 201129, 007002, 201000, 202127, 201125, 021166, 201000,
+ 202000, 008012, 020010, 020014, 002165, 033075, 107003, 008076, 006029, 006029,
+ 025140, 025141, 033076, 033077, 008076, 033078, 033003, 104000, 031002, 201133,
+ 005042, 201000, 014044 ]
+"310061" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 005041, 005043, 033079, 033080, 033078, 301021, 201129, 007002, 201000,
+ 007024, 005021, 007025, 005022, 025075, 111000, 031002, 005042, 202131, 002153,
+ 002154, 202000, 002104, 012066, 012163, 012158, 012159, 033081 ]
+"310062" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 201133, 005041, 005043, 201000, 008076, 033082, 301021, 201129, 007002,
+ 201000, 007024, 005021, 007025, 005022, 008072, 008029, 105000, 031002, 005042,
+ 002155, 033083, 014043, 015042 ]
+"310063" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 201133, 005041, 005043, 201000, 033082, 301021, 201129, 007002, 201000,
+ 007024, 005021, 007025, 005022, 008075, 008013, 008072, 033084, 007062, 033086,
+ 022043, 007062, 007062, 033086, 022043 ]
+"310064" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 201133, 005041, 005043, 201000, 033082, 301021, 201129, 007002, 201000,
+ 007024, 005021, 007025, 005022, 008075, 008029, 008046, 033085, 033086, 015049,
+ 033086, 102011, 002155, 015062 ]
+"310065" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 033082, 301021, 201129, 007002, 201000, 007024, 005021, 007025, 005022,
+ 008075, 033071, 033070, 020021, 015045, 015046, 008065, 033087, 008003, 010004,
+ 008003, 207002, 015001, 207000, 105012, 010040, 010004, 207003, 015005, 207000,
+ 008046, 107019, 010040, 010004, 008090, 207006, 015008, 207000, 008090 ]
+"310066" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 005040, 033082, 301021, 201129, 007002, 201000, 007024, 005021, 007025, 005022,
+ 008075, 020081, 207004, 015030, 207000, 020065, 015041, 033086, 033087, 033088,
+ 008003, 207001, 007004, 207000, 008003, 207002, 015001, 207000, 008003, 033042,
+ 207001, 007004, 207000, 207002, 015001, 207000, 008003, 001032, 207002, 015001,
+ 207000 ]
+"310067" = [ 001033, 001034, 025061, 025062, 001007, 002153, 001012, 201138, 002026, 002027,
+ 201000, 002028, 002029, 002161, 002164, 002023, 008012, 008013, 001124, 005001,
+ 006001, 004001, 004002, 004003, 004004, 004005, 004006, 004086, 011001, 011002,
+ 011003, 011004, 002162, 007004, 012001, 020014, 007024, 001023, 104000, 031001,
+ 002162, 007004, 012001, 020014, 113000, 031001, 004086, 002020, 001007, 002019,
+ 005042, 002153, 005040, 007024, 005021, 002162, 007004, 012001, 020014, 119000,
+ 031001, 004086, 004086, 005001, 006001, 011003, 011004, 011113, 025148, 103000,
+ 031001, 008023, 011003, 011004, 008023, 103000, 031001, 020111, 020112, 020114,
+ 001033, 008021, 011095, 011096, 007004, 008021, 011095, 011096, 007004, 008021,
+ 008086, 011095, 011096, 007004, 008086, 102004, 001032, 033007, 008092, 011003,
+ 011004, 007004, 008092, 033066, 020081, 020012, 020056, 117000, 031001, 008023,
+ 020016, 008092, 008003, 012001, 008003, 020016, 008092, 025149, 020016, 020014,
+ 013093, 013109, 040038, 008011, 014050, 008011, 008023 ]
+"310068" = [ 008070, 001033, 001034, 001007, 002019, 012064, 005040, 201136, 005041, 201000,
+ 005043, 301011, 301012, 201138, 202131, 004006, 202000, 201000, 005001, 006001,
+ 202126, 007001, 202000, 010007, 007024, 005021, 007025, 005022, 013040, 012101,
+ 201131, 202129, 011011, 202000, 201000, 201130, 202129, 011012, 202000, 201000,
+ 020029, 020010, 020014, 013162, 014050 ]
+"310069" = [ 005042, 201139, 002155, 201000, 025077, 025078, 033007, 201132, 202129, 012063,
+ 202000, 201000 ]
+"310070" = [ 310068, 101013, 310069 ]
+"310071" = [ 310068, 101015, 310069 ]
+"310072" = [ 310068, 101026, 310069 ]
+"310077" = [ 001033, 001034, 025061, 025062, 001007, 002153, 001012, 201138, 002026, 002027,
+ 201000, 002028, 002029, 002161, 002164, 002023, 008012, 008013, 001124, 005001,
+ 006001, 004001, 004002, 004003, 004004, 004005, 004006, 004086, 002162, 007004,
+ 011001, 011002, 011003, 011004, 012001, 020014, 007024, 001023, 104000, 031001,
+ 002162, 007004, 012001, 020014, 113000, 031001, 004086, 002020, 001007, 002019,
+ 005042, 002153, 005040, 007024, 005021, 002162, 007004, 012001, 020014, 119000,
+ 031001, 004086, 004086, 005001, 006001, 011003, 011004, 011113, 025148, 103000,
+ 031001, 008023, 011003, 011004, 008023, 103000, 031001, 020111, 020112, 020114,
+ 001033, 008021, 007004, 011095, 011096, 008021, 007004, 011095, 011096, 008021,
+ 008086, 007004, 011095, 011096, 008086, 102004, 001044, 033007, 008092, 007004,
+ 011003, 011004, 008092, 033066, 020081, 020012, 020056, 117000, 031001, 008023,
+ 020016, 008092, 008003, 012001, 008003, 020016, 008092, 025149, 020016, 020014,
+ 013093, 013109, 040038, 008011, 014050, 008011, 008023 ]
+"310078" = [ 001007, 001016, 002019, 002020, 001033, 001034, 301011, 301013, 005040, 201132,
+ 005041, 201000, 005043, 033079, 033080, 033078, 007002, 102003, 008097, 012164,
+ 117000, 031001, 005001, 006001, 007024, 005021, 007025, 005022, 109000, 031001,
+ 005042, 002153, 002154, 002104, 012066, 012163, 012158, 012159, 033094 ]
+"310080" = [ 001033, 001034, 001007, 002019, 005040, 025061, 201133, 005041, 201000, 301011,
+ 301012, 207003, 004006, 207000, 202126, 007001, 202000, 005063, 005064, 005066,
+ 005077, 006043, 006041, 006042, 008098, 012101, 008098, 012101, 008098, 012101,
+ 008098, 012101, 008098, 007074, 005076, 201124, 202127, 025084, 202000, 201000,
+ 033100, 033102, 033104, 033105, 113007, 005078, 005001, 006001, 007024, 005021,
+ 007025, 005022, 007073, 201132, 202129, 021166, 202000, 201000, 117003, 005042,
+ 202131, 002153, 002154, 202000, 025077, 025078, 033101, 033103, 002104, 201131,
+ 202136, 014045, 202000, 201000, 012158, 012159, 117002, 005042, 202131, 002153,
+ 002154, 202000, 025077, 025078, 033101, 033103, 002104, 201132, 202136, 014045,
+ 202000, 201000, 012158, 012159, 117003, 005042, 202131, 002153, 002154, 202000,
+ 025077, 025078, 033101, 033103, 002104, 201133, 202136, 014045, 202000, 201000,
+ 012158, 012159, 117003, 005042, 202131, 002153, 002154, 202000, 025077, 025078,
+ 033101, 033103, 002104, 201133, 202136, 014045, 202000, 201000, 012158, 012159,
+ 117002, 005042, 202131, 002153, 002154, 202000, 025077, 025078, 033101, 033103,
+ 002104, 201131, 202135, 014045, 202000, 201000, 012158, 012159 ]
+"310081" = [ 001033, 001034, 001007, 002019, 005040, 025061, 201133, 005041, 201000, 301011,
+ 301012, 207003, 004006, 207000, 202126, 007001, 202000, 005063, 005064, 005066,
+ 005077, 006043, 006041, 006042, 008098, 012101, 008098, 012101, 008098, 012101,
+ 008098, 012101, 008098, 007074, 005076, 201124, 202127, 025084, 202000, 201000,
+ 033095, 033097, 033106, 033099, 113008, 005078, 005001, 006001, 007024, 005021,
+ 007025, 005022, 007073, 201132, 202129, 021166, 202000, 201000, 117002, 005042,
+ 202131, 002153, 002154, 202000, 025077, 025078, 033096, 033098, 002104, 201131,
+ 202138, 014045, 202000, 201000, 012158, 012159, 117002, 005042, 202131, 002153,
+ 002154, 202000, 025077, 025078, 033096, 033098, 002104, 201132, 202138, 014045,
+ 202000, 201000, 012158, 012159, 117002, 005042, 202131, 002153, 002154, 202000,
+ 025077, 025078, 033096, 033098, 002104, 201132, 202138, 014045, 202000, 201000,
+ 012158, 012159, 117008, 005042, 202131, 002153, 002154, 202000, 025077, 025078,
+ 033096, 033098, 002104, 201131, 202137, 014045, 202000, 201000, 012158, 012159,
+ 117002, 005042, 202131, 002153, 002154, 202000, 025077, 025078, 033096, 033098,
+ 002104, 201132, 202137, 014045, 202000, 201000, 012158, 012159, 117004, 005042,
+ 202131, 002153, 002154, 202000, 025077, 025078, 033096, 033098, 002104, 201133,
+ 202137, 014045, 202000, 201000, 012158, 012159, 117001, 005042, 202131, 002153,
+ 002154, 202000, 025077, 025078, 033096, 033098, 002104, 201131, 202136, 014045,
+ 202000, 201000, 012158, 012159, 117005, 005042, 202131, 002153, 002154, 202000,
+ 025077, 025078, 033096, 033098, 002104, 201131, 202136, 014045, 202000, 201000,
+ 012158, 012159 ]
+"310082" = [ 008070, 001033, 001034, 001007, 002019, 005040, 025061, 201133, 005041, 201000,
+ 005043, 006042, 301011, 301012, 207003, 004006, 207000, 301021, 107002, 005080,
+ 201132, 202129, 021166, 202000, 201000, 007007, 202126, 007001, 202000, 007024,
+ 005021, 007025, 005022, 201124, 202127, 025084, 202000, 201000, 007073, 012070,
+ 012064, 008098, 012101, 008098, 033107, 033108, 033109, 118024, 005042, 104004,
+ 005079, 202130, 002154, 202000, 002104, 002153, 025077, 025078, 207002, 012063,
+ 207000, 207001, 033089, 033090, 207000, 033110 ]
+"310083" = [ 001033, 001034, 025060, 001007, 002019, 127012, 005040, 201130, 006034, 201000,
+ 005034, 301021, 008012, 301011, 301012, 004007, 008085, 003030, 002104, 003030,
+ 002104, 003029, 008075, 202129, 201131, 002111, 201000, 202000, 005021, 021062,
+ 021026, 021027, 033111 ]
+"310084" = [ 001033, 001034, 025060, 001007, 002019, 005040, 006034, 005034, 301021, 301011,
+ 301012, 004007, 014058, 033112, 117005, 008085, 008012, 003030, 002104, 003030,
+ 002104, 008075, 202129, 201131, 002111, 201000, 202000, 005021, 021062, 021026,
+ 021027, 025056 ]
+"310085" = [ 001007, 301005, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 202126, 007001, 202000, 033113, 105170,
+ 104100, 201137, 005042, 201000, 014046, 002019, 110007, 005060, 005061, 020083,
+ 106020, 005042, 008023, 014044, 008023, 014044, 008023, 008072, 020083, 008029,
+ 020083 ]
+"310086" = [ 001007, 301005, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 202126, 007001, 202000, 033113, 109004,
+ 025140, 201129, 025141, 201000, 040026, 040016, 101000, 031002, 040017, 002019,
+ 110007, 005060, 005061, 020083, 106020, 005042, 008023, 014044, 008023, 014044,
+ 008023, 008072, 020083, 008029, 020083 ]
+"310087" = [ 001007, 001031, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 202126, 007001, 202000, 040052, 040047,
+ 008065, 204004, 031021, 002019, 002019, 001030, 204000, 002019, 040046, 033116,
+ 033117, 040080, 040051, 008003, 021166, 022046, 010001, 008023, 010001, 008023,
+ 008003 ]
+"310088" = [ 310087, 040053, 102003, 008071, 025149, 106000, 031000, 101000, 031002, 040076,
+ 101000, 031002, 040075, 040067, 040066, 202126, 013098, 202000, 107101, 202131,
+ 201138, 007004, 201000, 202000, 012101, 013001 ]
+"310089" = [ 310087, 012083, 008043, 040044, 008043, 020056, 013109, 020056, 013109, 008003,
+ 109002, 020056, 020081, 202131, 201138, 020016, 201000, 202000, 012101, 020131
+ ]
+"310090" = [ 310087, 008003, 040067, 040066, 102012, 005042, 014050, 012001, 202131, 201138,
+ 010004, 201000, 202000, 008003, 012083, 011012, 008043, 040044, 008043 ]
+"310091" = [ 310087, 104003, 008043, 102007, 007004, 015021 ]
+"310092" = [ 001007, 025060, 001031, 002019, 002020, 004001, 004002, 004003, 004004, 004005,
+ 202131, 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025,
+ 005022, 005043, 005040, 201133, 005041, 201000, 202126, 010007, 202000 ]
+"310093" = [ 310092, 008046, 015021, 040056, 040058, 040059, 040060, 040057, 103019, 040061,
+ 040062, 040063, 101190, 040065 ]
+"310094" = [ 310092, 008046, 015021, 040056, 040058, 040059, 040060, 040057, 103041, 040061,
+ 040062, 040063, 102021, 101041, 040065 ]
+"310095" = [ 310092, 008046, 040068, 010073, 015007, 012169, 102005, 007004, 015007 ]
+"310096" = [ 301005, 001007, 002019, 002020, 025060, 301011, 301013, 005040, 005001, 006001,
+ 202126, 007001, 202000, 007024, 005021, 007025, 005022, 033028 ]
+"310097" = [ 310096, 008011, 033007, 008011, 008072, 008029 ]
+"310098" = [ 310096, 013094, 020016, 020014, 008093, 013094, 020016, 020014, 008093 ]
+"310099" = [ 310096, 025144, 025145, 020139, 008029, 120002, 008002, 013094, 020016, 012001,
+ 202131, 201139, 020131, 201000, 202000, 020014, 008093, 013094, 020016, 202131,
+ 201139, 020131, 201000, 202000, 020014, 008093 ]
+"310100" = [ 310096, 202129, 201132, 013060, 201000, 202000, 033118, 033119 ]
+"310191" = [ 001007, 001033, 001034, 002019, 002020, 301011, 301012, 207003, 004006, 207000,
+ 007024, 005021, 007025, 005022, 102002, 008076, 301021, 201131, 005041, 201000,
+ 005045, 201133, 005043, 201000, 202126, 201132, 007001, 201000, 202000, 025182,
+ 002165, 108002, 008076, 006029, 006029, 025140, 025141, 033076, 033077, 025187,
+ 008076, 105000, 031002, 201133, 005042, 201000, 014044, 014049 ]
+"311001" = [ 301051, 007002, 012001, 011001, 011002, 011031, 011032, 011033, 020041 ]
+"311002" = [ 301065, 301066, 311003, 311004 ]
+"311003" = [ 010070, 011001, 011002, 012001, 013002 ]
+"311004" = [ 101000, 031000, 011034, 101000, 031000, 011035, 101000, 031000, 011075, 101000,
+ 031000, 011076, 101000, 031000, 033025, 101000, 031000, 033026 ]
+"311005" = [ 001008, 001023, 301021, 301011, 301013, 007010, 008009, 011001, 011002, 011031,
+ 011036, 012101, 033025 ]
+"311006" = [ 007010, 011001, 011002, 002064, 012101, 012103 ]
+"311007" = [ 007010, 301021, 011001, 011002, 002064, 012101, 012103 ]
+"311008" = [ 001008, 301011, 301013, 301021, 008004, 101000, 031001, 311006 ]
+"311009" = [ 001008, 301011, 301013, 301021, 008004, 101000, 031001, 311007 ]
+"311010" = [ 001008, 001023, 001006, 001110, 001111, 001112, 204002, 031021, 301011, 301013,
+ 301021, 007010, 010053, 008009, 011001, 011002, 002064, 011100, 011101, 011102,
+ 011103, 011104, 012101, 002170, 201144, 202133, 013002, 202000, 201000, 201135,
+ 202130, 013003, 202000, 201000, 101000, 031000, 012103, 033026, 101000, 031000,
+ 020042, 103000, 031000, 020043, 020044, 020045, 101000, 031000, 033025, 103000,
+ 031001, 011075, 011076, 011039, 102000, 031000, 011037, 011077, 103000, 031000,
+ 011034, 011035, 011036, 204000, 119000, 031001, 301011, 301013, 301021, 007007,
+ 011105, 204007, 031021, 011076, 011075, 204000, 011106, 011107, 011108, 011109,
+ 012101, 011001, 201130, 011084, 201000 ]
+"311011" = [ 001023, 008004, 301011, 301013, 005002, 006002, 007004, 011001, 011002, 012101,
+ 106000, 031001, 008046, 201139, 202126, 015026, 202000, 201000, 106000, 031001,
+ 008046, 201138, 202130, 015026, 202000, 201000, 015052, 015053, 015054, 015055,
+ 007004, 007004, 013099, 013100, 013101 ]
+"311012" = [ 301150, 001008, 001111, 001112, 301011, 301013, 301021, 008004, 110000, 031002,
+ 301011, 301013, 311007, 201144, 202133, 013002, 202000, 201000, 013003, 033026
+ ]
+"311013" = [ 301150, 001008, 001095, 301011, 301013, 301021, 001013, 008009, 007010, 033003,
+ 011001, 011002, 012101, 002170, 201144, 202133, 013002, 202000, 201000, 201135,
+ 202130, 013003, 202000, 201000, 011073, 011075 ]
+"312001" = [ 301043, 304001 ]
+"312002" = [ 301043, 304002 ]
+"312003" = [ 301042, 304003 ]
+"312004" = [ 301042, 304004 ]
+"312005" = [ 301042, 020014 ]
+"312006" = [ 301044, 304005 ]
+"312007" = [ 301042, 304006 ]
+"312010" = [ 001007, 005040, 002021, 005041, 004001, 004043 ]
+"312011" = [ 202131, 201149, 004006, 201000, 202126, 010002, 202000, 005043, 005053 ]
+"312012" = [ 202129, 201132, 101019, 012063, 201000, 202000 ]
+"312013" = [ 005042, 202129, 201135, 012063, 201000, 202000 ]
+"312014" = [ 312010, 312011, 105056, 301023, 005042, 005052, 312012, 312013 ]
+"312015" = [ 109011, 301023, 005042, 005052, 202129, 201132, 101004, 012063, 202000, 201000
+ ]
+"312016" = [ 312010, 312011, 312015 ]
+"312017" = [ 109008, 301023, 005042, 005052, 202129, 201132, 101003, 012063, 202000, 201000
+ ]
+"312018" = [ 312010, 312011, 312017 ]
+"312019" = [ 301047, 301048, 015015, 029002, 021076, 106012, 201129, 006030, 201000, 102012,
+ 005030, 021075, 021066 ]
+"312020" = [ 301047, 301048, 015015, 029002, 021076, 104012, 006030, 102012, 005030, 021075,
+ 021066 ]
+"312021" = [ 301047, 101003, 301049, 011012, 011011, 021067 ]
+"312022" = [ 301047, 008022, 011012, 011050, 022070, 022026, 312041, 010050, 021068, 021071,
+ 021072, 021073, 312042, 021062, 015011 ]
+"312023" = [ 301047, 103003, 008022, 012061, 022050, 021069, 021085 ]
+"312024" = [ 312020, 008060, 008022, 008060, 008022, 025014, 022101, 022097, 022098, 022099,
+ 022100 ]
+"312025" = [ 312019, 008060, 008022, 008060, 008022, 025014, 022101, 022097, 022098, 022099,
+ 022100 ]
+"312026" = [ 301046, 301011, 301013, 301023, 312031, 101004, 312030, 021110, 301023, 321027,
+ 021111, 301023, 321027, 021112, 301023, 321027, 021113, 301023, 321027 ]
+"312027" = [ 301047, 105009, 301023, 007021, 012061, 007021, 012061, 021085, 021070 ]
+"312028" = [ 301046, 301011, 301013, 301023, 008025, 201136, 004006, 201000, 312031, 312032,
+ 101004, 312030, 101002, 312033, 021110, 301023, 321028, 021111, 301023, 321028,
+ 021112, 301023, 321028, 021113, 301023, 321028 ]
+"312029" = [ 301046, 301011, 301013, 301023, 008025, 201136, 004006, 201000, 005034, 201129,
+ 006034, 201000, 033055, 011081, 011082, 021101, 021102, 021103, 312032, 101004,
+ 312030, 101002, 312033, 021110, 301023, 321028, 021111, 301023, 321028, 021112,
+ 301023, 321028, 021113, 301023, 321028 ]
+"312030" = [ 201130, 202129, 011012, 202000, 201000, 011052, 201135, 202130, 011011, 202000,
+ 201000, 011053, 021104 ]
+"312031" = [ 005034, 006034, 021109, 011081, 011082, 021101, 021102, 021103 ]
+"312032" = [ 021120, 021121, 013055, 021122 ]
+"312033" = [ 002104, 008022, 012063, 012065 ]
+"312034" = [ 301046, 301011, 301013, 301023, 008025, 201136, 004006, 201000, 312031, 312032,
+ 101004, 312030, 101002, 312033, 103018, 021110, 301023, 321028 ]
+"312035" = [ 001007, 001031, 002048, 202124, 002026, 002027, 202000, 005040, 004001, 004002,
+ 004003, 004004, 004005, 004006, 005002, 006002, 005034, 006031, 201129, 006034,
+ 201000, 005021, 002111, 012063, 021095, 021096, 021097, 021030, 021105, 033056
+ ]
+"312041" = [ 201141, 202130, 007001, 201000, 202000 ]
+"312042" = [ 021077, 021078, 021079, 021080, 021081, 021082 ]
+"312045" = [ 001007, 002019, 001096, 025061, 005040, 301011, 301013, 301021, 007002, 012180,
+ 012181, 012182, 012183, 012184, 012185, 002174, 021086, 012186, 021087, 012187,
+ 033043 ]
+"312050" = [ 001007, 002019, 001096, 025061, 005040, 301011, 301013, 301021, 007025, 005022,
+ 010080, 027080, 008003, 007004, 013093, 008003, 201131, 202129, 007004, 007004,
+ 202000, 201000, 013095 ]
+"312051" = [ 001007, 002019, 001096, 025061, 005040, 008075, 301011, 301013, 301021, 001012,
+ 201131, 001013, 201000, 010032, 010033, 010034, 007002, 008012, 025110, 025111,
+ 025102, 002104, 025103, 025104, 025105, 025106, 025107, 025108, 002111, 002121,
+ 002026, 002027, 021130, 021131, 021132, 021133, 021064, 025014, 021134, 107018,
+ 005030, 105024, 201130, 006030, 201000, 021135, 021136, 033044 ]
+"312052" = [ 001007, 002019, 001096, 025061, 005040, 025120, 025121, 025124, 025125, 025122,
+ 025123, 301011, 301013, 301021, 007002, 002119, 033047, 010081, 010082, 010083,
+ 010084, 002116, 002117, 002118, 002156, 002157, 014055, 022150, 022151, 022152,
+ 022153, 022154, 022155, 022156, 022157, 022158, 022159, 021137, 021138, 021139,
+ 021140, 021141, 021142, 010085, 010086, 010087, 010088, 010089, 010090, 010091,
+ 010092, 010093, 011002, 025126, 025127, 025128, 025129, 025130, 025131, 025132,
+ 025133, 025134, 025135, 025136, 025137, 013096, 013097, 011095, 011096, 012188,
+ 012189, 002158, 002159, 033052, 033053, 021143, 021144 ]
+"312053" = [ 001007, 002019, 001096, 025061, 005040, 008075, 301011, 301013, 301021, 001012,
+ 201131, 001013, 201000, 010032, 010033, 010034, 007002, 008012, 025110, 025111,
+ 025102, 002104, 025103, 025104, 025105, 025106, 025107, 025108, 011001, 011002,
+ 022160, 025138, 201130, 202129, 022021, 202000, 201000, 033048, 033049, 002026,
+ 002027, 021130, 021131, 021132, 021133, 025014, 106036, 005030, 104024, 201130,
+ 006030, 201000, 022161, 033044 ]
+"312055" = [ 005033, 005040, 006034, 010095, 021157 ]
+"312056" = [ 025060, 001032, 011082, 011081, 020095, 020096, 021155, 201133, 021101, 021102,
+ 201000 ]
+"312057" = [ 201130, 202129, 011012, 202000, 201000, 201131, 202129, 011011, 202000, 201000,
+ 021156, 021104 ]
+"312058" = [ 301125, 301011, 301013, 301021, 312055, 021150, 101003, 321030 ]
+"312059" = [ 312056, 101000, 031001, 312057 ]
+"312060" = [ 025060, 025062, 040001, 040002, 021062, 021151, 021152, 021153, 021154, 021062,
+ 021088, 040003, 040004, 040005, 040006, 040007, 020065, 040008, 040009, 040010
+ ]
+"312061" = [ 312058, 312060, 312059 ]
+"312062" = [ 001007, 002019, 301011, 301013, 301021, 020065, 008023, 020065, 008023 ]
+"312070" = [ 001007, 002019, 001144, 001124, 030010, 301011, 301013, 301021, 007012, 015012,
+ 012165, 012166, 012167, 012168, 027010, 028010, 002099, 013048, 025081, 025082,
+ 025083, 025084, 012080, 012081, 012082, 025174, 033028 ]
+"312071" = [ 001007, 002019, 002139, 001096, 001040, 025061, 005040, 005044, 008075, 008077,
+ 004001, 004002, 004003, 004004, 004005, 004006, 005001, 006001, 010081, 022156,
+ 022142, 101020, 022149, 022143, 022144, 021137, 101020, 021181, 021138, 021180,
+ 021177, 021178, 021179, 010079, 010085, 010086, 010087, 010089, 010090, 010091,
+ 010092, 010093, 011097, 021093, 101020, 021182, 033053, 022151, 022145, 022148,
+ 022146, 022147, 025126, 025128, 025127, 021176, 025132, 025133, 025182, 025183,
+ 025180, 025184, 025181, 033080 ]
+"313009" = [ 021001, 101000, 031001, 021001 ]
+"313010" = [ 021036, 101000, 031001, 021036 ]
+"313031" = [ 006002, 006012, 101000, 031002, 030001 ]
+"313032" = [ 005002, 005012, 101000, 031002, 313031 ]
+"313041" = [ 006002, 110000, 031001, 104000, 031001, 006012, 101000, 031012, 030001, 006012,
+ 101000, 031001, 030001 ]
+"313042" = [ 005002, 005012, 101000, 031002, 313041 ]
+"313043" = [ 006002, 005002, 005012, 112000, 031001, 110000, 031001, 104000, 031001, 006012,
+ 101000, 031011, 030001, 006012, 101000, 031001, 030001 ]
+"315001" = [ 001011, 301011, 301012, 301023, 306001 ]
+"315002" = [ 001011, 301011, 301012, 301023, 306004 ]
+"315003" = [ 001087, 001085, 001086, 002036, 002148, 002149, 022055, 022056, 022067, 301011,
+ 301012, 301021, 008080, 033050, 109000, 031002, 007065, 008080, 033050, 022045,
+ 008080, 033050, 022064, 008080, 033050 ]
+"315004" = [ 001079, 001011, 001103, 001087, 001019, 001080, 005036, 001036, 001013, 001012,
+ 301011, 301012, 301021, 007032, 007033, 002002, 011002, 011001, 007032, 007033,
+ 012101, 012103, 007032, 007033, 302021, 002031, 002030, 022005, 022032, 022063,
+ 008080, 033050, 022178, 022177, 022067, 008041, 026021, 026022, 026023, 022068,
+ 025061, 008041, 008080, 002171, 302090, 002171, 002032, 315005 ]
+"315005" = [ 106000, 031002, 007063, 008080, 033050, 022043, 008080, 033050 ]
+"315007" = [ 301003, 001019, 001103, 001087, 001036, 001115, 001080, 005036, 301011, 301012,
+ 301021, 001079, 001023, 022063, 101000, 031000, 302001, 101000, 031000, 302021,
+ 101000, 031000, 302052, 101000, 031000, 302059, 022067, 002171, 302090, 306033,
+ 306034, 002171, 022067, 002038, 022067, 022068, 002171, 002033, 002032, 022056,
+ 003011, 306035, 107000, 031000, 002032, 003010, 002031, 002040, 022056, 003011,
+ 306036, 104000, 031000, 002032, 003012, 003011, 306037 ]
+"315008" = [ 301126, 306038, 101000, 031000, 302091, 101000, 031000, 302082, 101000, 031000,
+ 306039, 101000, 031000, 306040, 102000, 031000, 002005, 306041, 102000, 031000,
+ 002005, 306004, 101000, 031000, 306005 ]
+"315009" = [ 001087, 001019, 002149, 008021, 301011, 301012, 301021, 208016, 001051, 208000,
+ 002148, 001012, 001014, 033022, 033023, 033027, 025026, 002034, 022060, 007070,
+ 002190, 008021, 301011, 301012, 002005, 022043, 002033, 022059, 008029, 013115,
+ 103000, 031000, 002005, 306004, 002005, 010004, 010051, 102000, 031000, 007033,
+ 012101, 101000, 031000, 306042, 101000, 031000, 306039 ]
+"315010" = [ 112000, 031001, 201144, 202133, 022080, 022096, 022069, 202000, 201000, 042011,
+ 042012, 042013, 042014, 042015 ]
+"315011" = [ 301150, 001087, 001036, 001085, 001086, 003001, 208032, 001079, 208000, 301011,
+ 301012, 301021, 001012, 001014, 011104, 103000, 031000, 007031, 306038, 012161,
+ 101000, 031000, 306034, 101000, 031000, 306039, 101000, 031000, 306033, 101000,
+ 031000, 306041, 101000, 031000, 306004, 101000, 031000, 306005, 105000, 031000,
+ 041001, 008043, 015028, 008043, 013080, 104000, 031000, 041005, 041003, 022188,
+ 041002, 101000, 031000, 306040, 104000, 031000, 008021, 004025, 014017, 014018
+ ]
+"315012" = [ 301150, 201129, 001087, 201000, 001019, 001036, 002148, 001085, 001086, 008021,
+ 301011, 301013, 301021, 011104, 002169, 011002, 011001, 002169, 022032, 022005,
+ 301011, 301013, 008021, 004025, 301021, 022031, 022004, 008021, 005068, 001079,
+ 126000, 031001, 022056, 123000, 031002, 301011, 301013, 301021, 008080, 033050,
+ 007062, 008080, 033050, 022065, 008080, 033050, 022045, 008080, 033050, 022066,
+ 008080, 033050, 022064, 008080, 033050, 042016, 008080, 033050 ]
+"315013" = [ 301150, 001087, 208032, 001019, 208000, 003001, 022067, 001051, 002148, 112000,
+ 031001, 008021, 301011, 301012, 301021, 001012, 001014, 033022, 033023, 033027,
+ 007063, 022045, 008021, 107000, 031001, 301011, 301012, 301021, 001079, 001023,
+ 022056, 306035 ]
+"315023" = [ 301150, 201129, 001087, 201000, 208032, 001019, 208000, 003001, 022067, 001051,
+ 002148, 112000, 031001, 008021, 301011, 301012, 301021, 001012, 001014, 033022,
+ 033023, 033027, 007063, 022045, 008021, 107000, 031001, 301011, 301012, 301021,
+ 001079, 001023, 022056, 306035 ]
+"316001" = [ 301011, 004004, 301023, 001021, 002041, 019001, 010051, 019002, 019003, 019004
+ ]
+"316002" = [ 008021, 004001, 004002, 004003, 004004, 004005, 001033, 008021, 004001, 004002,
+ 004003, 004004, 004005, 007002, 007002 ]
+"316003" = [ 110000, 031001, 008011, 008007, 104000, 031001, 005002, 006002, 010002, 011002,
+ 008007, 008011 ]
+"316004" = [ 111000, 031001, 008011, 008007, 007002, 007002, 102000, 031001, 005002, 006002,
+ 011031, 008007, 008011 ]
+"316005" = [ 108000, 031001, 008005, 008007, 005002, 006002, 001026, 019001, 008007, 008005
+ ]
+"316006" = [ 112000, 031001, 008011, 008007, 007002, 007002, 102000, 031001, 005002, 006002,
+ 020011, 020012, 008007, 008011 ]
+"316007" = [ 110000, 031001, 008011, 008007, 104000, 031001, 005002, 006002, 019005, 019006,
+ 008007, 008011 ]
+"316008" = [ 111000, 031001, 008001, 008007, 008023, 103000, 031001, 005002, 006002, 010002,
+ 008023, 008007, 008001 ]
+"316009" = [ 111000, 031001, 008011, 008007, 007002, 007002, 102000, 031001, 005002, 006002,
+ 020041, 008007, 008011 ]
+"316010" = [ 107000, 031001, 008011, 008007, 001022, 005002, 006002, 008007, 008011 ]
+"316011" = [ 117000, 031001, 008011, 001022, 008007, 102000, 031001, 005002, 006002, 008021,
+ 004001, 004002, 004003, 004004, 004005, 020090, 008021, 008007, 008011 ]
+"316020" = [ 001033, 001025, 001027, 301011, 301012 ]
+"316021" = [ 301023, 002041, 019001, 019007, 019005, 019006, 019008, 008005, 010004, 008005,
+ 010004, 019007, 008005, 008021, 004075, 011040, 019007, 105004, 005021, 005021,
+ 102002, 019003, 019004 ]
+"316022" = [ 001032, 002041, 019001, 019010, 118000, 031001, 008021, 004014, 008005, 301023,
+ 019005, 019006, 010004, 011041, 008021, 004075, 011040, 019008, 105004, 005021,
+ 005021, 102002, 019003, 019004 ]
+"316026" = [ 316020, 316021 ]
+"316027" = [ 316020, 316022 ]
+"316030" = [ 301014, 001037, 010064, 008019, 001062, 008019, 001065, 008019, 001062, 008019
+ ]
+"316031" = [ 008021, 301011, 301012, 301027, 019005, 019006, 020028, 008021 ]
+"316032" = [ 008021, 301011, 301012, 301027, 008021 ]
+"316033" = [ 008021, 301011, 301012, 101000, 031001, 301027, 008021 ]
+"316034" = [ 008079, 316030, 008011, 001022, 008007, 301023, 008007, 020090, 316031, 101000,
+ 031000, 316032, 101000, 031001, 316033, 008011, 008079 ]
+"316035" = [ 008079, 316030, 008011, 020023, 020021, 020008, 316031, 008011, 008079 ]
+"316036" = [ 008079, 316030, 008011, 001027, 316031, 101000, 031000, 316032, 101000, 031001,
+ 316033, 008011, 008079 ]
+"316037" = [ 008079, 316030, 008011, 011031, 316031, 008011, 008079 ]
+"316038" = [ 008079, 316030, 008011, 020041, 020021, 316031, 008011, 008079 ]
+"316039" = [ 008079, 316030, 008011, 020024, 316031, 008011, 008079 ]
+"316040" = [ 316030, 008079, 301014, 001037, 010064, 008079 ]
+"316050" = [ 301001, 301011, 301012, 002160, 008005, 005002, 006002, 008005, 019100, 019005,
+ 019006, 019101, 019102, 019103, 019104, 019105 ]
+"316052" = [ 301005, 301011, 301012, 001007, 025150, 122000, 031001, 001027, 019150, 019106,
+ 008005, 005002, 006002, 008005, 019107, 019005, 019006, 019108, 019109, 019110,
+ 019111, 019112, 019113, 019114, 019115, 019116, 019117, 019118, 019119 ]
+"316060" = [ 301011, 301012, 005002, 006002, 019005, 019006, 005002, 006002, 005002, 006002,
+ 004074, 020048, 011041, 013055 ]
+"316061" = [ 301011, 301012, 005002, 006002, 019005, 019006, 102000, 031001, 005002, 006002,
+ 102000, 031001, 005002, 006002, 004074, 020048, 011041, 013055 ]
+"316071" = [ 301014, 101000, 031002, 316075, 101000, 031002, 316076 ]
+"316072" = [ 301014, 101000, 031002, 316077, 101000, 031002, 316078, 101000, 031002, 316079
+ ]
+"316073" = [ 301014, 101000, 031002, 316080, 101000, 031002, 316081 ]
+"316074" = [ 001039, 008021, 301014, 301027, 008021 ]
+"316075" = [ 008079, 008041, 316074, 020006, 033042, 020013, 033042, 020001, 020025, 020026,
+ 008041, 008079 ]
+"316076" = [ 008079, 008041, 316074, 020006, 020025, 020026, 008041, 008079 ]
+"316077" = [ 008079, 008011, 316074, 011031, 008011, 008079 ]
+"316078" = [ 008079, 008041, 316074, 033042, 011012, 008041, 008079 ]
+"316079" = [ 008079, 008011, 316074, 020023, 020024, 008011, 008079 ]
+"316080" = [ 008079, 008011, 316074, 020041, 008011, 008079 ]
+"316081" = [ 008079, 008041, 316074, 008041, 008079 ]
+"316082" = [ 001033, 001034, 001032, 001025, 001027, 001090, 001091, 001092, 301011, 301012,
+ 008005, 301023, 008005, 301023, 010051, 008005, 301023, 011012, 107003, 019003,
+ 105004, 005021, 005021, 201131, 019004, 201000, 116000, 031001, 008021, 004024,
+ 008005, 301023, 010051, 008005, 301023, 011012, 107003, 019003, 105004, 005021,
+ 005021, 201131, 019004, 201000 ]
+"318001" = [ 301025, 024011 ]
+"318003" = [ 301026, 024005, 024004, 024021 ]
+"318004" = [ 301025, 004023, 013011, 024005, 024004, 024022 ]
+"321001" = [ 002101, 002114, 002105, 002106, 002107, 002121 ]
+"321003" = [ 021051, 021014, 021017, 021030 ]
+"321004" = [ 301031, 002003, 101000, 031001, 321003 ]
+"321005" = [ 025004, 002121, 002122, 002123, 002124, 002125, 002126, 002127, 002128, 002129,
+ 002130, 002131 ]
+"321006" = [ 025001, 025002, 025003, 025005 ]
+"321007" = [ 025009, 025010, 025011, 025012, 025013, 025015, 025016, 025017 ]
+"321008" = [ 025006, 025007, 025008 ]
+"321009" = [ 025018, 025019 ]
+"321010" = [ 002101, 007002, 002102, 002103, 002104, 002105, 002106, 002107, 002108, 002109,
+ 002110, 002132, 002133 ]
+"321011" = [ 030031, 030032, 029002 ]
+"321012" = [ 101000, 031001, 002135 ]
+"321021" = [ 002003, 002101, 201130, 002106, 201000, 201132, 202130, 002121, 202000, 201000,
+ 201133, 202129, 025001, 202000, 201000 ]
+"321022" = [ 007007, 204001, 031021, 011001, 204000, 011002, 204001, 031021, 011006, 204000,
+ 021030 ]
+"321023" = [ 007007, 021091, 021030, 202129, 021014, 201129, 021017, 202000, 201000 ]
+"321024" = [ 007007, 204001, 031021, 012007, 011006, 204000, 021030 ]
+"321025" = [ 007007, 021091, 021030, 202129, 021014, 201129, 021017, 202000, 201000, 021092,
+ 021030, 025092, 201129, 202129, 021017, 202000, 201000 ]
+"321026" = [ 007007, 204001, 031021, 012007, 025091, 011071, 011072, 011073, 011074, 204000
+ ]
+"321027" = [ 021118, 202129, 201132, 002112, 201000, 201131, 002111, 201000, 202000, 002104,
+ 021105, 021106, 021107, 021114, 021115, 021116, 008018, 021117 ]
+"321028" = [ 021118, 202129, 201132, 002112, 201000, 201131, 002111, 201000, 202000, 002104,
+ 021123, 021106, 021107, 021114, 021115, 021116, 008018, 021117 ]
+"321030" = [ 008085, 202129, 201131, 002111, 201000, 202000, 002134, 021062, 021063, 021158,
+ 021159, 021160, 021161, 021162, 021163, 021164, 021165, 021166 ]
+"321031" = [ 001007, 002019, 001033, 001034, 301011, 301013, 301021, 010033, 008043, 025139,
+ 002153, 106000, 031002, 007071, 021007, 021008, 021009, 021010, 033003 ]
+"322001" = [ 310022, 301011, 301013, 301021, 005041, 005043, 027080, 005022, 013040, 020010,
+ 033085, 033115, 105002, 008099, 007024, 007025, 007075, 007076, 106000, 031001,
+ 002071, 008043, 015024, 008043, 015024, 015042, 224000, 236000, 101000, 031002,
+ 031031, 001033, 001032, 008023, 101000, 031002, 224255 ]
+"322028" = [ 001007, 002019, 004001, 004002, 004003, 004004, 004005, 004006, 005001, 006001,
+ 027001, 028001, 027001, 028001, 027001, 028001, 027001, 028001, 010001, 014019,
+ 007025, 010080, 005023, 020010, 008003, 007004, 014026, 020014, 013093, 105000,
+ 031001, 007004, 007004, 008043, 008044, 015021 ]
+"340001" = [ 001007, 001031, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 201132, 025070, 201000, 202126, 007001,
+ 202000, 033060, 033061, 033062, 033063, 033064, 033065, 101010, 340002, 101087,
+ 340003, 002019, 025051, 101007, 340004 ]
+"340002" = [ 025140, 025141, 025142 ]
+"340003" = [ 104100, 201136, 005042, 201000, 014046 ]
+"340004" = [ 005060, 005061, 025085, 105006, 005042, 025142, 014047, 025142, 014048 ]
+"340005" = [ 001007, 002019, 001096, 025061, 005044, 005040, 001030, 004001, 004002, 004003,
+ 004004, 004005, 004007, 005001, 006001, 008029, 008074, 008077, 040011, 025097,
+ 025095, 025098, 025099, 021144, 025096, 040012, 040013, 021169, 022151, 022162,
+ 022163, 025160, 025133, 022156, 022164, 022165, 022166, 021137, 021138, 022167,
+ 021139, 021118, 021145, 021146, 021147, 022168, 022169, 022170, 025161, 025162,
+ 022171, 022172, 022173, 022174, 021170, 021171, 022175, 021172, 021118, 021173,
+ 021174, 021175, 002153, 012063, 002153, 012063, 002153, 012063, 013090, 013091,
+ 007002, 011097, 011098, 007002, 011095, 011096, 010096, 010081, 010082, 010083,
+ 010101, 025132, 025163, 025126, 025128, 025164, 010085, 010097, 010086, 010087,
+ 010092, 010088, 010089, 010098, 010099, 010090, 010100, 010093, 025127, 040014
+ ]
+"340007" = [ 001007, 001031, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 201132, 025070, 201000, 202126, 007001,
+ 202000, 103003, 025140, 025141, 033060, 033061, 033062, 033063, 033064, 033065,
+ 040020, 101010, 340002, 101087, 340003, 002019, 025051, 101007, 340004, 020081,
+ 008029, 020083, 008029, 040018, 040019, 040021, 040022 ]
+"340008" = [ 001007, 001031, 002019, 002020, 004001, 004002, 004003, 004004, 004005, 202131,
+ 201138, 004006, 201000, 202000, 005001, 006001, 007024, 005021, 007025, 005022,
+ 005043, 005040, 201133, 005041, 201000, 201132, 025070, 201000, 202126, 007001,
+ 202000, 103003, 025140, 025141, 033060, 033061, 033062, 033063, 033064, 033065,
+ 040020, 101010, 340002, 104000, 031002, 201136, 005042, 201000, 014046, 108003,
+ 025140, 025141, 040026, 040016, 025062, 101000, 031002, 040017, 002019, 025051,
+ 101007, 340004, 020081, 008029, 020083, 008029, 040018, 040019, 040021, 040022
+ ]
+"340009" = [ 001007, 001031, 002019, 002020, 301011, 301013, 005040, 201136, 005041, 201000,
+ 025071, 005001, 005001, 006001, 006001, 107064, 106032, 008012, 008013, 008065,
+ 008072, 013039, 040015 ]
+"340010" = [ 001007, 002019, 001096, 025061, 005044, 005040, 001030, 004001, 004002, 004003,
+ 004004, 004005, 004007, 005001, 006001, 008029, 008074, 008077, 040011, 025097,
+ 025095, 025098, 025099, 021144, 025096, 040012, 040013, 021169, 040023, 040024,
+ 040025, 022151, 022162, 022163, 025160, 025133, 022156, 022164, 022165, 022166,
+ 021137, 021138, 022167, 021139, 021118, 021145, 021146, 021147, 022168, 022169,
+ 022170, 025161, 025162, 022171, 022172, 022173, 022174, 021170, 021171, 022175,
+ 021172, 021118, 021173, 021174, 021175, 002153, 012063, 002153, 012063, 002153,
+ 012063, 013090, 013091, 007002, 011097, 011098, 007002, 011095, 011096, 010096,
+ 010081, 010082, 010083, 010101, 025132, 025163, 025126, 025128, 025164, 010085,
+ 010097, 010086, 010087, 010092, 010088, 010089, 010098, 010099, 010090, 010100,
+ 010093, 025127, 040014, 010102 ]
+"340011" = [ 001007, 002019, 001096, 025061, 005044, 005040, 001030, 004001, 004002, 004003,
+ 004004, 004005, 004007, 005001, 006001, 008029, 008077, 040011, 025097, 025112,
+ 025113, 021148, 021169, 040024, 040025, 002153, 022189, 022191, 022130, 025167,
+ 025166, 022190, 022131, 022132, 022133, 021183, 021184, 022134, 021185, 021118,
+ 021186, 021187, 021188, 002153, 012063, 002153, 012063, 013090, 013160, 007002,
+ 011097, 007002, 011095, 011096, 010096, 010081, 010082, 010083, 010101, 002153,
+ 025165, 025126, 025128, 025164, 010085, 010086, 010087, 010092, 010088, 010089,
+ 010098, 010099, 010090, 010100, 010093, 025127, 040014, 010102 ]
+"340012" = [ 001007, 002019, 008091, 005001, 006001, 007002, 005063, 005064, 005066, 005041,
+ 005067, 301011, 301012, 004007, 008091, 005001, 006001, 107000, 031001, 005042,
+ 002153, 002104, 040028, 007024, 040027, 012063 ]
+"340013" = [ 001007, 002019, 001033, 001034, 004001, 004002, 004003, 004004, 004005, 004007,
+ 005068, 005070, 005069, 040036, 008091, 005001, 006001, 004016, 008091, 005001,
+ 006001, 004016, 008091, 005001, 006001, 004016, 008091, 007071, 005021, 007021,
+ 040035, 008091, 007071, 005021, 007021, 040035, 008091, 007071, 005021, 007021,
+ 040035, 040029, 040030, 040031, 025187, 010004, 012001, 040037, 040032, 040033,
+ 040034 ]
+"340015" = [ 001007, 002019, 301011, 301012, 004007, 201133, 005041, 201000, 201130, 005043,
+ 201000, 207001, 005002, 006002, 207000, 040027, 013040, 021120, 207003, 102003,
+ 002186, 013155, 207000, 033003 ]
+"340016" = [ 301129, 301130, 301131, 202134, 007001, 202000, 101000, 031002, 340002, 101000,
+ 031002, 304039, 101000, 031002, 304040 ]
+"340017" = [ 001007, 002019, 005044, 001096, 005040, 001040, 025061, 025182, 025183, 025181,
+ 025184, 301011, 301013, 004007, 301021, 005063, 005064, 005066, 010081, 010082,
+ 008075, 025090, 008029, 201137, 202129, 006021, 202000, 201000, 010087, 025096,
+ 040012, 008077, 104002, 002153, 012063, 012065, 040013, 007002, 011098, 013090,
+ 013091, 025164, 025095, 040023, 025113, 008074, 025190, 021144, 025191, 021143,
+ 013055, 021169, 010101, 015012, 007002, 011097, 040024, 007002, 025126, 025128,
+ 040011, 007002, 011095, 011096, 010088, 010089, 010090, 010092, 010093, 010098,
+ 010099, 010100, 025127, 040014, 010085, 010086, 010096, 010103, 010102, 022080,
+ 008076, 022189, 022191, 022130, 025165, 025166, 025167, 021183, 021184, 022134,
+ 021122, 022190, 022131, 022132, 022133, 021186, 021187, 021188, 021185, 025112,
+ 025113, 033092, 008076, 022189, 022191, 022130, 025165, 025166, 025167, 021183,
+ 021184, 022134, 021122, 022190, 022131, 022132, 022133, 021186, 021187, 021188,
+ 021185, 025112, 025113, 033092, 025190, 011097, 013090, 013091, 021143, 021184,
+ 025128, 025163, 025164, 010102, 022189, 022191, 022130, 025166, 021183, 021184,
+ 022134, 022190, 022131, 022132, 025112, 025113, 033092, 008049, 022080, 134021,
+ 301011, 301013, 004007, 301021, 010081, 010082, 008029, 201137, 202129, 006021,
+ 202000, 201000, 025191, 021071, 010085, 040011, 010102, 022189, 022146, 025165,
+ 025167, 021183, 022190, 022133, 021177, 021185, 013164, 202126, 022046, 202000,
+ 013117, 013013, 025112, 033092 ]
+"340018" = [ 301129, 301130, 301131, 007072, 040074, 104000, 031002, 201136, 005042, 201000,
+ 014044 ]
+"340019" = [ 340020, 340021, 340022, 340023 ]
+"340020" = [ 001007, 002019, 005044, 001096, 005040, 001040, 025061, 025182, 025183, 025181,
+ 025184, 008075, 025090, 301011, 301013, 004007, 301021, 005063, 005064, 005066,
+ 010081, 010082 ]
+"340021" = [ 040012, 008077, 104000, 031001, 002153, 012063, 012065, 040013, 007002, 011098
+ ]
+"340022" = [ 008029, 201137, 202129, 006021, 202000, 201000, 010087, 040024, 007002, 025126,
+ 025128, 040011, 007002, 011095, 011096, 010088, 010089, 010090, 010092, 010093,
+ 010098, 010099, 010100, 025127, 040014, 001030, 010085, 001030, 010085, 010086,
+ 010096, 010103, 021169, 013055, 025165 ]
+"340023" = [ 025095, 040023, 008074, 340024, 340024, 340024, 340025 ]
+"340024" = [ 022080, 008076, 025190, 010102, 022189, 022191, 022130, 025167, 025163, 015012,
+ 025164, 013090, 013091, 025166, 007002, 011097, 021183, 021184, 022134, 021122,
+ 021186, 021187, 021188, 201131, 021185, 201000, 022179, 022131, 022132, 022133,
+ 021144, 025191, 021143, 010101, 025112, 025113, 033092 ]
+"340025" = [ 008049, 022080, 008076, 025190, 146021, 301011, 301013, 004007, 301021, 010081,
+ 010082, 008029, 201137, 202129, 006021, 202000, 201000, 025191, 021071, 001030,
+ 010085, 001030, 010085, 040011, 010088, 010089, 025164, 007002, 025126, 025128,
+ 010102, 022189, 025167, 025163, 021183, 201131, 021185, 201000, 022179, 022133,
+ 022146, 021189, 013163, 202126, 022046, 202000, 013117, 013013, 025112, 025113,
+ 033092 ]
+"340026" = [ 001007, 002019, 001033, 001034, 301011, 301013, 301021, 010033, 008043, 025139,
+ 002155, 112000, 031002, 007071, 033003, 201136, 015074, 015066, 015075, 015068,
+ 201000, 015076, 015070, 015078, 015072, 107003, 005069, 104000, 031002, 201135,
+ 015073, 015064, 201000 ]
+"340027" = [ 001007, 002019, 002020, 005077, 006043, 001033, 001034, 301011, 301012, 004007,
+ 301021, 033003, 008090, 020140, 008090, 020141 ]
+"340028" = [ 008070, 001033, 001034, 001007, 002019, 005040, 025075, 005041, 005043, 301011,
+ 301013, 005001, 006001, 201133, 007071, 201000, 007024, 005021, 007025, 005022,
+ 110000, 031001, 005042, 033002, 025076, 025077, 025078, 201143, 012163, 201000,
+ 012158, 012159 ]
diff --git a/definitions/check_grib_defs.pl b/definitions/check_grib_defs.pl
index dba8c0e27..d011680f3 100755
--- a/definitions/check_grib_defs.pl
+++ b/definitions/check_grib_defs.pl
@@ -204,6 +204,7 @@ sub process {
}
elsif ($this =~ /'(.*)' *= *{/) {
$concept = $1;
+ die "File: $filename, line: $lineNum: Value is empty." if ($concept eq '');
die "File: $filename, line: $lineNum: Value contains invalid characters." if (non_printable($concept));
if ($filename eq 'cfVarName.def') {
#if ($concept =~ /^[0-9]/) {
diff --git a/definitions/common/c-11.table b/definitions/common/c-11.table
index 9374ffdad..778001045 100644
--- a/definitions/common/c-11.table
+++ b/definitions/common/c-11.table
@@ -2,19 +2,26 @@
0 0 WMO Secretariat
1 ammc Melbourne (WMC)
2 2 Melbourne (WMC)
+3 3 Melbourne (WMC)
4 rums Moscow (WMC)
5 5 Moscow (WMC)
+6 6 Moscow (WMC)
7 kwbc US National Weather Service - NCEP (WMC)
8 8 US National Weather Service - NWSTG (WMC)
9 9 US National Weather Service - Other (WMC)
10 10 Cairo (RSMC/RAFC)
+11 11 Cairo (RSMC/RAFC)
12 12 Dakar (RSMC/RAFC)
+13 13 Dakar (RSMC/RAFC)
14 14 Nairobi (RSMC/RAFC)
-16 16 Atananarivo (RSMC)
+15 15 Nairobi (RSMC/RAFC)
+16 16 Casablanca (RSMC)
+17 17 Tunis (RSMC)
18 18 Tunis-Casablanca (RSMC)
20 20 Las Palmas (RAFC)
21 21 Algiers (RSMC)
-22 22 Lagos (RSMC)
+22 22 ACMAD
+23 23 Mozambique (NMC)
24 fapr Pretoria (RSMC)
26 26 Khabarovsk (RSMC)
28 vabb New Delhi (IMD)
@@ -23,27 +30,38 @@
32 32 Tashkent (RSMC)
33 33 Jeddah (RSMC)
34 rjtd Japanese Meteorological Agency - Tokyo (RSMC)
-36 36 Bankok
-37 37 Ulan Bator
+36 36 Bangkok
+37 37 Ulaanbaatar
38 babj Beijing (RSMC)
40 rksl Seoul
41 sabm Buenos Aires (RSMC/RAFC)
43 43 Brasilia (RSMC/RAFC)
45 45 Santiago
46 sbsj Brasilian Space Agency - INPE
+47 47 Colombia (NMC)
+48 48 Ecuador (NMC)
+49 49 Peru (NMC)
+50 50 Venezuela (Bolivarian Republic of) (NMC)
51 51 Miami (RSMC/RAFC)
52 52 National Hurricane Center, Miami
53 53 Canadian Meteorological Service - Montreal (RSMC)
54 cwao Canadian Meteorological Service - Montreal (RSMC)
55 55 San Francisco
+56 56 ARINC Centre
57 57 U.S. Air Force - Global Weather Center
58 fnmo US Navy - Fleet Numerical Oceanography Center
59 59 NOAA Forecast Systems Lab, Boulder CO
60 60 National Center for Atmospheric Research (NCAR), Boulder, CO
+61 61 Service ARGOS - Landover
+62 62 US Naval Oceanographic Office
+63 63 International Research Institute for Climate and Society (IRI)
64 64 Honolulu
65 65 Darwin (RSMC)
67 67 Melbourne (RSMC)
69 nzkl Wellington (RSMC/RAFC)
+71 71 Nadi (RSMC)
+72 72 Singapore
+73 73 Malaysia (NMC)
74 egrr U.K. Met Office - Exeter
76 76 Moscow (RSMC/RAFC)
78 edzw Offenbach (RSMC)
@@ -65,9 +83,34 @@
97 97 European Space Agency (ESA)
98 ecmf European Centre for Medium-Range Weather Forecasts
99 99 DeBilt, Netherlands
+100 100 Brazzaville
+101 101 Abidjan
+102 102 Libya (NMC)
+103 103 Madagascar (NMC)
+104 104 Mauritius (NMC)
+105 105 Niger (NMC)
+106 106 Seychelles (NMC)
+107 107 Uganda (NMC)
+108 108 United Republic of Tanzania (NMC)
+109 109 Zimbabwe (NMC)
110 110 Hong-Kong
+145 145 French Guiana
+146 146 Brazilian Navy Hydrographic Centre
+147 147 National Commission on Space Activities (CONAE) - Argentina
+148 148 Brazilian Department of Airspace Control - DECEA
160 160 US NOAA/NESDIS
+161 161 US NOAA Office of Oceanic and Atmospheric Research
173 nasa US National Aeronautics and Space Administration (NASA)
+
+174 174 Integrated Science Data Management/Marine Environmental Data Service (ISDM/MEDS - Canada)
+175 175 University Corporation for Atmospheric Research (UCAR) - United States
+176 176 Cooperative Institute for Meteorological Satellite Studies (CIMSS) - United States
+177 177 NOAA National Ocean Service - United States
+178 178 Spire Global, Inc.
+179 179 GeoOptics, Inc.
+180 180 PlanetiQ
+181 181 Atmospheric and Environmental Research (AER)
+
195 wiix Indonesia (NMC)
204 niwa National Institute of Water and Atmospheric Research (NIWA - New Zealand)
210 210 Frascati (ESA/ESRIN)
@@ -85,6 +128,8 @@
222 222 Albania (NMC)
223 223 Armenia (NMC)
224 lowm Austria
+225 225 Azerbaijan (NMC)
+226 226 Belarus (NMC)
227 ebum Belgium (NMC)
228 228 Bosnia and Herzegovina (NMC)
229 229 Bulgaria (NMC)
@@ -94,6 +139,7 @@
233 eidb Dublin
234 234 Israel (NMC)
235 ingv INGV
+238 238 Lithuania (NMC)
239 crfc CERFAX
240 240 Malta (NMC)
241 241 Monaco
@@ -143,4 +189,11 @@
289 289 Zambia (NMC)
291 anso Alliance of International Science Organizations (Beijing, China)
292 ufz Helmholtz Centre for Environmental Research
+293 293 University of Bremen
+294 294 Netherlands Institute for Space Research (SRON)
+295 295 The Royal Belgian Institute for Space Aeronomy (BIRA-IASB)
+296 296 The French National Centre for Scientific Research (CNRS)
+297 297 The Nanjing Institute of Environmental Sciences (NIES)
+298 298 Dynamic Meteorology Laboratory (LMD)
+299 299 The Rutherford Appleton Laboratory (RAL)
65535 65535 Missing value
diff --git a/definitions/create_def.pl b/definitions/create_def.pl
index 155ee810e..677a189df 100755
--- a/definitions/create_def.pl
+++ b/definitions/create_def.pl
@@ -29,10 +29,17 @@ sub create_cfName {
my $query= <<"EOF";
select $field,force128,edition,
- centre.abbreviation,param_id,attribute.name,attribute_value,param.name,param.shortName
- from param,grib,attribute,centre,units,cf where param.hide_def=0 and param.id=grib.param_id
- and attribute.id=grib.attribute_id and centre.id=grib.centre and units.id=param.units_id and param.id=cf.grib1_ecmwf
- order by edition,centre,param.o,param.id,grib.param_version,attribute.o;
+ centre.abbreviation,param_id,attribute.name,attribute_value,param.name,param.shortName from
+ param,grib_encoding,grib,attribute,centre,units,cf where
+ param.hide_def=0 and
+ param.retired=0 and
+ grib_encoding.id=grib.encoding_id and
+ param.id=grib_encoding.param_id and
+ attribute.id=grib.attribute_id and
+ centre.id=grib_encoding.centre_id and
+ units.id=param.units_id and
+ param.id=cf.grib1_ecmwf order by
+ edition,centre_id,param.o,param.id,grib_encoding.param_version,attribute.o;
EOF
my $qh=$dbh->prepare($query);
@@ -46,7 +53,7 @@ EOF
while (my ($keyval,$force128,$edition,$centre,$paramId,$attribute,$value,$name,$shortName)=$qh->fetchrow_array )
{
- if ($centre eq "all" ) { $conceptDir=""; }
+ if ($centre eq "wmo" ) { $conceptDir=""; }
else { $conceptDir="/localConcepts/$centre"; }
if ($filebase ne "$basedir/grib$edition$conceptDir") {
@@ -101,11 +108,17 @@ sub create_def {
if ($key =~ /units/) { $field="units.name"; }
my $query= <<"EOF";
- select $field,force128,edition,
+ select $field,force128,edition,
centre.abbreviation,param_id,attribute.name,attribute_value,param.name,param.shortName
- from param,grib,attribute,centre,units where param.hide_def=0 and param.id=grib.param_id
- and attribute.id=grib.attribute_id and centre.id=grib.centre and units.id=param.units_id
- order by edition,centre,param.o,param.id,grib.param_version,attribute.o;
+ from param,grib_encoding,grib,attribute,centre,units where
+ param.hide_def=0 and
+ param.retired=0 and
+ grib_encoding.id=grib.encoding_id and
+ param.id=grib_encoding.param_id and
+ attribute.id=grib.attribute_id and
+ centre.id=grib_encoding.centre_id and
+ units.id=param.units_id
+ order by edition,centre_id,param.o,param.id,grib_encoding.param_version,attribute.o;
EOF
my $qh=$dbh->prepare($query);
@@ -119,7 +132,7 @@ EOF
while (my ($keyval,$force128,$edition,$centre,$paramId,$attribute,$value,$name,$shortName)=$qh->fetchrow_array )
{
- if ($centre eq "all" ) { $conceptDir=""; }
+ if ($centre eq "wmo" ) { $conceptDir=""; }
else { $conceptDir="/localConcepts/$centre"; }
#if ($key =~ /paramId/ && $force128==1 && $keyval >1000) {
# $keyval= $keyval % 1000;
@@ -174,16 +187,20 @@ sub create_paramId_def {
my $p; my %seen;
my $query="select edition,centre.abbreviation,param_id,attribute.name,attribute_value,param.name,param.shortName
- from param,grib,attribute,centre where param.hide_def=0 and param.id=grib.param_id
- and attribute.id=grib.attribute_id and centre.id=grib.centre
- order by edition,centre,param.o,param.id,attribute.o";
-
+ from param,grib_encoding,grib,attribute,centre where
+ param.hide_def=0 and
+ param.retired=0 and
+ grib_encoding.id=grib.encoding_id and
+ param.id=grib_encoding.param_id and
+ attribute.id=grib.attribute_id and
+ centre.id=grib_encoding.centre_id
+ order by edition,centre_id,param.o,param.id,attribute.o";
my $qh=$dbh->prepare($query);
$qh->execute();
while (my ($edition,$centre,$paramId,$attribute,$value,$name,$shortName)=$qh->fetchrow_array )
{
- if ($centre eq "all" ) { $conceptDir=""; }
+ if ($centre eq "wmo" ) { $conceptDir=""; }
else { $conceptDir="/localConcepts/$centre"; }
if ($filebase ne "$basedir/grib$edition$conceptDir") {
@@ -226,7 +243,7 @@ sub create_def_old {
while (my ($edition,$centre,$paramId,$value)=$qh->fetchrow_array )
{
- if ($centre eq "all" ) { $conceptDir=""; }
+ if ($centre eq "wmo" ) { $conceptDir=""; }
else { $conceptDir="/localConcepts/$centre"; }
if ($filebase ne "$basedir/grib$edition$conceptDir") {
@@ -255,26 +272,33 @@ create_def("name");
create_def("units");
create_cfName("cfName");
-#create_paramId_def();
+# #create_paramId_def();
-$query="select distinct edition,centre.abbreviation,param_id,param.shortName
-from param,grib,centre where param.hide_def=0 and param.id=grib.param_id and
-centre.id=grib.centre and shortName!='~'
-order by centre,edition,param.o,param_id";
+# $query="select distinct edition,centre.abbreviation,param_id,param.shortName from param,grib_encoding,centre where
+# param.hide_def=0 and
+# param.id=grib_encoding.param_id and
+# centre.id=grib_encoding.centre_id and
+# shortName!='~' order by abbreviation,edition,param.o,param.id,shortName";
-#create_def("shortName",$query);
-$query="select distinct edition,centre.abbreviation,param_id,param.name
-from param,grib,centre where param.hide_def=0 and param.id=grib.param_id and
-centre.id=grib.centre and shortName!='~'
-order by centre,edition,param.o,param_id";
+# #select distinct edition,centre.abbreviation,param_id,param.shortName
+# #from param,grib_encoding,grib,centre where param.hide_def=0 and param.id=grib.param_id and
+# #centre.id=grib_encoding.centre_id and shortName!='~'
+# #order by centre,edition,param.o,param_id";
-#create_def("name",$query);
+# #create_def("shortName",$query);
-$query="select distinct edition,centre.abbreviation,param_id,units.name
-from param,grib,centre,units where param.hide_def=0 and param.id=grib.param_id and units.id=param.units_id
-and centre.id=grib.centre and shortName!='~'
-order by centre,edition,param.o,param_id";
+# $query="select distinct edition,centre.abbreviation,param_id,param.name
+# from param,grib,centre where param.hide_def=0 and param.id=grib.param_id and
+# centre.id=grib.centre and shortName!='~'
+# order by centre,edition,param.o,param_id";
-#create_def("units",$query);
+# #create_def("name",$query);
+
+# $query="select distinct edition,centre.abbreviation,param_id,units.name
+# from param,grib,centre,units where param.hide_def=0 and param.id=grib.param_id and units.id=param.units_id
+# and centre.id=grib.centre and shortName!='~'
+# order by centre,edition,param.o,param_id";
+
+# #create_def("units",$query);
diff --git a/definitions/create_grib2_codetables.pl b/definitions/create_grib2_codetables.pl
index 8f58ef544..5d71dbc11 100644
--- a/definitions/create_grib2_codetables.pl
+++ b/definitions/create_grib2_codetables.pl
@@ -104,6 +104,15 @@ sub WriteFile {
elsif ($filename eq "4.5.table") {
$codeFlag2 = TranslateCodes_Table_4_5($codeFlag);
}
+ elsif ($filename eq "4.241.table") {
+ $codeFlag2 = TranslateCodes_Table_4_241($codeFlag);
+ }
+ elsif ($filename eq "4.242.table") {
+ $codeFlag2 = TranslateCodes_Table_4_242($codeFlag);
+ }
+ elsif ($filename eq "4.252.table") {
+ $codeFlag2 = TranslateCodes_Table_4_252($codeFlag);
+ }
elsif ($filename eq "3.15.table") {
$codeFlag2 = TranslateCodes_Table_3_15($codeFlag);
}
@@ -153,8 +162,6 @@ sub TranslateCodes_Table_3_15 {
return $code;
}
-###################################################################################################
-# This is for Code Table 1.4
sub TranslateCodes_Table_1_4 {
my ($code) = @_;
return "an" if ($code eq "0");
@@ -170,7 +177,6 @@ sub TranslateCodes_Table_1_4 {
return $code;
}
-###################################################################################################
sub TranslateCodes_Table_4_4 {
my ($code) = @_;
return "m" if ($code eq "0");
@@ -188,7 +194,6 @@ sub TranslateCodes_Table_4_4 {
return $code;
}
-###################################################################################################
sub TranslateCodes_Table_4_5 {
my ($code) = @_;
return "sfc" if ($code eq "1" || $code eq "7" ||
@@ -207,3 +212,181 @@ sub TranslateCodes_Table_4_5 {
return "sol" if ($code eq "152");
return $code;
}
+
+sub TranslateCodes_Table_4_241 {
+ my ($code) = @_;
+ return "UNDEF" if ($code eq "0");
+ return "UNMOD" if ($code eq "1");
+ return "SNOW" if ($code eq "2");
+ return "FLOOD" if ($code eq "3");
+ return "ICE" if ($code eq "4");
+ return "ITCW" if ($code eq "5");
+ return "ITCS" if ($code eq "6");
+ return "AGG" if ($code eq "7");
+ return $code;
+}
+
+sub TranslateCodes_Table_4_242 {
+ my ($code) = @_;
+
+ return "GCV2009" if ($code eq "1");
+ return "GLC2000" if ($code eq "2");
+ return "ECOCLIMAP" if ($code eq "3");
+ return "ECOCLIMAP-SG" if ($code eq "4");
+ return "GLCCv2BATS" if ($code eq "5");
+ return $code;
+}
+
+sub TranslateCodes_Table_4_252 {
+ my ($code) = @_;
+
+ return "SEOC" if ($code eq "1");
+ return "INWB" if ($code eq "2");
+ return "BARE" if ($code eq "3");
+ return "HIV" if ($code eq "4");
+ return "LOV" if ($code eq "5");
+ return "URBAN" if ($code eq "6");
+ return "SEAO" if ($code eq "1001");
+ return "LAKE" if ($code eq "1002");
+ return "RIVE" if ($code eq "1003");
+ return "NO" if ($code eq "1004");
+ return "ROCK" if ($code eq "1005");
+ return "SNOW" if ($code eq "1006");
+ return "BOBD" if ($code eq "1007");
+ return "TEBD" if ($code eq "1008");
+ return "TRBD" if ($code eq "1009");
+ return "TEBE" if ($code eq "1010");
+ return "TRBE" if ($code eq "1011");
+ return "BONE" if ($code eq "1012");
+ return "TENE" if ($code eq "1013");
+ return "BOND" if ($code eq "1014");
+ return "SHRB" if ($code eq "1015");
+ return "BOGR" if ($code eq "1016");
+ return "GRAS" if ($code eq "1017");
+ return "TROG" if ($code eq "1018");
+ return "C3W" if ($code eq "1019");
+ return "C3S" if ($code eq "1020");
+ return "C4" if ($code eq "1021");
+ return "FLTR" if ($code eq "1022");
+ return "FLGR" if ($code eq "1023");
+ return "LCZ1" if ($code eq "1024");
+ return "LCZ2" if ($code eq "1025");
+ return "LCZ3" if ($code eq "1026");
+ return "LCZ4" if ($code eq "1027");
+ return "LCZ5" if ($code eq "1028");
+ return "LCZ6" if ($code eq "1029");
+ return "LCZ7" if ($code eq "1030");
+ return "LCZ8" if ($code eq "1031");
+ return "LCZ9" if ($code eq "1032");
+ return "LCZ10" if ($code eq "1033");
+ return "TEBDU" if ($code eq "1034");
+ return "TRBDU" if ($code eq "1035");
+ return "TEBEU" if ($code eq "1036");
+ return "TRBEU" if ($code eq "1037");
+ return "BONEU" if ($code eq "1038");
+ return "TENEU" if ($code eq "1039");
+ return "BONDU" if ($code eq "1040");
+ return "GNATU" if ($code eq "1501");
+ return "GNOFO" if ($code eq "1502");
+ return "GFORE" if ($code eq "1503");
+ return "GNOVE" if ($code eq "1504");
+ return "GTREE" if ($code eq "1505");
+ return "GLVEG" if ($code eq "1506");
+ return "GNFLV" if ($code eq "1507");
+ return "GCROP" if ($code eq "1508");
+ return "GGRAS" if ($code eq "1509");
+ return "GBARO" if ($code eq "1510");
+ return "GC3CR" if ($code eq "1511");
+ return "GBFOR" if ($code eq "1512");
+ return "GNFOR" if ($code eq "1513");
+ return "GDBFO" if ($code eq "1514");
+ return "GTGRA" if ($code eq "1515");
+ return "GNFNF" if ($code eq "1516");
+ return "GBFFT" if ($code eq "1517");
+ return "GBTRE" if ($code eq "1518");
+ return "GCGRA" if ($code eq "1519");
+ return "GBDTR" if ($code eq "1520");
+ return "GBETR" if ($code eq "1521");
+ return "GNETR" if ($code eq "1522");
+ return "GLCZU" if ($code eq "1523");
+ return "GIWAT" if ($code eq "1524");
+ return "GPTEBD" if ($code eq "1525");
+ return "GPTRBD" if ($code eq "1526");
+ return "GPTEBE" if ($code eq "1527");
+ return "GPTRBE" if ($code eq "1528");
+ return "GPBONE" if ($code eq "1529");
+ return "GPTENE" if ($code eq "1530");
+ return "GPBOND" if ($code eq "1531");
+ return "CRMF" if ($code eq "2001");
+ return "SHGR" if ($code eq "2002");
+ return "EVNE" if ($code eq "2003");
+ return "DENE" if ($code eq "2004");
+ return "DEBR" if ($code eq "2005");
+ return "EVBR" if ($code eq "2006");
+ return "TAGR" if ($code eq "2007");
+ return "DESE" if ($code eq "2008");
+ return "TUND" if ($code eq "2009");
+ return "IRCR" if ($code eq "2010");
+ return "SEDE" if ($code eq "2011");
+ return "ICGL" if ($code eq "2012");
+ return "BOMA" if ($code eq "2013");
+ return "INWA" if ($code eq "2014");
+ return "OCEA" if ($code eq "2015");
+ return "EVSH" if ($code eq "2016");
+ return "DESH" if ($code eq "2017");
+ return "MFWO" if ($code eq "2018");
+ return "INFO" if ($code eq "2019");
+ return "WLMI" if ($code eq "2020");
+ return "BASO" if ($code eq "2021");
+ return "URBA" if ($code eq "2022");
+ return "LORI" if ($code eq "2023");
+ return "HIRI" if ($code eq "2024");
+ return "GLVE" if ($code eq "2501");
+ return "GHVE" if ($code eq "2502");
+ return "PFIC" if ($code eq "3001");
+ return "RACR" if ($code eq "3002");
+ return "MCVE" if ($code eq "3003");
+ return "MVCR" if ($code eq "3004");
+ return "COBS" if ($code eq "3005");
+ return "CLBD" if ($code eq "3006");
+ return "OPBD" if ($code eq "3007");
+ return "CLNE" if ($code eq "3008");
+ return "ONDE" if ($code eq "3009");
+ return "COBN" if ($code eq "3010");
+ return "MFSG" if ($code eq "3011");
+ return "MGFS" if ($code eq "3012");
+ return "COSH" if ($code eq "3013");
+ return "COHV" if ($code eq "3014");
+ return "SPVE" if ($code eq "3015");
+ return "COBFF" if ($code eq "3016");
+ return "CLBFF" if ($code eq "3017");
+ return "COVEF" if ($code eq "3018");
+ return "ASAA" if ($code eq "3019");
+ return "BAAR" if ($code eq "3020");
+ return "WABO" if ($code eq "3021");
+ return "PESI" if ($code eq "3022");
+ return "GRDT" if ($code eq "3501");
+ return "TBECO" if ($code eq "4001");
+ return "TBDC" if ($code eq "4002");
+ return "TBDO" if ($code eq "4003");
+ return "TNECO" if ($code eq "4004");
+ return "TNDCO" if ($code eq "4005");
+ return "TMLCO" if ($code eq "4006");
+ return "TCOFF" if ($code eq "4007");
+ return "TCOFS" if ($code eq "4008");
+ return "MTVG" if ($code eq "4009");
+ return "TBURN" if ($code eq "4010");
+ return "SCOE" if ($code eq "4011");
+ return "SCOD" if ($code eq "4012");
+ return "HCCO" if ($code eq "4013");
+ return "SHSC" if ($code eq "4014");
+ return "FSHCO" if ($code eq "4015");
+ return "CROP" if ($code eq "4016");
+ return "MCTNV" if ($code eq "4017");
+ return "MCSH" if ($code eq "4018");
+ return "BAARE" if ($code eq "4019");
+ return "WBNA" if ($code eq "4020");
+ return "SINA" if ($code eq "4021");
+ return "URAR" if ($code eq "4022");
+ return $code;
+}
diff --git a/definitions/grib1/2.46.254.table b/definitions/grib1/2.46.254.table
index d4e38fce8..506348903 100644
--- a/definitions/grib1/2.46.254.table
+++ b/definitions/grib1/2.46.254.table
@@ -39,7 +39,7 @@
38 38 sgvv SIGMA COORD VERT VEL [sec/sec]
39 39 omeg OMEGA [Pa/s]
40 40 omg2 VERTICAL VELOCITY [m/s]
-41 41 abvo ABSOLUTE VORTICITY [10**5/sec]
+41 41 abvo ABSOLUTE VORTICITY [10**5/sec]
42 42 abdv ABSOLUTE DIVERGENCE [10**5/sec]
43 43 vort VORTICITY [1/s]
44 44 divg DIVERGENCE [1/s]
@@ -54,17 +54,17 @@
53 53 hmxr HUMIDITY MIXING RATIO [kg/kg]
54 54 agpl INST. PRECIPITABLE WATER [Kg/m2]
55 55 vapp VAPOUR PRESSURE [Pa hpa]
-56 56 sadf SATURATION DEFICIT [Pa hPa]
+56 56 sadf SATURATION DEFICIT [Pa hPa]
57 57 evap EVAPORATION [Kg/m2/day]
58 58 var58 undefined
-59 59 prcr PRECIPITATION RATE [kg/m2/day]
+59 59 prcr PRECIPITATION RATE [kg/m2/day]
60 60 thpb THUNDER PROBABILITY [%]
61 61 prec TOTAL PRECIPITATION [Kg/m2/day]
62 62 prge LARGE SCALE PRECIPITATION [Kg/m2/day]
63 63 prcv CONVECTIVE PRECIPITATION [Kg/m2/day]
64 64 neve SNOWFALL [Kg/m2/day]
65 65 wenv WAT EQUIV ACC SNOW DEPTH [kg/m2]
-66 66 nvde SNOW DEPTH [cm]
+66 66 nvde SNOW DEPTH [cm]
67 67 mxld MIXED LAYER DEPTH [m cm]
68 68 tthd TRANS THERMOCLINE DEPTH [m cm]
69 69 mthd MAIN THERMOCLINE DEPTH [m cm]
@@ -72,7 +72,7 @@
71 71 cbnv CLOUD COVER [0-1]
72 72 cvnv CONVECTIVE CLOUD COVER [0-1]
73 73 lwnv LOW CLOUD COVER [0-1]
-74 74 mdnv MEDIUM CLOUD COVER [0-1]
+74 74 mdnv MEDIUM CLOUD COVER [0-1]
75 75 hinv HIGH CLOUD COVER [0-1]
76 76 wtnv CLOUD WATER [kg/m2]
77 77 bli BEST LIFTED INDEX (TO 500 HPA) [K]
@@ -85,17 +85,17 @@
84 84 albe ALBEDO [%]
85 85 dstp DEEP SOIL TEMPERATURE [K]
86 86 soic SOIL MOISTURE CONTENT [Kg/m2]
-87 87 vege VEGETATION [%]
+87 87 vege VEGETATION [%]
88 88 var88 undefined
89 89 dens DENSITY [kg/m3]
90 90 var90 Undefined
91 91 icec ICE CONCENTRATION [fraction]
92 92 icet ICE THICKNESS [m]
93 93 iced DIRECTION OF ICE DRIFT [deg]
-94 94 ices SPEED OF ICE DRIFT [m/s]
+94 94 ices SPEED OF ICE DRIFT [m/s]
95 95 iceu U-COMP OF ICE DRIFT [m/s]
96 96 icev V-COMP OF ICE DRIFT [m/s]
-97 97 iceg ICE GROWTH [m]
+97 97 iceg ICE GROWTH [m]
98 98 icdv ICE DIVERGENCE [sec/sec]
99 99 var99 undefined
100 100 shcw SIG HGT COM WAVE/SWELL [m]
@@ -155,7 +155,7 @@
154 154 fdlt FLIGHT LEVELS TEMPERATURE [K]
155 155 fdlu FLIGHT LEVELS U-WIND [m/s]
156 156 fdlv FLIGHT LEVELS V-WIND [m/s]
-157 157 tppp TROPOPAUSE PRESSURE [hPa]
+157 157 tppp TROPOPAUSE PRESSURE [hPa]
158 158 tppt TROPOPAUSE TEMPERATURE [K]
159 159 tppu TROPOPAUSE U-WIND COMPONENT [m/s]
160 160 tppv TROPOPAUSE v-WIND COMPONENT [m/s]
@@ -170,16 +170,16 @@
169 169 vmfl VERT. INTEGRATED MOISTURE FLUX CONV. [kg/(m2*s)]
170 170 vadv VERTICAL MOISTURE ADVECTION [kg/(kg*s)]
171 171 nhcm NEG. HUM. CORR. MOISTURE SOURCE [kg/(kg*s)]
-172 172 lglh LARGE SCALE LATENT HEATING [K/s]
-173 173 lgms LARGE SCALE MOISTURE SOURCE [1/s]
-174 174 smav SOIL MOISTURE AVAILABILITY [0-1]
+172 172 lglh LARGE SCALE LATENT HEATING [K/s]
+173 173 lgms LARGE SCALE MOISTURE SOURCE [1/s]
+174 174 smav SOIL MOISTURE AVAILABILITY [0-1]
175 175 tgrz SOIL TEMPERATURE OF ROOT ZONE [K]
176 176 bslh BARE SOIL LATENT HEAT [Ws/m2]
177 177 evpp POTENTIAL SFC EVAPORATION [m]
178 178 rnof RUNOFF [kg/m2/s)]
179 179 pitp INTERCEPTION LOSS [W/m2]
180 180 vpca VAPOR PRESSURE OF CANOPY AIR SPACE [mb]
-181 181 qsfc SURFACE SPEC HUMIDITY [kg/kg]
+181 181 qsfc SURFACE SPEC HUMIDITY [kg/kg]
182 182 ussl SOIL WETNESS OF SURFACE [0-1]
183 183 uzrs SOIL WETNESS OF ROOT ZONE [0-1]
184 184 uzds SOIL WETNESS OF DRAINAGE ZONE [0-1]
@@ -196,7 +196,7 @@
195 195 vsst SURFACE MERIDIONAL WIND STRESS [Pa]
196 196 suvf SURFACE MOMENTUM FLUX [W/m2]
197 197 iswf INCIDENT SHORT WAVE FLUX [W/m2]
-198 198 ghfl TIME AVE GROUND HT FLX [W/m2]
+198 198 ghfl TIME AVE GROUND HT FLX [W/m2]
199 199 var199 undefined
200 200 lwbc NET LONG WAVE AT BOTTOM (CLEAR) [W/m2]
201 201 lwtc OUTGOING LONG WAVE AT TOP (CLEAR) [W/m2]
diff --git a/definitions/grib1/boot.def b/definitions/grib1/boot.def
index 9939f8291..4dd9e48e0 100644
--- a/definitions/grib1/boot.def
+++ b/definitions/grib1/boot.def
@@ -9,6 +9,8 @@
constant ieeeFloats = 0 : hidden, edition_specific;
transient eps=0;
+constant false=0 : hidden;
+constant true=1 : hidden;
constant two=1 : hidden;
constant three=1 : hidden;
constant eight=8 : hidden;
diff --git a/definitions/grib1/cfName.def b/definitions/grib1/cfName.def
index 17313406e..6a08a4575 100644
--- a/definitions/grib1/cfName.def
+++ b/definitions/grib1/cfName.def
@@ -4,345 +4,345 @@
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
-#Temperature
-'air_temperature' = {
- table2Version = 3 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'eastward_wind' = {
- table2Version = 3 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'northward_wind' = {
- table2Version = 3 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'specific_humidity' = {
- table2Version = 3 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'surface_air_pressure' = {
- table2Version = 3 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'lagrangian_tendency_of_air_pressure' = {
- table2Version = 3 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'atmosphere_relative_vorticity' = {
- table2Version = 3 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'air_pressure_at_mean_sea_level' = {
- table2Version = 3 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'divergence_of_wind' = {
- table2Version = 3 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'geopotential_height' = {
- table2Version = 3 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'relative_humidity' = {
- table2Version = 3 ;
- indicatorOfParameter = 52 ;
- }
-#Land-sea mask
-'land_binary_mask' = {
- table2Version = 3 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'surface_roughness_length' = {
- table2Version = 3 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'lwe_thickness_of_water_evaporation_amount' = {
- table2Version = 3 ;
- indicatorOfParameter = 57 ;
- }
-#Total column ozone
-'atmosphere_mass_content_of_ozone' = {
- table2Version = 3 ;
- indicatorOfParameter = 10 ;
- }
-#Snow depth
-'lwe_thickness_of_surface_snow_amount' = {
- table2Version = 3 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'convective_cloud_area_fraction' = {
- table2Version = 3 ;
- indicatorOfParameter = 72 ;
- }
-#Latent heat flux
-'surface_upward_latent_heat_flux' = {
- table2Version = 3 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'surface_upward_sensible_heat_flux' = {
- table2Version = 3 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
- table2Version = 3 ;
- indicatorOfParameter = 123 ;
- }
-#Forecast albedo
-'surface_albedo' = {
- table2Version = 3 ;
- indicatorOfParameter = 84 ;
- }
-#Convective precipitation (water)
-'lwe_thickness_of_convective_precipitation_amount' = {
- table2Version = 3 ;
- indicatorOfParameter = 63 ;
- }
#Geopotential
'geopotential' = {
table2Version = 2 ;
indicatorOfParameter = 6 ;
}
-#Temperature
-'air_temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'eastward_wind' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'northward_wind' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'specific_humidity' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'surface_air_pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'lagrangian_tendency_of_air_pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'atmosphere_relative_vorticity' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'air_pressure_at_mean_sea_level' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'divergence_of_wind' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'geopotential_height' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'relative_humidity' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#Land-sea mask
-'land_binary_mask' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'surface_roughness_length' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'lwe_thickness_of_water_evaporation_amount' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Total column ozone
-'atmosphere_mass_content_of_ozone' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Snow depth
-'lwe_thickness_of_surface_snow_amount' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'convective_cloud_area_fraction' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Latent heat flux
-'surface_upward_latent_heat_flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'surface_upward_sensible_heat_flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Forecast albedo
-'surface_albedo' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Convective precipitation (water)
-'lwe_thickness_of_convective_precipitation_amount' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
#Geopotential
'geopotential' = {
table2Version = 1 ;
indicatorOfParameter = 6 ;
}
#Temperature
+'air_temperature' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'air_temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
'air_temperature' = {
table2Version = 1 ;
indicatorOfParameter = 11 ;
}
#U component of wind
+'eastward_wind' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'eastward_wind' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
'eastward_wind' = {
table2Version = 1 ;
indicatorOfParameter = 33 ;
}
#V component of wind
+'northward_wind' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'northward_wind' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
'northward_wind' = {
table2Version = 1 ;
indicatorOfParameter = 34 ;
}
#Specific humidity
+'specific_humidity' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'specific_humidity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
'specific_humidity' = {
table2Version = 1 ;
indicatorOfParameter = 51 ;
}
#Surface pressure
+'surface_air_pressure' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'surface_air_pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
'surface_air_pressure' = {
table2Version = 1 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
#Vertical velocity
+'lagrangian_tendency_of_air_pressure' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'lagrangian_tendency_of_air_pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
'lagrangian_tendency_of_air_pressure' = {
table2Version = 1 ;
indicatorOfParameter = 39 ;
}
#Vorticity (relative)
+'atmosphere_relative_vorticity' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'atmosphere_relative_vorticity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
'atmosphere_relative_vorticity' = {
table2Version = 1 ;
indicatorOfParameter = 43 ;
}
#Mean sea level pressure
+'air_pressure_at_mean_sea_level' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'air_pressure_at_mean_sea_level' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
'air_pressure_at_mean_sea_level' = {
table2Version = 1 ;
indicatorOfParameter = 2 ;
}
#Divergence
+'divergence_of_wind' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'divergence_of_wind' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
'divergence_of_wind' = {
table2Version = 1 ;
indicatorOfParameter = 44 ;
}
#Geopotential height
+'geopotential_height' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'geopotential_height' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
'geopotential_height' = {
table2Version = 1 ;
indicatorOfParameter = 7 ;
}
#Relative humidity
+'relative_humidity' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'relative_humidity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
'relative_humidity' = {
table2Version = 1 ;
indicatorOfParameter = 52 ;
}
#Land-sea mask
+'land_binary_mask' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'land_binary_mask' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
'land_binary_mask' = {
table2Version = 1 ;
indicatorOfParameter = 81 ;
}
#Surface roughness (climatological)
+'surface_roughness_length' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'surface_roughness_length' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
'surface_roughness_length' = {
table2Version = 1 ;
indicatorOfParameter = 83 ;
}
#Evaporation
+'lwe_thickness_of_water_evaporation_amount' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'lwe_thickness_of_water_evaporation_amount' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
'lwe_thickness_of_water_evaporation_amount' = {
table2Version = 1 ;
indicatorOfParameter = 57 ;
}
#Total column ozone
+'atmosphere_mass_content_of_ozone' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'atmosphere_mass_content_of_ozone' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
'atmosphere_mass_content_of_ozone' = {
table2Version = 1 ;
indicatorOfParameter = 10 ;
}
#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
'lwe_thickness_of_surface_snow_amount' = {
table2Version = 1 ;
indicatorOfParameter = 66 ;
}
#Convective cloud cover
+'convective_cloud_area_fraction' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'convective_cloud_area_fraction' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
'convective_cloud_area_fraction' = {
table2Version = 1 ;
indicatorOfParameter = 72 ;
}
#Latent heat flux
+'surface_upward_latent_heat_flux' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'surface_upward_latent_heat_flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
'surface_upward_latent_heat_flux' = {
table2Version = 1 ;
indicatorOfParameter = 121 ;
}
#Sensible heat flux
+'surface_upward_sensible_heat_flux' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'surface_upward_sensible_heat_flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
'surface_upward_sensible_heat_flux' = {
table2Version = 1 ;
indicatorOfParameter = 122 ;
}
#Boundary layer dissipation
+'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
table2Version = 1 ;
indicatorOfParameter = 123 ;
}
#Forecast albedo
+'surface_albedo' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'surface_albedo' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
'surface_albedo' = {
table2Version = 1 ;
indicatorOfParameter = 84 ;
}
#Convective precipitation (water)
+'lwe_thickness_of_convective_precipitation_amount' = {
+ table2Version = 3 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'lwe_thickness_of_convective_precipitation_amount' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
'lwe_thickness_of_convective_precipitation_amount' = {
table2Version = 1 ;
indicatorOfParameter = 63 ;
diff --git a/definitions/grib1/cfVarName.def b/definitions/grib1/cfVarName.def
index e4b1aa07d..94c685c22 100644
--- a/definitions/grib1/cfVarName.def
+++ b/definitions/grib1/cfVarName.def
@@ -4,31 +4,91 @@
table2Version = 3 ;
indicatorOfParameter = 35 ;
}
+#Stream function
+'strf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 35 ;
+ }
+#Stream function
+'strf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 35 ;
+ }
#Velocity potential
'vp' = {
table2Version = 3 ;
indicatorOfParameter = 36 ;
}
+#Velocity potential
+'vp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 36 ;
+ }
+#Velocity potential
+'vp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 36 ;
+ }
#Potential temperature
'pt' = {
table2Version = 3 ;
indicatorOfParameter = 13 ;
}
+#Potential temperature
+'pt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 13 ;
+ }
+#Potential temperature
+'pt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 13 ;
+ }
#Wind speed
'ws' = {
table2Version = 3 ;
indicatorOfParameter = 32 ;
}
+#Wind speed
+'ws' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 32 ;
+ }
+#Wind speed
+'ws' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 32 ;
+ }
#Pressure
'pres' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
}
+#Pressure
+'pres' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ }
+#Pressure
+'pres' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ }
#Potential vorticity
'pv' = {
table2Version = 3 ;
indicatorOfParameter = 4 ;
}
+#Potential vorticity
+'pv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 4 ;
+ }
+#Potential vorticity
+'pv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 4 ;
+ }
#Maximum temperature at 2 metres in the last 6 hours
'mx2t6' = {
table2Version = 3 ;
@@ -36,6 +96,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Minimum temperature at 2 metres in the last 6 hours
'mn2t6' = {
table2Version = 3 ;
@@ -43,67 +117,203 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Geopotential
'z' = {
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
+#Geopotential
+'z' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 6 ;
+ }
+#Geopotential
+'z' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 6 ;
+ }
#Temperature
't' = {
table2Version = 3 ;
indicatorOfParameter = 11 ;
}
+#Temperature
+'t' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'t' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ }
#U component of wind
'u' = {
table2Version = 3 ;
indicatorOfParameter = 33 ;
}
+#U component of wind
+'u' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'u' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ }
#V component of wind
'v' = {
table2Version = 3 ;
indicatorOfParameter = 34 ;
}
+#V component of wind
+'v' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'v' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ }
#Specific humidity
'q' = {
table2Version = 3 ;
indicatorOfParameter = 51 ;
}
+#Specific humidity
+'q' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'q' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 51 ;
+ }
#Surface pressure
'sp' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Surface pressure
+'sp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'sp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Vertical velocity
'w' = {
table2Version = 3 ;
indicatorOfParameter = 39 ;
}
+#Vertical velocity
+'w' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'w' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 39 ;
+ }
#Vorticity (relative)
'vo' = {
table2Version = 3 ;
indicatorOfParameter = 43 ;
}
+#Vorticity (relative)
+'vo' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'vo' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 43 ;
+ }
#Mean sea level pressure
'msl' = {
table2Version = 3 ;
indicatorOfParameter = 2 ;
}
+#Mean sea level pressure
+'msl' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'msl' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 2 ;
+ }
#Divergence
'd' = {
table2Version = 3 ;
indicatorOfParameter = 44 ;
}
+#Divergence
+'d' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'d' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 44 ;
+ }
#Geopotential height
'gh' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
}
+#Geopotential height
+'gh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'gh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ }
#Relative humidity
'r' = {
table2Version = 3 ;
indicatorOfParameter = 52 ;
}
+#Relative humidity
+'r' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'r' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 52 ;
+ }
#10 metre U wind component
'u10' = {
table2Version = 3 ;
@@ -111,6 +321,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre U wind component
+'u10' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre U wind component
+'u10' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#10 metre V wind component
'v10' = {
table2Version = 3 ;
@@ -118,6 +342,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre V wind component
+'v10' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre V wind component
+'v10' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#2 metre temperature
't2m' = {
table2Version = 3 ;
@@ -125,6 +363,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre temperature
+'t2m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre temperature
+'t2m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#2 metre dewpoint temperature
'd2m' = {
table2Version = 3 ;
@@ -132,562 +384,1628 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre dewpoint temperature
+'d2m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre dewpoint temperature
+'d2m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Land-sea mask
'lsm' = {
table2Version = 3 ;
indicatorOfParameter = 81 ;
}
+#Land-sea mask
+'lsm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'lsm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 81 ;
+ }
#Surface roughness (climatological)
'sr' = {
table2Version = 3 ;
indicatorOfParameter = 83 ;
}
+#Surface roughness (climatological)
+'sr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'sr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 83 ;
+ }
#Evaporation
'e' = {
table2Version = 3 ;
indicatorOfParameter = 57 ;
}
+#Evaporation
+'e' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'e' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 57 ;
+ }
#Brightness temperature
'btmp' = {
table2Version = 3 ;
indicatorOfParameter = 118 ;
}
+#Brightness temperature
+'btmp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 118 ;
+ }
+#Brightness temperature
+'btmp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 118 ;
+ }
#Runoff
'ro' = {
table2Version = 3 ;
indicatorOfParameter = 90 ;
}
+#Runoff
+'ro' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 90 ;
+ }
+#Runoff
+'ro' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 90 ;
+ }
#Total column ozone
'tco3' = {
table2Version = 3 ;
indicatorOfParameter = 10 ;
}
+#Total column ozone
+'tco3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'tco3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 10 ;
+ }
#Large-scale precipitation
'lsp' = {
table2Version = 3 ;
indicatorOfParameter = 62 ;
}
+#Large-scale precipitation
+'lsp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 62 ;
+ }
+#Large-scale precipitation
+'lsp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 62 ;
+ }
#Snow depth
'sde' = {
table2Version = 3 ;
indicatorOfParameter = 66 ;
}
+#Snow depth
+'sde' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'sde' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 66 ;
+ }
#Convective cloud cover
'ccc' = {
table2Version = 3 ;
indicatorOfParameter = 72 ;
}
+#Convective cloud cover
+'ccc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'ccc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 72 ;
+ }
#Low cloud cover
'lcc' = {
table2Version = 3 ;
indicatorOfParameter = 73 ;
}
+#Low cloud cover
+'lcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 73 ;
+ }
+#Low cloud cover
+'lcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 73 ;
+ }
#Medium cloud cover
'mcc' = {
table2Version = 3 ;
indicatorOfParameter = 74 ;
}
+#Medium cloud cover
+'mcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 74 ;
+ }
+#Medium cloud cover
+'mcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 74 ;
+ }
#High cloud cover
'hcc' = {
table2Version = 3 ;
indicatorOfParameter = 75 ;
}
+#High cloud cover
+'hcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 75 ;
+ }
+#High cloud cover
+'hcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 75 ;
+ }
#Large scale snow
'lssf' = {
table2Version = 3 ;
indicatorOfParameter = 79 ;
}
+#Large scale snow
+'lssf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 79 ;
+ }
+#Large scale snow
+'lssf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 79 ;
+ }
#Latent heat flux
'lhf' = {
table2Version = 3 ;
indicatorOfParameter = 121 ;
}
+#Latent heat flux
+'lhf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'lhf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 121 ;
+ }
#Sensible heat flux
'shf' = {
table2Version = 3 ;
indicatorOfParameter = 122 ;
}
+#Sensible heat flux
+'shf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'shf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 122 ;
+ }
#Boundary layer dissipation
'bld' = {
table2Version = 3 ;
indicatorOfParameter = 123 ;
}
+#Boundary layer dissipation
+'bld' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'bld' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 123 ;
+ }
#Convective snow
'snoc' = {
table2Version = 3 ;
indicatorOfParameter = 78 ;
}
+#Convective snow
+'snoc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 78 ;
+ }
+#Convective snow
+'snoc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 78 ;
+ }
#Cloud water
-'p260102' = {
+'cwat' = {
table2Version = 3 ;
indicatorOfParameter = 76 ;
}
+#Cloud water
+'cwat' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 76 ;
+ }
+#Cloud water
+'cwat' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 76 ;
+ }
#Forecast albedo
'al' = {
table2Version = 3 ;
indicatorOfParameter = 84 ;
}
-#Virtual temperature
-'p300012' = {
+#Forecast albedo
+'al' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'al' = {
table2Version = 1 ;
+ indicatorOfParameter = 84 ;
+ }
+#Virtual temperature
+'vtmp' = {
+ table2Version = 3 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
-'p300012' = {
+'vtmp' = {
table2Version = 2 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
-'p300012' = {
- table2Version = 3 ;
+'vtmp' = {
+ table2Version = 1 ;
indicatorOfParameter = 12 ;
}
#Pressure tendency
-'p3003' = {
+'ptend' = {
table2Version = 3 ;
indicatorOfParameter = 3 ;
}
+#Pressure tendency
+'ptend' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 3 ;
+ }
+#Pressure tendency
+'ptend' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 3 ;
+ }
#ICAO Standard Atmosphere reference height
-'p3005' = {
+'icaht' = {
table2Version = 3 ;
indicatorOfParameter = 5 ;
}
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 5 ;
+ }
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 5 ;
+ }
#Geometrical height
-'p3008' = {
+'h' = {
table2Version = 3 ;
indicatorOfParameter = 8 ;
}
+#Geometrical height
+'h' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 8 ;
+ }
+#Geometrical height
+'h' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 8 ;
+ }
#Standard deviation of height
-'p3009' = {
+'hstdv' = {
table2Version = 3 ;
indicatorOfParameter = 9 ;
}
+#Standard deviation of height
+'hstdv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 9 ;
+ }
+#Standard deviation of height
+'hstdv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 9 ;
+ }
#Pseudo-adiabatic potential temperature
-'p3014' = {
+'papt' = {
table2Version = 3 ;
indicatorOfParameter = 14 ;
}
+#Pseudo-adiabatic potential temperature
+'papt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 14 ;
+ }
+#Pseudo-adiabatic potential temperature
+'papt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 14 ;
+ }
#Maximum temperature
-'p3015' = {
+'tmax' = {
table2Version = 3 ;
indicatorOfParameter = 15 ;
}
+#Maximum temperature
+'tmax' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ }
+#Maximum temperature
+'tmax' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ }
#Minimum temperature
-'p3016' = {
+'tmin' = {
table2Version = 3 ;
indicatorOfParameter = 16 ;
}
+#Minimum temperature
+'tmin' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ }
+#Minimum temperature
+'tmin' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ }
#Dew point temperature
-'p3017' = {
+'dpt' = {
table2Version = 3 ;
indicatorOfParameter = 17 ;
}
+#Dew point temperature
+'dpt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ }
+#Dew point temperature
+'dpt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ }
#Dew point depression (or deficit)
-'p3018' = {
+'depr' = {
table2Version = 3 ;
indicatorOfParameter = 18 ;
}
+#Dew point depression (or deficit)
+'depr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 18 ;
+ }
+#Dew point depression (or deficit)
+'depr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 18 ;
+ }
#Lapse rate
-'p3019' = {
+'lapr' = {
table2Version = 3 ;
indicatorOfParameter = 19 ;
}
+#Lapse rate
+'lapr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 19 ;
+ }
+#Lapse rate
+'lapr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 19 ;
+ }
#Visibility
-'p3020' = {
+'vis' = {
table2Version = 3 ;
indicatorOfParameter = 20 ;
}
+#Visibility
+'vis' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 20 ;
+ }
+#Visibility
+'vis' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 20 ;
+ }
#Radar spectra (1)
-'p3021' = {
+'rdsp1' = {
table2Version = 3 ;
indicatorOfParameter = 21 ;
}
+#Radar spectra (1)
+'rdsp1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 21 ;
+ }
+#Radar spectra (1)
+'rdsp1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 21 ;
+ }
#Radar spectra (2)
-'p3022' = {
+'rdsp2' = {
table2Version = 3 ;
indicatorOfParameter = 22 ;
}
+#Radar spectra (2)
+'rdsp2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 22 ;
+ }
+#Radar spectra (2)
+'rdsp2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 22 ;
+ }
#Radar spectra (3)
-'p3023' = {
+'rdsp3' = {
table2Version = 3 ;
indicatorOfParameter = 23 ;
}
+#Radar spectra (3)
+'rdsp3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 23 ;
+ }
+#Radar spectra (3)
+'rdsp3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 23 ;
+ }
#Parcel lifted index (to 500 hPa)
-'p3024' = {
+'pli' = {
table2Version = 3 ;
indicatorOfParameter = 24 ;
}
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 24 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 24 ;
+ }
#Temperature anomaly
-'p3025' = {
+'ta' = {
table2Version = 3 ;
indicatorOfParameter = 25 ;
}
+#Temperature anomaly
+'ta' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 25 ;
+ }
+#Temperature anomaly
+'ta' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 25 ;
+ }
#Pressure anomaly
-'p3026' = {
+'presa' = {
table2Version = 3 ;
indicatorOfParameter = 26 ;
}
+#Pressure anomaly
+'presa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 26 ;
+ }
+#Pressure anomaly
+'presa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 26 ;
+ }
#Geopotential height anomaly
-'p3027' = {
+'gpa' = {
table2Version = 3 ;
indicatorOfParameter = 27 ;
}
+#Geopotential height anomaly
+'gpa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 27 ;
+ }
+#Geopotential height anomaly
+'gpa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 27 ;
+ }
#Wave spectra (1)
-'p3028' = {
+'wvsp1' = {
table2Version = 3 ;
indicatorOfParameter = 28 ;
}
+#Wave spectra (1)
+'wvsp1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 28 ;
+ }
+#Wave spectra (1)
+'wvsp1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 28 ;
+ }
#Wave spectra (2)
-'p3029' = {
+'wvsp2' = {
table2Version = 3 ;
indicatorOfParameter = 29 ;
}
+#Wave spectra (2)
+'wvsp2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 29 ;
+ }
+#Wave spectra (2)
+'wvsp2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 29 ;
+ }
#Wave spectra (3)
-'p3030' = {
+'wvsp3' = {
table2Version = 3 ;
indicatorOfParameter = 30 ;
}
+#Wave spectra (3)
+'wvsp3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 30 ;
+ }
+#Wave spectra (3)
+'wvsp3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 30 ;
+ }
#Wind direction
-'p3031' = {
+'wdir' = {
table2Version = 3 ;
indicatorOfParameter = 31 ;
}
+#Wind direction
+'wdir' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 31 ;
+ }
+#Wind direction
+'wdir' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 31 ;
+ }
#Montgomery stream Function
-'p3037' = {
+'mntsf' = {
table2Version = 3 ;
indicatorOfParameter = 37 ;
}
+#Montgomery stream Function
+'mntsf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 37 ;
+ }
+#Montgomery stream Function
+'mntsf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 37 ;
+ }
#Sigma coordinate vertical velocity
-'p3038' = {
+'sgcvv' = {
table2Version = 3 ;
indicatorOfParameter = 38 ;
}
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 38 ;
+ }
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 38 ;
+ }
#Absolute vorticity
-'p3041' = {
+'absv' = {
table2Version = 3 ;
indicatorOfParameter = 41 ;
}
+#Absolute vorticity
+'absv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 41 ;
+ }
+#Absolute vorticity
+'absv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 41 ;
+ }
#Absolute divergence
-'p3042' = {
+'absd' = {
table2Version = 3 ;
indicatorOfParameter = 42 ;
}
+#Absolute divergence
+'absd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 42 ;
+ }
+#Absolute divergence
+'absd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 42 ;
+ }
#Vertical u-component shear
-'p3045' = {
+'vucsh' = {
table2Version = 3 ;
indicatorOfParameter = 45 ;
}
+#Vertical u-component shear
+'vucsh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 45 ;
+ }
+#Vertical u-component shear
+'vucsh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 45 ;
+ }
#Vertical v-component shear
-'p3046' = {
+'vvcsh' = {
table2Version = 3 ;
indicatorOfParameter = 46 ;
}
+#Vertical v-component shear
+'vvcsh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 46 ;
+ }
+#Vertical v-component shear
+'vvcsh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 46 ;
+ }
#Direction of current
-'p3047' = {
+'dirc' = {
table2Version = 3 ;
indicatorOfParameter = 47 ;
}
+#Direction of current
+'dirc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 47 ;
+ }
+#Direction of current
+'dirc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 47 ;
+ }
#Speed of current
-'p3048' = {
+'spc' = {
table2Version = 3 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'p3049' = {
- table2Version = 3 ;
- indicatorOfParameter = 49 ;
+#Speed of current
+'spc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 48 ;
}
-#V-component of current
-'p3050' = {
- table2Version = 3 ;
- indicatorOfParameter = 50 ;
+#Speed of current
+'spc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 48 ;
}
#Humidity mixing ratio
-'p3053' = {
+'mixr' = {
table2Version = 3 ;
indicatorOfParameter = 53 ;
}
+#Humidity mixing ratio
+'mixr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 53 ;
+ }
+#Humidity mixing ratio
+'mixr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 53 ;
+ }
#Precipitable water
-'p3054' = {
+'pwat' = {
table2Version = 3 ;
indicatorOfParameter = 54 ;
}
+#Precipitable water
+'pwat' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 54 ;
+ }
+#Precipitable water
+'pwat' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 54 ;
+ }
#Vapour pressure
-'p3055' = {
+'vp' = {
table2Version = 3 ;
indicatorOfParameter = 55 ;
}
+#Vapour pressure
+'vp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 55 ;
+ }
+#Vapour pressure
+'vp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 55 ;
+ }
#Saturation deficit
-'p3056' = {
+'satd' = {
table2Version = 3 ;
indicatorOfParameter = 56 ;
}
+#Saturation deficit
+'satd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 56 ;
+ }
+#Saturation deficit
+'satd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 56 ;
+ }
#Precipitation rate
-'p3059' = {
+'prate' = {
table2Version = 3 ;
indicatorOfParameter = 59 ;
}
+#Precipitation rate
+'prate' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 59 ;
+ }
+#Precipitation rate
+'prate' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 59 ;
+ }
#Thunderstorm probability
-'p3060' = {
+'tstm' = {
table2Version = 3 ;
indicatorOfParameter = 60 ;
}
+#Thunderstorm probability
+'tstm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 60 ;
+ }
+#Thunderstorm probability
+'tstm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 60 ;
+ }
#Convective precipitation (water)
-'p3063' = {
+'acpcp' = {
table2Version = 3 ;
indicatorOfParameter = 63 ;
}
+#Convective precipitation (water)
+'acpcp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'acpcp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 63 ;
+ }
#Snow fall rate water equivalent
-'p3064' = {
+'srweq' = {
table2Version = 3 ;
indicatorOfParameter = 64 ;
}
+#Snow fall rate water equivalent
+'srweq' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 64 ;
+ }
+#Snow fall rate water equivalent
+'srweq' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 64 ;
+ }
#Mixed layer depth
-'p3067' = {
+'mld' = {
table2Version = 3 ;
indicatorOfParameter = 67 ;
}
+#Mixed layer depth
+'mld' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 67 ;
+ }
+#Mixed layer depth
+'mld' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 67 ;
+ }
#Transient thermocline depth
-'p3068' = {
+'tthdp' = {
table2Version = 3 ;
indicatorOfParameter = 68 ;
}
+#Transient thermocline depth
+'tthdp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 68 ;
+ }
+#Transient thermocline depth
+'tthdp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 68 ;
+ }
#Main thermocline depth
-'p3069' = {
+'mthd' = {
table2Version = 3 ;
indicatorOfParameter = 69 ;
}
+#Main thermocline depth
+'mthd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 69 ;
+ }
+#Main thermocline depth
+'mthd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 69 ;
+ }
#Main thermocline anomaly
-'p3070' = {
+'mtha' = {
table2Version = 3 ;
indicatorOfParameter = 70 ;
}
+#Main thermocline anomaly
+'mtha' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 70 ;
+ }
+#Main thermocline anomaly
+'mtha' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 70 ;
+ }
#Best lifted index (to 500 hPa)
-'p3077' = {
+'bli' = {
table2Version = 3 ;
indicatorOfParameter = 77 ;
}
+#Best lifted index (to 500 hPa)
+'bli' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 77 ;
+ }
+#Best lifted index (to 500 hPa)
+'bli' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 77 ;
+ }
#Water temperature
-'p3080' = {
+'wtmp' = {
table2Version = 3 ;
indicatorOfParameter = 80 ;
}
+#Water temperature
+'wtmp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 80 ;
+ }
+#Water temperature
+'wtmp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 80 ;
+ }
#Deviation of sea-level from mean
-'p3082' = {
+'dslm' = {
table2Version = 3 ;
indicatorOfParameter = 82 ;
}
+#Deviation of sea-level from mean
+'dslm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 82 ;
+ }
+#Deviation of sea-level from mean
+'dslm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 82 ;
+ }
#Soil moisture content
-'p3086' = {
+'ssw' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture content
+'ssw' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture content
+'ssw' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Salinity
-'p3088' = {
+'s' = {
table2Version = 3 ;
indicatorOfParameter = 88 ;
}
+#Salinity
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 88 ;
+ }
+#Salinity
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 88 ;
+ }
#Density
-'p3089' = {
+'den' = {
table2Version = 3 ;
indicatorOfParameter = 89 ;
}
+#Density
+'den' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 89 ;
+ }
+#Density
+'den' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 89 ;
+ }
#Ice cover (1=ice, 0=no ice)
-'p3091' = {
+'icec' = {
table2Version = 3 ;
indicatorOfParameter = 91 ;
}
+#Ice cover (1=ice, 0=no ice)
+'icec' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 91 ;
+ }
+#Ice cover (1=ice, 0=no ice)
+'icec' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 91 ;
+ }
#Ice thickness
-'p3092' = {
+'icetk' = {
table2Version = 3 ;
indicatorOfParameter = 92 ;
}
+#Ice thickness
+'icetk' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 92 ;
+ }
+#Ice thickness
+'icetk' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 92 ;
+ }
#Direction of ice drift
-'p3093' = {
+'diced' = {
table2Version = 3 ;
indicatorOfParameter = 93 ;
}
+#Direction of ice drift
+'diced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 93 ;
+ }
+#Direction of ice drift
+'diced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 93 ;
+ }
#Speed of ice drift
-'p3094' = {
+'siced' = {
table2Version = 3 ;
indicatorOfParameter = 94 ;
}
+#Speed of ice drift
+'siced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 94 ;
+ }
+#Speed of ice drift
+'siced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 94 ;
+ }
#U-component of ice drift
-'p3095' = {
+'uice' = {
table2Version = 3 ;
indicatorOfParameter = 95 ;
}
+#U-component of ice drift
+'uice' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 95 ;
+ }
+#U-component of ice drift
+'uice' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 95 ;
+ }
#V-component of ice drift
-'p3096' = {
+'vice' = {
table2Version = 3 ;
indicatorOfParameter = 96 ;
}
+#V-component of ice drift
+'vice' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 96 ;
+ }
+#V-component of ice drift
+'vice' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 96 ;
+ }
#Ice growth rate
-'p3097' = {
+'iceg' = {
table2Version = 3 ;
indicatorOfParameter = 97 ;
}
+#Ice growth rate
+'iceg' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 97 ;
+ }
+#Ice growth rate
+'iceg' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 97 ;
+ }
#Ice divergence
-'p3098' = {
+'iced' = {
table2Version = 3 ;
indicatorOfParameter = 98 ;
}
+#Ice divergence
+'iced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 98 ;
+ }
+#Ice divergence
+'iced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 98 ;
+ }
#Snowmelt
'snom' = {
table2Version = 3 ;
indicatorOfParameter = 99 ;
}
+#Snowmelt
+'snom' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 99 ;
+ }
+#Snowmelt
+'snom' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 99 ;
+ }
#Signific.height,combined wind waves+swell
-'p3100' = {
+'swh' = {
table2Version = 3 ;
indicatorOfParameter = 100 ;
}
+#Signific.height,combined wind waves+swell
+'swh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 100 ;
+ }
+#Signific.height,combined wind waves+swell
+'swh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 100 ;
+ }
#Mean direction of wind waves
-'p3101' = {
+'mdww' = {
table2Version = 3 ;
indicatorOfParameter = 101 ;
}
+#Mean direction of wind waves
+'mdww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 101 ;
+ }
+#Mean direction of wind waves
+'mdww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 101 ;
+ }
#Significant height of wind waves
-'p3102' = {
+'shww' = {
table2Version = 3 ;
indicatorOfParameter = 102 ;
}
+#Significant height of wind waves
+'shww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 102 ;
+ }
+#Significant height of wind waves
+'shww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 102 ;
+ }
#Mean period of wind waves
-'p3103' = {
+'mpww' = {
table2Version = 3 ;
indicatorOfParameter = 103 ;
}
+#Mean period of wind waves
+'mpww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 103 ;
+ }
+#Mean period of wind waves
+'mpww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 103 ;
+ }
#Direction of swell waves
-'p3104' = {
+'swdir' = {
table2Version = 3 ;
indicatorOfParameter = 104 ;
}
+#Direction of swell waves
+'swdir' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 104 ;
+ }
+#Direction of swell waves
+'swdir' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 104 ;
+ }
#Significant height of swell waves
-'p3105' = {
+'swell' = {
table2Version = 3 ;
indicatorOfParameter = 105 ;
}
+#Significant height of swell waves
+'swell' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 105 ;
+ }
+#Significant height of swell waves
+'swell' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 105 ;
+ }
#Mean period of swell waves
-'p3106' = {
+'swper' = {
table2Version = 3 ;
indicatorOfParameter = 106 ;
}
+#Mean period of swell waves
+'swper' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 106 ;
+ }
+#Mean period of swell waves
+'swper' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 106 ;
+ }
#Primary wave direction
-'p3107' = {
+'mdps' = {
table2Version = 3 ;
indicatorOfParameter = 107 ;
}
+#Primary wave direction
+'mdps' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 107 ;
+ }
+#Primary wave direction
+'mdps' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 107 ;
+ }
#Primary wave mean period
-'p3108' = {
+'mpps' = {
table2Version = 3 ;
indicatorOfParameter = 108 ;
}
+#Primary wave mean period
+'mpps' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 108 ;
+ }
+#Primary wave mean period
+'mpps' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 108 ;
+ }
#Secondary wave direction
-'p3109' = {
+'dirsw' = {
table2Version = 3 ;
indicatorOfParameter = 109 ;
}
+#Secondary wave direction
+'dirsw' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 109 ;
+ }
+#Secondary wave direction
+'dirsw' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 109 ;
+ }
#Secondary wave mean period
-'p3110' = {
+'swp' = {
table2Version = 3 ;
indicatorOfParameter = 110 ;
}
+#Secondary wave mean period
+'swp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 110 ;
+ }
+#Secondary wave mean period
+'swp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 110 ;
+ }
#Net short-wave radiation flux (surface)
-'p3111' = {
+'nswrs' = {
table2Version = 3 ;
indicatorOfParameter = 111 ;
}
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 111 ;
+ }
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 111 ;
+ }
#Net long-wave radiation flux (surface)
-'p3112' = {
+'nlwrs' = {
table2Version = 3 ;
indicatorOfParameter = 112 ;
}
+#Net long-wave radiation flux (surface)
+'nlwrs' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 112 ;
+ }
+#Net long-wave radiation flux (surface)
+'nlwrs' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 112 ;
+ }
#Net short-wave radiation flux(atmosph.top)
-'p3113' = {
+'nswrt' = {
table2Version = 3 ;
indicatorOfParameter = 113 ;
}
+#Net short-wave radiation flux(atmosph.top)
+'nswrt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 113 ;
+ }
+#Net short-wave radiation flux(atmosph.top)
+'nswrt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 113 ;
+ }
#Net long-wave radiation flux(atmosph.top)
-'p3114' = {
+'nlwrt' = {
table2Version = 3 ;
indicatorOfParameter = 114 ;
}
+#Net long-wave radiation flux(atmosph.top)
+'nlwrt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 114 ;
+ }
+#Net long-wave radiation flux(atmosph.top)
+'nlwrt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 114 ;
+ }
#Long wave radiation flux
-'p3115' = {
+'lwavr' = {
table2Version = 3 ;
indicatorOfParameter = 115 ;
}
+#Long wave radiation flux
+'lwavr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 115 ;
+ }
+#Long wave radiation flux
+'lwavr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 115 ;
+ }
#Short wave radiation flux
-'p3116' = {
+'swavr' = {
table2Version = 3 ;
indicatorOfParameter = 116 ;
}
+#Short wave radiation flux
+'swavr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 116 ;
+ }
+#Short wave radiation flux
+'swavr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 116 ;
+ }
#Global radiation flux
-'p3117' = {
+'grad' = {
table2Version = 3 ;
indicatorOfParameter = 117 ;
}
+#Global radiation flux
+'grad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 117 ;
+ }
+#Global radiation flux
+'grad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 117 ;
+ }
#Radiance (with respect to wave number)
-'p3119' = {
+'lwrad' = {
table2Version = 3 ;
indicatorOfParameter = 119 ;
}
+#Radiance (with respect to wave number)
+'lwrad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 119 ;
+ }
+#Radiance (with respect to wave number)
+'lwrad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 119 ;
+ }
#Radiance (with respect to wave length)
-'p3120' = {
+'swrad' = {
table2Version = 3 ;
indicatorOfParameter = 120 ;
}
+#Radiance (with respect to wave length)
+'swrad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 120 ;
+ }
+#Radiance (with respect to wave length)
+'swrad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 120 ;
+ }
#Momentum flux, u-component
-'p3124' = {
+'uflx' = {
table2Version = 3 ;
indicatorOfParameter = 124 ;
}
+#Momentum flux, u-component
+'uflx' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 124 ;
+ }
+#Momentum flux, u-component
+'uflx' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 124 ;
+ }
#Momentum flux, v-component
-'p3125' = {
+'vflx' = {
table2Version = 3 ;
indicatorOfParameter = 125 ;
}
+#Momentum flux, v-component
+'vflx' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 125 ;
+ }
+#Momentum flux, v-component
+'vflx' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 125 ;
+ }
#Wind mixing energy
-'p3126' = {
+'wmixe' = {
table2Version = 3 ;
indicatorOfParameter = 126 ;
}
+#Wind mixing energy
+'wmixe' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 126 ;
+ }
+#Wind mixing energy
+'wmixe' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 126 ;
+ }
#Image data
-'p3127' = {
+'imgd' = {
table2Version = 3 ;
indicatorOfParameter = 127 ;
}
+#Image data
+'imgd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 127 ;
+ }
+#Image data
+'imgd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 127 ;
+ }
#Percentage of vegetation
'vegrea' = {
table2Version = 3 ;
indicatorOfParameter = 87 ;
}
+#Percentage of vegetation
+'vegrea' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 87 ;
+ }
+#Percentage of vegetation
+'vegrea' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 87 ;
+ }
#Orography
'orog' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Orography
+'orog' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Orography
+'orog' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Soil moisture
'sm' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture
+'sm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture
+'sm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Soil temperature
'st' = {
table2Version = 3 ;
indicatorOfParameter = 85 ;
}
+#Soil temperature
+'st' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 85 ;
+ }
+#Soil temperature
+'st' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 85 ;
+ }
#Snowfall water equivalent
'sf' = {
table2Version = 3 ;
indicatorOfParameter = 65 ;
}
+#Snowfall water equivalent
+'sf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 65 ;
+ }
+#Snowfall water equivalent
+'sf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 65 ;
+ }
#Total Cloud Cover
'tcc' = {
table2Version = 3 ;
indicatorOfParameter = 71 ;
}
+#Total Cloud Cover
+'tcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 71 ;
+ }
+#Total Cloud Cover
+'tcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 71 ;
+ }
#Total Precipitation
'tp' = {
table2Version = 3 ;
@@ -695,680 +2013,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'strf' = {
- table2Version = 2 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'vp' = {
- table2Version = 2 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'pt' = {
- table2Version = 2 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'ws' = {
- table2Version = 2 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'pres' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'pv' = {
- table2Version = 2 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'z' = {
- table2Version = 2 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'t' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'u' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'v' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'q' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'sp' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'w' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'vo' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'msl' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'d' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gh' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'r' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'u10' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'v10' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'t2m' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'d2m' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'lsm' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'sr' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'e' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'btmp' = {
- table2Version = 2 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'ro' = {
- table2Version = 2 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'tco3' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'lsp' = {
- table2Version = 2 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'sd' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'ccc' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'lcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'mcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'hcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'lssf' = {
- table2Version = 2 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'lhf' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'shf' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'bld' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'snoc' = {
- table2Version = 2 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'p260102' = {
- table2Version = 2 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'al' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'p3003' = {
- table2Version = 2 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'p3005' = {
- table2Version = 2 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'p3008' = {
- table2Version = 2 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'p3009' = {
- table2Version = 2 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'p3014' = {
- table2Version = 2 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'p3015' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'p3016' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'p3017' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'p3018' = {
- table2Version = 2 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'p3019' = {
- table2Version = 2 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'p3020' = {
- table2Version = 2 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'p3021' = {
- table2Version = 2 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'p3022' = {
- table2Version = 2 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'p3023' = {
- table2Version = 2 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'p3024' = {
- table2Version = 2 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'p3025' = {
- table2Version = 2 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'p3026' = {
- table2Version = 2 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'p3027' = {
- table2Version = 2 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'p3028' = {
- table2Version = 2 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'p3029' = {
- table2Version = 2 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'p3030' = {
- table2Version = 2 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'p3031' = {
- table2Version = 2 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'p3037' = {
- table2Version = 2 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'p3038' = {
- table2Version = 2 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'p3041' = {
- table2Version = 2 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'p3042' = {
- table2Version = 2 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'p3045' = {
- table2Version = 2 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'p3046' = {
- table2Version = 2 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'p3047' = {
- table2Version = 2 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'p3048' = {
- table2Version = 2 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'p3049' = {
- table2Version = 2 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'p3050' = {
- table2Version = 2 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'p3053' = {
- table2Version = 2 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'p3054' = {
- table2Version = 2 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'p3055' = {
- table2Version = 2 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'p3056' = {
- table2Version = 2 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'p3059' = {
- table2Version = 2 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'p3060' = {
- table2Version = 2 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'p3063' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'p3064' = {
- table2Version = 2 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'p3067' = {
- table2Version = 2 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'p3068' = {
- table2Version = 2 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'p3069' = {
- table2Version = 2 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'p3070' = {
- table2Version = 2 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'p3077' = {
- table2Version = 2 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'p3080' = {
- table2Version = 2 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'p3082' = {
- table2Version = 2 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'p3086' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'p3088' = {
- table2Version = 2 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'p3089' = {
- table2Version = 2 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'p3091' = {
- table2Version = 2 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'p3092' = {
- table2Version = 2 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'p3093' = {
- table2Version = 2 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'p3094' = {
- table2Version = 2 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'p3095' = {
- table2Version = 2 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'p3096' = {
- table2Version = 2 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'p3097' = {
- table2Version = 2 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'p3098' = {
- table2Version = 2 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'snom' = {
- table2Version = 2 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'p3100' = {
- table2Version = 2 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'p3101' = {
- table2Version = 2 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'p3102' = {
- table2Version = 2 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'p3103' = {
- table2Version = 2 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'p3104' = {
- table2Version = 2 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'p3105' = {
- table2Version = 2 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'p3106' = {
- table2Version = 2 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'p3107' = {
- table2Version = 2 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'p3108' = {
- table2Version = 2 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'p3109' = {
- table2Version = 2 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'p3110' = {
- table2Version = 2 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'p3111' = {
- table2Version = 2 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'p3112' = {
- table2Version = 2 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'p3113' = {
- table2Version = 2 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'p3114' = {
- table2Version = 2 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'p3115' = {
- table2Version = 2 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'p3116' = {
- table2Version = 2 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'p3117' = {
- table2Version = 2 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'p3119' = {
- table2Version = 2 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'p3120' = {
- table2Version = 2 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'p3124' = {
- table2Version = 2 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'p3125' = {
- table2Version = 2 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'p3126' = {
- table2Version = 2 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'p3127' = {
- table2Version = 2 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'vegrea' = {
- table2Version = 2 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'orog' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'sm' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'st' = {
- table2Version = 2 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'sf' = {
- table2Version = 2 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'tcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'tp' = {
table2Version = 2 ;
@@ -1376,680 +2020,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'strf' = {
- table2Version = 1 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'vp' = {
- table2Version = 1 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'pt' = {
- table2Version = 1 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'ws' = {
- table2Version = 1 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'pres' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'pv' = {
- table2Version = 1 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'z' = {
- table2Version = 1 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'t' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'u' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'v' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'q' = {
- table2Version = 1 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'sp' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'w' = {
- table2Version = 1 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'vo' = {
- table2Version = 1 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'msl' = {
- table2Version = 1 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'d' = {
- table2Version = 1 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gh' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'r' = {
- table2Version = 1 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'u10' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'v10' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'t2m' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'d2m' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'lsm' = {
- table2Version = 1 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'sr' = {
- table2Version = 1 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'e' = {
- table2Version = 1 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'btmp' = {
- table2Version = 1 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'ro' = {
- table2Version = 1 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'tco3' = {
- table2Version = 1 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'lsp' = {
- table2Version = 1 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'sd' = {
- table2Version = 1 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'ccc' = {
- table2Version = 1 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'lcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'mcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'hcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'lssf' = {
- table2Version = 1 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'lhf' = {
- table2Version = 1 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'shf' = {
- table2Version = 1 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'bld' = {
- table2Version = 1 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'snoc' = {
- table2Version = 1 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'p260102' = {
- table2Version = 1 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'al' = {
- table2Version = 1 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'p3003' = {
- table2Version = 1 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'p3005' = {
- table2Version = 1 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'p3008' = {
- table2Version = 1 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'p3009' = {
- table2Version = 1 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'p3014' = {
- table2Version = 1 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'p3015' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'p3016' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'p3017' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'p3018' = {
- table2Version = 1 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'p3019' = {
- table2Version = 1 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'p3020' = {
- table2Version = 1 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'p3021' = {
- table2Version = 1 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'p3022' = {
- table2Version = 1 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'p3023' = {
- table2Version = 1 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'p3024' = {
- table2Version = 1 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'p3025' = {
- table2Version = 1 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'p3026' = {
- table2Version = 1 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'p3027' = {
- table2Version = 1 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'p3028' = {
- table2Version = 1 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'p3029' = {
- table2Version = 1 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'p3030' = {
- table2Version = 1 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'p3031' = {
- table2Version = 1 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'p3037' = {
- table2Version = 1 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'p3038' = {
- table2Version = 1 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'p3041' = {
- table2Version = 1 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'p3042' = {
- table2Version = 1 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'p3045' = {
- table2Version = 1 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'p3046' = {
- table2Version = 1 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'p3047' = {
- table2Version = 1 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'p3048' = {
- table2Version = 1 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'p3049' = {
- table2Version = 1 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'p3050' = {
- table2Version = 1 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'p3053' = {
- table2Version = 1 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'p3054' = {
- table2Version = 1 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'p3055' = {
- table2Version = 1 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'p3056' = {
- table2Version = 1 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'p3059' = {
- table2Version = 1 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'p3060' = {
- table2Version = 1 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'p3063' = {
- table2Version = 1 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'p3064' = {
- table2Version = 1 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'p3067' = {
- table2Version = 1 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'p3068' = {
- table2Version = 1 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'p3069' = {
- table2Version = 1 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'p3070' = {
- table2Version = 1 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'p3077' = {
- table2Version = 1 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'p3080' = {
- table2Version = 1 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'p3082' = {
- table2Version = 1 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'p3086' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'p3088' = {
- table2Version = 1 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'p3089' = {
- table2Version = 1 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'p3091' = {
- table2Version = 1 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'p3092' = {
- table2Version = 1 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'p3093' = {
- table2Version = 1 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'p3094' = {
- table2Version = 1 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'p3095' = {
- table2Version = 1 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'p3096' = {
- table2Version = 1 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'p3097' = {
- table2Version = 1 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'p3098' = {
- table2Version = 1 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'snom' = {
- table2Version = 1 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'p3100' = {
- table2Version = 1 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'p3101' = {
- table2Version = 1 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'p3102' = {
- table2Version = 1 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'p3103' = {
- table2Version = 1 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'p3104' = {
- table2Version = 1 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'p3105' = {
- table2Version = 1 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'p3106' = {
- table2Version = 1 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'p3107' = {
- table2Version = 1 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'p3108' = {
- table2Version = 1 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'p3109' = {
- table2Version = 1 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'p3110' = {
- table2Version = 1 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'p3111' = {
- table2Version = 1 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'p3112' = {
- table2Version = 1 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'p3113' = {
- table2Version = 1 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'p3114' = {
- table2Version = 1 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'p3115' = {
- table2Version = 1 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'p3116' = {
- table2Version = 1 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'p3117' = {
- table2Version = 1 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'p3119' = {
- table2Version = 1 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'p3120' = {
- table2Version = 1 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'p3124' = {
- table2Version = 1 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'p3125' = {
- table2Version = 1 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'p3126' = {
- table2Version = 1 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'p3127' = {
- table2Version = 1 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'vegrea' = {
- table2Version = 1 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'orog' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'sm' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'st' = {
- table2Version = 1 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'sf' = {
- table2Version = 1 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'tcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'tp' = {
table2Version = 1 ;
diff --git a/definitions/grib1/data.grid_second_order_row_by_row.def b/definitions/grib1/data.grid_second_order_row_by_row.def
index 465ebdb6d..bb41ea8b8 100644
--- a/definitions/grib1/data.grid_second_order_row_by_row.def
+++ b/definitions/grib1/data.grid_second_order_row_by_row.def
@@ -49,7 +49,7 @@ if(bitmapPresent) {
bitmap
): read_only;
- alias data.packedValues = codedValues;
+ alias data.packedValues = codedValues;
meta values data_apply_bitmap(codedValues,bitmap,missingValue,binaryScaleFactor) : dump;
} else {
diff --git a/definitions/grib1/data.grid_simple_matrix.def b/definitions/grib1/data.grid_simple_matrix.def
index 5f8543e25..ae785ed71 100644
--- a/definitions/grib1/data.grid_simple_matrix.def
+++ b/definitions/grib1/data.grid_simple_matrix.def
@@ -175,6 +175,6 @@ if(matrixOfValues == 0)
}
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ibm) : no_copy;
meta numberOfCodedValues number_of_coded_values(bitsPerValue,offsetBeforeData,offsetAfterData,halfByte,numberOfValues) : dump;
-
+
template statistics "common/statistics_grid.def";
template missing_values "common/missing_values_grid.def";
diff --git a/definitions/grib1/grid_definition_192.78.def b/definitions/grib1/grid_definition_192.78.def
index e70f7019a..c4689a99a 100644
--- a/definitions/grib1/grid_definition_192.78.def
+++ b/definitions/grib1/grid_definition_192.78.def
@@ -2,6 +2,8 @@
# DWD local grid definition 192 - triangular grid base on icosahedron subdivision
+constant isGridded = true;
+
# n2 - exponent of 2 for the number of intervals on main triangle sides
unsigned[2] n2 : dump ;
@@ -36,7 +38,7 @@ flags[1] scanningModeForOneDiamond 'grib1/grid.192.78.3.10.table';
transient numberOfPoints= nd *(Ni + 1) * (Ni + 1);
alias numberOfDataPoints=numberOfPoints;
-
+
meta numberOfValues
number_of_values(values,bitsPerValue,numberOfDataPoints,
bitmapPresent,bitmap,numberOfCodedValues) : dump;
diff --git a/definitions/grib1/grid_definition_spherical_harmonics.def b/definitions/grib1/grid_definition_spherical_harmonics.def
index f82b5c7f3..eadb3224b 100644
--- a/definitions/grib1/grid_definition_spherical_harmonics.def
+++ b/definitions/grib1/grid_definition_spherical_harmonics.def
@@ -1,5 +1,5 @@
# GRID DEFINITION spherical harmonic coefficients (including rotated, stretched, or stretched and rotated)
-constant isGridded = zero;
+constant isGridded = false;
# J - pentagonal resolution parameter
unsigned[2] J : dump ;
diff --git a/definitions/grib1/grid_rotation.def b/definitions/grib1/grid_rotation.def
index cd05657fb..1f37d6ab3 100644
--- a/definitions/grib1/grid_rotation.def
+++ b/definitions/grib1/grid_rotation.def
@@ -8,5 +8,5 @@ meta geography.longitudeOfSouthernPoleInDegrees scale(longitudeOfSouthernPole ,o
ibmfloat geography.angleOfRotationInDegrees : dump;
-alias angleOfRotation =angleOfRotationInDegrees;
-alias isRotatedGrid = one;
+alias angleOfRotation = angleOfRotationInDegrees;
+alias isRotatedGrid = true;
diff --git a/definitions/grib1/local.214.1.def b/definitions/grib1/local.214.1.def
index feaede42a..51e0254aa 100644
--- a/definitions/grib1/local.214.1.def
+++ b/definitions/grib1/local.214.1.def
@@ -1,16 +1,15 @@
# (C) Copyright 2005- ECMWF.
-#
-# 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 -
-#number 50 I1 42 -
-#total 51 I1 43 -
-#spareSetToZero 52 PAD n/a 1
+# 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 -
+#number 50 I1 42 -
+#total 51 I1 43 -
+#spareSetToZero 52 PAD n/a 1
#
template mars_labeling "grib1/mars_labeling.def";
diff --git a/definitions/grib1/local.82.0.def b/definitions/grib1/local.82.0.def
index 3cd3670c8..58bd2df58 100644
--- a/definitions/grib1/local.82.0.def
+++ b/definitions/grib1/local.82.0.def
@@ -1,5 +1,3 @@
-#! ---------------------------
-#!
#!Description Octet Code Ksec1 Count
#!----------- ----- ----- ----- -----
#!
@@ -14,17 +12,12 @@
#
# author: Sebastien Villaume
# created: 6 Oct 2011
-# modified: 13 May 2013
-#
-#######################
-### LOCAL SECTION 0 ###
-#######################
+# modified: 13 May 2013
#
# This piece of definition is common to all SMHI definitions
# It is only accessed through "include" statement inside local.82.x.def
#
-
codetable[1] marsClass "mars/eswi/class.table" : dump,lowercase;
codetable[1] marsType "mars/eswi/type.table" : dump,lowercase,string_type;
codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type;
@@ -36,4 +29,3 @@ ksec1expver[4] experimentVersionNumber = "0000" : dump;
pad reservedNeedNotBePresent(2);
codetable[1] marsModel "mars/eswi/model.table" : dump,lowercase,string_type;
-
diff --git a/definitions/grib1/local.82.82.def b/definitions/grib1/local.82.82.def
index 0ecc03562..88fd49206 100644
--- a/definitions/grib1/local.82.82.def
+++ b/definitions/grib1/local.82.82.def
@@ -1,13 +1,7 @@
-#########################
-#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 20 Feb 2014
#
-########################
-### LOCAL SECTION 82 ###
-########################
-
constant GRIBEXSection1Problem = 53 - section1Length;
# base local definition
@@ -15,4 +9,3 @@ include "grib1/local.82.0.def";
unsigned[1] marsExperimentOffset = 0 : dump, long_type;
-
diff --git a/definitions/grib1/local.82.83.def b/definitions/grib1/local.82.83.def
index 9098eea80..a617e2d91 100644
--- a/definitions/grib1/local.82.83.def
+++ b/definitions/grib1/local.82.83.def
@@ -21,15 +21,13 @@
#MeanSize 70-71 I2 57 -
#StandardDeviation 72-73 I2 58 -
#PartDef 74 PAD n/a 7
-################################################################
+##########################################################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 20 Feb 2014
#
-#########################
### LOCAL SECTION 83 ###
-#########################
constant GRIBEXSection1Problem = 80 - section1Length;
@@ -53,4 +51,3 @@ unsigned[2] meanSize : dump;
unsigned[2] standardDeviation : dump;
pad padding_local1_1(7);
-
diff --git a/definitions/grib1/local.82.def b/definitions/grib1/local.82.def
index e177694e7..b7ebab5a3 100644
--- a/definitions/grib1/local.82.def
+++ b/definitions/grib1/local.82.def
@@ -1,26 +1,14 @@
#
# Definition for SMHI Swedish Meteorological and Hydrological Institut.
-#
-# contact: sebastien.villaume@smhi.se
#
-
-
-########################
-### LOCAL DEFINITION ###
-########################
+# contact: sebastien.villaume@smhi.se
codetable[1] localDefinitionNumber 'grib1/localDefinitionNumber.82.table' = 82 : dump;
template localDefinition "grib1/local.82.[localDefinitionNumber:l].def";
-###################
### LS LABELING ###
-###################
-
template ls_labeling "grib1/ls_labeling.82.def";
-#####################
### MARS LABELING ###
-#####################
-
template mars_labeling "grib1/mars_labeling.82.def";
-template_nofail marsKeywords "mars/eswi/grib1.[stream:s].[type:s].def";
+template_nofail marsKeywords "mars/eswi/grib1.[stream:s].[type:s].def";
diff --git a/definitions/grib1/local.98.27.def b/definitions/grib1/local.98.27.def
index 04e5a1e08..cf2cb3661 100644
--- a/definitions/grib1/local.98.27.def
+++ b/definitions/grib1/local.98.27.def
@@ -12,7 +12,7 @@ constant wrongPadding=1 : hidden;
unsigned[1] perturbationNumber : dump;
unsigned[1] numberOfForecastsInEnsemble : dump;
alias totalNumber=numberOfForecastsInEnsemble;
-alias number = perturbationNumber;
+alias number = perturbationNumber;
unsigned[1] oceanAtmosphereCoupling : dump;
diff --git a/definitions/grib1/localConcepts/ecmf/cfName.def b/definitions/grib1/localConcepts/ecmf/cfName.def
index 9868daef7..f1377da79 100644
--- a/definitions/grib1/localConcepts/ecmf/cfName.def
+++ b/definitions/grib1/localConcepts/ecmf/cfName.def
@@ -589,32 +589,32 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'surface_downward_eastward_stress' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'surface_downward_eastward_stress' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'surface_downward_eastward_stress' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'surface_downward_northward_stress' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'surface_downward_northward_stress' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'surface_downward_northward_stress' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
@@ -909,12 +909,12 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
+#Eastward surface sea water velocity
'eastward_sea_water_velocity' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
+#Northward surface sea water velocity
'northward_sea_water_velocity' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
@@ -959,7 +959,7 @@
table2Version = 174 ;
indicatorOfParameter = 98 ;
}
-#Carbon Dioxide
+#Carbon dioxide mass mixing ratio
'mass_fraction_of_carbon_dioxide_in_air' = {
table2Version = 210 ;
indicatorOfParameter = 61 ;
diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def
index 36530b6f3..e3d757597 100644
--- a/definitions/grib1/localConcepts/ecmf/cfVarName.def
+++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def
@@ -1054,12 +1054,12 @@
table2Version = 128 ;
indicatorOfParameter = 148 ;
}
-#Surface net radiation
+#Surface net radiation (SW and LW)
'snr' = {
table2Version = 128 ;
indicatorOfParameter = 149 ;
}
-#Top net radiation
+#Top net radiation (SW and LW)
'tnr' = {
table2Version = 128 ;
indicatorOfParameter = 150 ;
@@ -1459,32 +1459,32 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
@@ -12659,7 +12659,7 @@
table2Version = 140 ;
indicatorOfParameter = 217 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'hmax' = {
table2Version = 140 ;
indicatorOfParameter = 218 ;
@@ -13024,12 +13024,12 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
+#Eastward surface sea water velocity
'uoe' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
+#Northward surface sea water velocity
'von' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
@@ -13244,7 +13244,7 @@
table2Version = 151 ;
indicatorOfParameter = 174 ;
}
-#Average salinity in the upper 300m
+#Average sea water practical salinity in the upper 300m
'sav300' = {
table2Version = 151 ;
indicatorOfParameter = 175 ;
@@ -15024,7 +15024,7 @@
table2Version = 172 ;
indicatorOfParameter = 147 ;
}
-#Mean surface net radiation flux
+#Time-mean surface net radiation flux (SW and LW)
'msnrf' = {
table2Version = 172 ;
indicatorOfParameter = 149 ;
@@ -17509,7 +17509,7 @@
table2Version = 228 ;
indicatorOfParameter = 3 ;
}
-#Mean temperature at 2 metres
+#Mean 2 metre temperature
'mean2t' = {
table2Version = 228 ;
indicatorOfParameter = 4 ;
diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def
index 78ecaecad..77d5535a7 100644
--- a/definitions/grib1/localConcepts/ecmf/name.def
+++ b/definitions/grib1/localConcepts/ecmf/name.def
@@ -1054,13 +1054,13 @@
table2Version = 128 ;
indicatorOfParameter = 148 ;
}
-#Surface net radiation
-'Surface net radiation' = {
+#Surface net radiation (SW and LW)
+'Surface net radiation (SW and LW)' = {
table2Version = 128 ;
indicatorOfParameter = 149 ;
}
-#Top net radiation
-'Top net radiation' = {
+#Top net radiation (SW and LW)
+'Top net radiation (SW and LW)' = {
table2Version = 128 ;
indicatorOfParameter = 150 ;
}
@@ -1459,33 +1459,33 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
-'Eastward turbulent surface stress' = {
+#Time-integrated eastward turbulent surface stress
+'Time-integrated eastward turbulent surface stress' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
-'Eastward turbulent surface stress' = {
+#Time-integrated eastward turbulent surface stress
+'Time-integrated eastward turbulent surface stress' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
-'Eastward turbulent surface stress' = {
+#Time-integrated eastward turbulent surface stress
+'Time-integrated eastward turbulent surface stress' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
-'Northward turbulent surface stress' = {
+#Time-integrated northward turbulent surface stress
+'Time-integrated northward turbulent surface stress' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
-'Northward turbulent surface stress' = {
+#Time-integrated northward turbulent surface stress
+'Time-integrated northward turbulent surface stress' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
-'Northward turbulent surface stress' = {
+#Time-integrated northward turbulent surface stress
+'Time-integrated northward turbulent surface stress' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
}
@@ -12659,8 +12659,8 @@
table2Version = 140 ;
indicatorOfParameter = 217 ;
}
-#Maximum individual wave height
-'Maximum individual wave height' = {
+#Envelop-maximum individual wave height
+'Envelop-maximum individual wave height' = {
table2Version = 140 ;
indicatorOfParameter = 218 ;
}
@@ -13024,13 +13024,13 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
-'Eastward sea water velocity' = {
+#Eastward surface sea water velocity
+'Eastward surface sea water velocity' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
-'Northward sea water velocity' = {
+#Northward surface sea water velocity
+'Northward surface sea water velocity' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
}
@@ -13244,8 +13244,8 @@
table2Version = 151 ;
indicatorOfParameter = 174 ;
}
-#Average salinity in the upper 300m
-'Average salinity in the upper 300m' = {
+#Average sea water practical salinity in the upper 300m
+'Average sea water practical salinity in the upper 300m' = {
table2Version = 151 ;
indicatorOfParameter = 175 ;
}
@@ -15024,8 +15024,8 @@
table2Version = 172 ;
indicatorOfParameter = 147 ;
}
-#Mean surface net radiation flux
-'Mean surface net radiation flux' = {
+#Time-mean surface net radiation flux (SW and LW)
+'Time-mean surface net radiation flux (SW and LW)' = {
table2Version = 172 ;
indicatorOfParameter = 149 ;
}
@@ -17509,8 +17509,8 @@
table2Version = 228 ;
indicatorOfParameter = 3 ;
}
-#Mean temperature at 2 metres
-'Mean temperature at 2 metres' = {
+#Mean 2 metre temperature
+'Mean 2 metre temperature' = {
table2Version = 228 ;
indicatorOfParameter = 4 ;
}
diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def
index 572393e2e..0ea5b7ea3 100644
--- a/definitions/grib1/localConcepts/ecmf/paramId.def
+++ b/definitions/grib1/localConcepts/ecmf/paramId.def
@@ -1054,12 +1054,12 @@
table2Version = 128 ;
indicatorOfParameter = 148 ;
}
-#Surface net radiation
+#Surface net radiation (SW and LW)
'149' = {
table2Version = 128 ;
indicatorOfParameter = 149 ;
}
-#Top net radiation
+#Top net radiation (SW and LW)
'150' = {
table2Version = 128 ;
indicatorOfParameter = 150 ;
@@ -1459,32 +1459,32 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'180' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'180' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'180' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'181' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'181' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'181' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
@@ -12659,7 +12659,7 @@
table2Version = 140 ;
indicatorOfParameter = 217 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'140218' = {
table2Version = 140 ;
indicatorOfParameter = 218 ;
@@ -13024,12 +13024,12 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
+#Eastward surface sea water velocity
'151131' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
+#Northward surface sea water velocity
'151132' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
@@ -13244,7 +13244,7 @@
table2Version = 151 ;
indicatorOfParameter = 174 ;
}
-#Average salinity in the upper 300m
+#Average sea water practical salinity in the upper 300m
'151175' = {
table2Version = 151 ;
indicatorOfParameter = 175 ;
@@ -15024,7 +15024,7 @@
table2Version = 172 ;
indicatorOfParameter = 147 ;
}
-#Mean surface net radiation flux
+#Time-mean surface net radiation flux (SW and LW)
'172149' = {
table2Version = 172 ;
indicatorOfParameter = 149 ;
@@ -17509,7 +17509,7 @@
table2Version = 228 ;
indicatorOfParameter = 3 ;
}
-#Mean temperature at 2 metres
+#Mean 2 metre temperature
'228004' = {
table2Version = 228 ;
indicatorOfParameter = 4 ;
diff --git a/definitions/grib1/localConcepts/ecmf/paramIdForConversion.def b/definitions/grib1/localConcepts/ecmf/paramIdForConversion.def
new file mode 100644
index 000000000..07b7d5a83
--- /dev/null
+++ b/definitions/grib1/localConcepts/ecmf/paramIdForConversion.def
@@ -0,0 +1,37 @@
+# Concept paramIdForConversion for ECMWF
+# See ECC-1806
+
+# 55
+228004 = {gribTablesVersionNo=128; indicatorOfParameter=55; centre=98;}
+# 56
+235168 = {gribTablesVersionNo=128; indicatorOfParameter=56; centre=98;}
+# 130232
+235135 = {gribTablesVersionNo=130; indicatorOfParameter=232; centre=98;}
+# 151163
+262104 = {gribTablesVersionNo=151; indicatorOfParameter=163; centre=98;}
+# 151145
+262124 = {gribTablesVersionNo=151; indicatorOfParameter=145; centre=98;}
+# 172146
+235033 = {gribTablesVersionNo=172; indicatorOfParameter=146; centre=98;}
+# 172147
+235034 = {gribTablesVersionNo=172; indicatorOfParameter=147; centre=98;}
+# 172169
+235035 = {gribTablesVersionNo=172; indicatorOfParameter=169; centre=98;}
+# 172175
+235036 = {gribTablesVersionNo=172; indicatorOfParameter=175; centre=98;}
+# 172176
+235037 = {gribTablesVersionNo=172; indicatorOfParameter=176; centre=98;}
+# 172177
+235038 = {gribTablesVersionNo=172; indicatorOfParameter=177; centre=98;}
+# 172178
+235039 = {gribTablesVersionNo=172; indicatorOfParameter=178; centre=98;}
+# 172179
+235040 = {gribTablesVersionNo=172; indicatorOfParameter=179; centre=98;}
+# 174098
+262000 = {gribTablesVersionNo=174; indicatorOfParameter=98; centre=98;}
+# 151175
+262118 = {gribTablesVersionNo=151; indicatorOfParameter=175; centre=98;}
+# 151132
+262139 = {gribTablesVersionNo=151; indicatorOfParameter=132; centre=98;}
+# 151131
+262140 = {gribTablesVersionNo=151; indicatorOfParameter=131; centre=98;}
diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def
index 6fd82758e..4eb5e6f67 100644
--- a/definitions/grib1/localConcepts/ecmf/shortName.def
+++ b/definitions/grib1/localConcepts/ecmf/shortName.def
@@ -1054,12 +1054,12 @@
table2Version = 128 ;
indicatorOfParameter = 148 ;
}
-#Surface net radiation
+#Surface net radiation (SW and LW)
'snr' = {
table2Version = 128 ;
indicatorOfParameter = 149 ;
}
-#Top net radiation
+#Top net radiation (SW and LW)
'tnr' = {
table2Version = 128 ;
indicatorOfParameter = 150 ;
@@ -1459,32 +1459,32 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'ewss' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
@@ -12659,7 +12659,7 @@
table2Version = 140 ;
indicatorOfParameter = 217 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'hmax' = {
table2Version = 140 ;
indicatorOfParameter = 218 ;
@@ -13024,12 +13024,12 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
+#Eastward surface sea water velocity
'ocu' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
+#Northward surface sea water velocity
'ocv' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
@@ -13244,7 +13244,7 @@
table2Version = 151 ;
indicatorOfParameter = 174 ;
}
-#Average salinity in the upper 300m
+#Average sea water practical salinity in the upper 300m
'sav300' = {
table2Version = 151 ;
indicatorOfParameter = 175 ;
@@ -15024,7 +15024,7 @@
table2Version = 172 ;
indicatorOfParameter = 147 ;
}
-#Mean surface net radiation flux
+#Time-mean surface net radiation flux (SW and LW)
'msnrf' = {
table2Version = 172 ;
indicatorOfParameter = 149 ;
@@ -17509,7 +17509,7 @@
table2Version = 228 ;
indicatorOfParameter = 3 ;
}
-#Mean temperature at 2 metres
+#Mean 2 metre temperature
'mean2t' = {
table2Version = 228 ;
indicatorOfParameter = 4 ;
diff --git a/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def b/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def
index c649d29a6..25aae31d8 100644
--- a/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def
+++ b/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def
@@ -1,37 +1,220 @@
# Concept stepTypeForConversion for ECMWF
-# set uses the FIRST one
-# get returns the LAST match
-# ECC-457: ECMWF Total Precipitation
-"accum" = {timeRangeIndicator=0;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
-"accum" = {timeRangeIndicator=1;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
-"accum" = {timeRangeIndicator=10;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
+# ECC-457: total precipitation
+"accum"={timeRangeIndicator=0;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
+"accum"={timeRangeIndicator=1;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
+"accum"={timeRangeIndicator=10;indicatorOfParameter=228;gribTablesVersionNo=128;centre=98;}
-# sshf
-"accum" = {indicatorOfParameter=146;gribTablesVersionNo=128;centre=98;}
-# slhf
-"accum" = {indicatorOfParameter=147;gribTablesVersionNo=128;centre=98;}
-# ssrd
-"accum" = {indicatorOfParameter=169;gribTablesVersionNo=128;centre=98;}
-# strd
-"accum" = {indicatorOfParameter=175;gribTablesVersionNo=128;centre=98;}
-# ssr
-"accum" = {indicatorOfParameter=176;gribTablesVersionNo=128;centre=98;}
-# str
-"accum" = {indicatorOfParameter=177;gribTablesVersionNo=128;centre=98;}
-# ttr
-"accum" = {indicatorOfParameter=179;gribTablesVersionNo=128;centre=98;}
-# sund
-"accum" = {indicatorOfParameter=189;gribTablesVersionNo=128;centre=98;}
-# runoff
-"accum" = {indicatorOfParameter=205;gribTablesVersionNo=128;centre=98;}
# sro
-"accum" = {indicatorOfParameter=8;gribTablesVersionNo=128;centre=98;}
-# e
-"accum" = {indicatorOfParameter=182;gribTablesVersionNo=128;centre=98;}
-# lsp
-"accum" = {indicatorOfParameter=142;gribTablesVersionNo=128;centre=98;}
-# pev
-"accum" = {indicatorOfParameter=251;gribTablesVersionNo=228;centre=98;}
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=8;centre=98;}
+# ssro
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=9;centre=98;}
+# parcs
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=20;centre=98;}
+# es
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=44;centre=98;}
+# smlt
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=45;centre=98;}
+# dsrp
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=47;centre=98;}
+# 10fg
+"max"={gribTablesVersionNo=128;indicatorOfParameter=49;centre=98;}
+# lspf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=50;centre=98;}
+# mx2t24
+"max"={gribTablesVersionNo=128;indicatorOfParameter=51;centre=98;}
+# mn2t24
+"min"={gribTablesVersionNo=128;indicatorOfParameter=52;centre=98;}
# uvb
-"accum" = {indicatorOfParameter=57;gribTablesVersionNo=128;centre=98;}
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=57;centre=98;}
+# par
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=58;centre=98;}
+# mx2t6
+"max"={gribTablesVersionNo=128;indicatorOfParameter=121;centre=98;}
+# mn2t6
+"min"={gribTablesVersionNo=128;indicatorOfParameter=122;centre=98;}
+# lsp
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=142;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=142;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=142;centre=98;}
+# cp
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=143;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=143;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=143;centre=98;}
+# sf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=144;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=144;centre=98;}
+# bld
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=145;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=145;centre=98;}
+# sshf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=146;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=146;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=146;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=146;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=146;centre=98;}
+# slhf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=147;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=147;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=147;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=147;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=147;centre=98;}
+# snr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=149;centre=98;}
+# tnr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=150;centre=98;}
+# ssrd
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=169;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=169;centre=98;}
+# strd
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=175;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=175;centre=98;}
+# ssr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=176;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=176;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=176;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=176;centre=98;}
+# str
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=177;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=177;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=177;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=177;centre=98;}
+# tsr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=178;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=178;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=178;centre=98;}
+# ttr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=179;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=179;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=179;centre=98;}
+# ewss
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=180;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=180;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=180;centre=98;}
+# nsss
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=181;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=181;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=181;centre=98;}
+# e
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=182;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=182;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=182;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=182;centre=98;}
+# sund
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=189;centre=98;}
+# lgws
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=195;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=195;centre=98;}
+# mgws
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=196;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=196;centre=98;}
+# gwd
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=197;centre=98;}
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=197;centre=98;}
+# mx2t
+"max"={gribTablesVersionNo=128;indicatorOfParameter=201;centre=98;}
+"max"={gribTablesVersionNo=170;indicatorOfParameter=201;centre=98;}
+"max"={gribTablesVersionNo=190;indicatorOfParameter=201;centre=98;}
+# mn2t
+"min"={gribTablesVersionNo=128;indicatorOfParameter=202;centre=98;}
+"min"={gribTablesVersionNo=170;indicatorOfParameter=202;centre=98;}
+"min"={gribTablesVersionNo=190;indicatorOfParameter=202;centre=98;}
+# ro
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=205;centre=98;}
+"accum"={gribTablesVersionNo=180;indicatorOfParameter=205;centre=98;}
+# tsrc
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=208;centre=98;}
+# ttrc
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=209;centre=98;}
+# ssrc
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=210;centre=98;}
+# strc
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=211;centre=98;}
+# tisr
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=212;centre=98;}
+# vimd
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=213;centre=98;}
+# tp
+"accum"={gribTablesVersionNo=160;indicatorOfParameter=228;centre=98;}
+"accum"={gribTablesVersionNo=170;indicatorOfParameter=228;centre=98;}
+"accum"={gribTablesVersionNo=190;indicatorOfParameter=228;centre=98;}
+# csf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=239;centre=98;}
+# lsf
+"accum"={gribTablesVersionNo=128;indicatorOfParameter=240;centre=98;}
+# fdir
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=21;centre=98;}
+# cdir
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=22;centre=98;}
+# mx2t3
+"max"={gribTablesVersionNo=228;indicatorOfParameter=26;centre=98;}
+# mn2t3
+"min"={gribTablesVersionNo=228;indicatorOfParameter=27;centre=98;}
+# 10fg3
+"max"={gribTablesVersionNo=228;indicatorOfParameter=28;centre=98;}
+# litota1
+"avg"={gribTablesVersionNo=228;indicatorOfParameter=51;centre=98;}
+# licga1
+"avg"={gribTablesVersionNo=228;indicatorOfParameter=53;centre=98;}
+# ssrdc
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=129;centre=98;}
+# strdc
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=130;centre=98;}
+# fzra
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=216;centre=98;}
+# mxtpr
+"max"={gribTablesVersionNo=228;indicatorOfParameter=226;centre=98;}
+# mntpr
+"min"={gribTablesVersionNo=228;indicatorOfParameter=227;centre=98;}
+# pev
+"accum"={gribTablesVersionNo=228;indicatorOfParameter=251;centre=98;}
+# srta
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=100;centre=98;}
+# trta
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=101;centre=98;}
+# srtca
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=102;centre=98;}
+# trtca
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=103;centre=98;}
+# umfa
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=104;centre=98;}
+# dmfa
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=105;centre=98;}
+# udra
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=106;centre=98;}
+# ddra
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=107;centre=98;}
+# tpfa
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=108;centre=98;}
+# tdcha
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=109;centre=98;}
+# ttpha
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=110;centre=98;}
+# qtpha
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=111;centre=98;}
+# utpha
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=112;centre=98;}
+# vtpha
+"accum"={gribTablesVersionNo=162;indicatorOfParameter=113;centre=98;}
+# mvv
+"avg"={gribTablesVersionNo=130;indicatorOfParameter=232;centre=98;}
+# msshfl
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=146;centre=98;}
+# mslhfl
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=147;centre=98;}
+# mean2t24
+"avg"={gribTablesVersionNo=128;indicatorOfParameter=55;centre=98;}
+# mn2d24
+"avg"={gribTablesVersionNo=128;indicatorOfParameter=56;centre=98;}
+# msdsrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=169;centre=98;}
+# msdtrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=175;centre=98;}
+# msnsrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=176;centre=98;}
+# msntrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=177;centre=98;}
+# mtnsrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=178;centre=98;}
+# mtntrf
+"avg"={gribTablesVersionNo=172;indicatorOfParameter=179;centre=98;}
diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def
index 027242702..193a0e3c6 100644
--- a/definitions/grib1/localConcepts/ecmf/units.def
+++ b/definitions/grib1/localConcepts/ecmf/units.def
@@ -665,7 +665,7 @@
indicatorOfParameter = 123 ;
}
#Surface emissivity
-'dimensionless' = {
+'Proportion' = {
table2Version = 128 ;
indicatorOfParameter = 124 ;
}
@@ -1054,12 +1054,12 @@
table2Version = 128 ;
indicatorOfParameter = 148 ;
}
-#Surface net radiation
+#Surface net radiation (SW and LW)
'J m**-2' = {
table2Version = 128 ;
indicatorOfParameter = 149 ;
}
-#Top net radiation
+#Top net radiation (SW and LW)
'J m**-2' = {
table2Version = 128 ;
indicatorOfParameter = 150 ;
@@ -1459,32 +1459,32 @@
table2Version = 190 ;
indicatorOfParameter = 179 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'N m**-2 s' = {
table2Version = 128 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'N m**-2 s' = {
table2Version = 170 ;
indicatorOfParameter = 180 ;
}
-#Eastward turbulent surface stress
+#Time-integrated eastward turbulent surface stress
'N m**-2 s' = {
table2Version = 180 ;
indicatorOfParameter = 180 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'N m**-2 s' = {
table2Version = 128 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'N m**-2 s' = {
table2Version = 170 ;
indicatorOfParameter = 181 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'N m**-2 s' = {
table2Version = 180 ;
indicatorOfParameter = 181 ;
@@ -3805,12 +3805,12 @@
indicatorOfParameter = 122 ;
}
#Mean surface runoff rate
-'m of water equivalent s**-1' = {
+'m s**-1' = {
table2Version = 172 ;
indicatorOfParameter = 8 ;
}
#Mean sub-surface runoff rate
-'m of water equivalent s**-1' = {
+'m s**-1' = {
table2Version = 172 ;
indicatorOfParameter = 9 ;
}
@@ -12659,7 +12659,7 @@
table2Version = 140 ;
indicatorOfParameter = 217 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'm' = {
table2Version = 140 ;
indicatorOfParameter = 218 ;
@@ -13024,12 +13024,12 @@
table2Version = 151 ;
indicatorOfParameter = 130 ;
}
-#Eastward sea water velocity
+#Eastward surface sea water velocity
'm s**-1' = {
table2Version = 151 ;
indicatorOfParameter = 131 ;
}
-#Northward sea water velocity
+#Northward surface sea water velocity
'm s**-1' = {
table2Version = 151 ;
indicatorOfParameter = 132 ;
@@ -13244,7 +13244,7 @@
table2Version = 151 ;
indicatorOfParameter = 174 ;
}
-#Average salinity in the upper 300m
+#Average sea water practical salinity in the upper 300m
'psu' = {
table2Version = 151 ;
indicatorOfParameter = 175 ;
@@ -15024,7 +15024,7 @@
table2Version = 172 ;
indicatorOfParameter = 147 ;
}
-#Mean surface net radiation flux
+#Time-mean surface net radiation flux (SW and LW)
'W m**-2' = {
table2Version = 172 ;
indicatorOfParameter = 149 ;
@@ -15080,7 +15080,7 @@
indicatorOfParameter = 181 ;
}
#Evaporation
-'m of water s**-1' = {
+'m of water equivalent s**-1' = {
table2Version = 172 ;
indicatorOfParameter = 182 ;
}
@@ -17509,7 +17509,7 @@
table2Version = 228 ;
indicatorOfParameter = 3 ;
}
-#Mean temperature at 2 metres
+#Mean 2 metre temperature
'K' = {
table2Version = 228 ;
indicatorOfParameter = 4 ;
diff --git a/definitions/grib1/localConcepts/eswi/aerosolConcept.def b/definitions/grib1/localConcepts/eswi/aerosolConcept.def
index b02512f30..469bd0d5d 100644
--- a/definitions/grib1/localConcepts/eswi/aerosolConcept.def
+++ b/definitions/grib1/localConcepts/eswi/aerosolConcept.def
@@ -1,9 +1,6 @@
-#########################
-#
# author: Sebastien Villaume
# created: 13 May 2013
#
-#########################
"none"={matchAerosolBinNumber=0;}
"bin1"={matchAerosolBinNumber=1;}
"bin2"={matchAerosolBinNumber=2;}
diff --git a/definitions/grib1/localConcepts/eswi/sortConcept.def b/definitions/grib1/localConcepts/eswi/sortConcept.def
index 4998635fd..6d8ef4bdb 100644
--- a/definitions/grib1/localConcepts/eswi/sortConcept.def
+++ b/definitions/grib1/localConcepts/eswi/sortConcept.def
@@ -1,9 +1,6 @@
-#########################
-#
# author: Sebastien Villaume
# created: 13 May 2013
#
-#########################
"none"={matchSort=0;}
"cm"={matchSort=1;}
"lncm"={matchSort=2;}
diff --git a/definitions/grib1/localConcepts/eswi/timeRepresConcept.def b/definitions/grib1/localConcepts/eswi/timeRepresConcept.def
index 08ccd4591..795985a04 100644
--- a/definitions/grib1/localConcepts/eswi/timeRepresConcept.def
+++ b/definitions/grib1/localConcepts/eswi/timeRepresConcept.def
@@ -1,9 +1,6 @@
-#########################
-#
# author: Sebastien Villaume
# created: 13 May 2013
#
-#########################
"none"={matchTimeRepres=0;}
"3hMean"={matchTimeRepres=1;}
"diurnalMean"={matchTimeRepres=2;}
diff --git a/definitions/grib1/localConcepts/eswi/typeOfLevel.def b/definitions/grib1/localConcepts/eswi/typeOfLevel.def
index b91a3acb0..ca3d98e6c 100644
--- a/definitions/grib1/localConcepts/eswi/typeOfLevel.def
+++ b/definitions/grib1/localConcepts/eswi/typeOfLevel.def
@@ -1,10 +1,7 @@
-#########################
-#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 May 2013
#
-#########################
'surface' = {indicatorOfTypeOfLevel=1;}
'cloudBase' = {indicatorOfTypeOfLevel=2;}
'cloudTop' = {indicatorOfTypeOfLevel=3;}
diff --git a/definitions/grib1/localConcepts/rjtd/cfName.def b/definitions/grib1/localConcepts/rjtd/cfName.def
new file mode 100644
index 000000000..fa3d101b1
--- /dev/null
+++ b/definitions/grib1/localConcepts/rjtd/cfName.def
@@ -0,0 +1,112 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Sea ice area fraction
+'sea_ice_area_fraction' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 91 ;
+ }
+#Geopotential
+'geopotential' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 6 ;
+ }
+#Temperature
+'air_temperature' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 11 ;
+ }
+#U component of wind
+'eastward_wind' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 33 ;
+ }
+#V component of wind
+'northward_wind' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 34 ;
+ }
+#Specific humidity
+'specific_humidity' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 51 ;
+ }
+#Surface pressure
+'surface_air_pressure' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Vertical velocity
+'lagrangian_tendency_of_air_pressure' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 39 ;
+ }
+#Total column vertically-integrated water vapour
+'lwe_thickness_of_atmosphere_mass_content_of_water_vapor' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 54 ;
+ }
+#Vorticity (relative)
+'atmosphere_relative_vorticity' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 43 ;
+ }
+#Mean sea level pressure
+'air_pressure_at_mean_sea_level' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 2 ;
+ }
+#Divergence
+'divergence_of_wind' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 44 ;
+ }
+#Geopotential height
+'geopotential_height' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 7 ;
+ }
+#Relative humidity
+'relative_humidity' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 52 ;
+ }
+#Land-sea mask
+'land_binary_mask' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 81 ;
+ }
+#Surface roughness (climatological)
+'surface_roughness_length' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 83 ;
+ }
+#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 66 ;
+ }
+#Convective cloud cover
+'convective_cloud_area_fraction' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 72 ;
+ }
+#Latent heat flux
+'surface_upward_latent_heat_flux' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 121 ;
+ }
+#Sensible heat flux
+'surface_upward_sensible_heat_flux' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 122 ;
+ }
+#Boundary layer dissipation
+'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 123 ;
+ }
+#Forecast albedo
+'surface_albedo' = {
+ table2Version = 200 ;
+ indicatorOfParameter = 84 ;
+}
diff --git a/definitions/grib1/localConcepts/rjtd/cfVarName.def b/definitions/grib1/localConcepts/rjtd/cfVarName.def
index 5b95ee846..a41399122 100644
--- a/definitions/grib1/localConcepts/rjtd/cfVarName.def
+++ b/definitions/grib1/localConcepts/rjtd/cfVarName.def
@@ -665,16 +665,6 @@
table2Version = 200 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'ucurr' = {
- table2Version = 200 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'vcurr' = {
- table2Version = 200 ;
- indicatorOfParameter = 50 ;
- }
#Humidity mixing ratio
'mixr' = {
table2Version = 200 ;
diff --git a/definitions/grib1/localConcepts/rjtd/name.def b/definitions/grib1/localConcepts/rjtd/name.def
index 50010a10d..d23af9d8e 100644
--- a/definitions/grib1/localConcepts/rjtd/name.def
+++ b/definitions/grib1/localConcepts/rjtd/name.def
@@ -665,16 +665,6 @@
table2Version = 200 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'U-component of current' = {
- table2Version = 200 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'V-component of current' = {
- table2Version = 200 ;
- indicatorOfParameter = 50 ;
- }
#Humidity mixing ratio
'Humidity mixing ratio' = {
table2Version = 200 ;
diff --git a/definitions/grib1/localConcepts/rjtd/paramId.def b/definitions/grib1/localConcepts/rjtd/paramId.def
index 589e86e05..d08f41247 100644
--- a/definitions/grib1/localConcepts/rjtd/paramId.def
+++ b/definitions/grib1/localConcepts/rjtd/paramId.def
@@ -665,16 +665,6 @@
table2Version = 200 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'3049' = {
- table2Version = 200 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'3050' = {
- table2Version = 200 ;
- indicatorOfParameter = 50 ;
- }
#Humidity mixing ratio
'3053' = {
table2Version = 200 ;
diff --git a/definitions/grib1/localConcepts/rjtd/shortName.def b/definitions/grib1/localConcepts/rjtd/shortName.def
index 109414b94..10b57b914 100644
--- a/definitions/grib1/localConcepts/rjtd/shortName.def
+++ b/definitions/grib1/localConcepts/rjtd/shortName.def
@@ -665,16 +665,6 @@
table2Version = 200 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'ucurr' = {
- table2Version = 200 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'vcurr' = {
- table2Version = 200 ;
- indicatorOfParameter = 50 ;
- }
#Humidity mixing ratio
'mixr' = {
table2Version = 200 ;
diff --git a/definitions/grib1/localConcepts/rjtd/units.def b/definitions/grib1/localConcepts/rjtd/units.def
index 93e7b0e56..05a2a7758 100644
--- a/definitions/grib1/localConcepts/rjtd/units.def
+++ b/definitions/grib1/localConcepts/rjtd/units.def
@@ -665,16 +665,6 @@
table2Version = 200 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'m s**-1' = {
- table2Version = 200 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'m s**-1' = {
- table2Version = 200 ;
- indicatorOfParameter = 50 ;
- }
#Humidity mixing ratio
'kg kg**-1' = {
table2Version = 200 ;
diff --git a/definitions/grib1/localDefinitionNumber.82.table b/definitions/grib1/localDefinitionNumber.82.table
index 1e67bc75c..b28d376b5 100644
--- a/definitions/grib1/localDefinitionNumber.82.table
+++ b/definitions/grib1/localDefinitionNumber.82.table
@@ -1,10 +1,7 @@
-#########################
-#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 May 2013
#
-#########################
82 82 standard operational SMHI
83 83 MATCH data (standard operational SMHI + extra MATCH keywords)
255 255 MISSING
diff --git a/definitions/grib1/local_no_mars.98.1.def b/definitions/grib1/local_no_mars.98.1.def
index f66427bbe..bbb31966c 100644
--- a/definitions/grib1/local_no_mars.98.1.def
+++ b/definitions/grib1/local_no_mars.98.1.def
@@ -1,14 +1,14 @@
#
-# 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 -
-#number 50 I1 42 -
-#total 51 I1 43 -
-#spareSetToZero 52 PAD n/a 1
+# 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 -
+#number 50 I1 42 -
+#total 51 I1 43 -
+#spareSetToZero 52 PAD n/a 1
#
constant GRIBEXSection1Problem = 52 - section1Length ;
diff --git a/definitions/grib1/ls_labeling.82.def b/definitions/grib1/ls_labeling.82.def
index 2aa4354e3..a76689eaa 100644
--- a/definitions/grib1/ls_labeling.82.def
+++ b/definitions/grib1/ls_labeling.82.def
@@ -1,10 +1,7 @@
-#########################
-#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 Sep 2013
#
-#########################
alias ls.dataType = marsType;
@@ -14,6 +11,5 @@ if (localDefinitionNumber == 83 ) {
concept_nofail ls.sort (unknown,"sortConcept.def",conceptsLocalDirAll,conceptsMasterDir);
concept_nofail ls.landtype (unknown,"landTypeConcept.def",conceptsLocalDirAll,conceptsMasterDir);
concept_nofail ls.aerosolbinnumber (unknown,"aerosolConcept.def",conceptsLocalDirAll,conceptsMasterDir);
-
}
diff --git a/definitions/grib1/mars_labeling.4.def b/definitions/grib1/mars_labeling.4.def
index d75df1341..e0984d22b 100644
--- a/definitions/grib1/mars_labeling.4.def
+++ b/definitions/grib1/mars_labeling.4.def
@@ -89,7 +89,7 @@ if (horizontalCoordinateDefinition == 0) {
{
meta coordinateIndexNumber evaluate(coordinate4Flag+coordinate3Flag);
-# levelist latitude longitude
+ # levelist latitude longitude
if (coordinateIndexNumber== 3) {
meta marsLatitude divdouble( coordinate1Start,1000000);
meta marsLongitude divdouble( coordinate2Start,1000000);
@@ -145,15 +145,15 @@ if (horizontalCoordinateDefinition == 0) {
alias mars.range = marsRange;
}
}
-# product
- alias mars.product = coordAveragingTims;
-# date
- if (marsType == TYPE_OR && averaging1Flag == P_INST) {
- #remove mars.date;
- alias mars.date = verificationDate;
- #remove mars.step;
- constant stepZero = 0;
- alias mars.step =stepZero;
- }
+ # product
+ alias mars.product = coordAveragingTims;
+ # date
+ if (marsType == TYPE_OR && averaging1Flag == P_INST) {
+ #remove mars.date;
+ alias mars.date = verificationDate;
+ #remove mars.step;
+ constant stepZero = 0;
+ alias mars.step =stepZero;
+ }
}
}
diff --git a/definitions/grib1/mars_labeling.82.def b/definitions/grib1/mars_labeling.82.def
index ef95ce754..c38a8bfe1 100644
--- a/definitions/grib1/mars_labeling.82.def
+++ b/definitions/grib1/mars_labeling.82.def
@@ -1,4 +1,3 @@
-#########################
# author: Sebastien Villaume (SMHI)
# created: 6 Oct 2011
# modified: 13 Sep 2013
@@ -8,7 +7,6 @@ constant conceptsMasterMarsDir="mars" : hidden;
constant conceptsLocalMarsDirAll="mars/[centre:s]" : hidden;
# Base MARS keywors
-##########################
alias mars.class = marsClass;
alias mars.type = marsType;
alias mars.stream = marsStream;
@@ -17,11 +15,9 @@ alias mars.expver = experimentVersionNumber;
alias mars.domain = globalDomain;
# local section 82
-#########################
### nothing needed here...
# Local section 83
-#########################
if ( localDefinitionNumber == 83 ) {
alias mars.sort = matchSort;
alias mars.timerepres = matchTimeRepres;
diff --git a/definitions/grib1/name.def b/definitions/grib1/name.def
index 8bda2a845..e7352f034 100644
--- a/definitions/grib1/name.def
+++ b/definitions/grib1/name.def
@@ -4,31 +4,91 @@
table2Version = 3 ;
indicatorOfParameter = 35 ;
}
+#Stream function
+'Stream function' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 35 ;
+ }
+#Stream function
+'Stream function' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 35 ;
+ }
#Velocity potential
'Velocity potential' = {
table2Version = 3 ;
indicatorOfParameter = 36 ;
}
+#Velocity potential
+'Velocity potential' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 36 ;
+ }
+#Velocity potential
+'Velocity potential' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 36 ;
+ }
#Potential temperature
'Potential temperature' = {
table2Version = 3 ;
indicatorOfParameter = 13 ;
}
+#Potential temperature
+'Potential temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 13 ;
+ }
+#Potential temperature
+'Potential temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 13 ;
+ }
#Wind speed
'Wind speed' = {
table2Version = 3 ;
indicatorOfParameter = 32 ;
}
+#Wind speed
+'Wind speed' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 32 ;
+ }
+#Wind speed
+'Wind speed' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 32 ;
+ }
#Pressure
'Pressure' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
}
+#Pressure
+'Pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ }
+#Pressure
+'Pressure' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ }
#Potential vorticity
'Potential vorticity' = {
table2Version = 3 ;
indicatorOfParameter = 4 ;
}
+#Potential vorticity
+'Potential vorticity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 4 ;
+ }
+#Potential vorticity
+'Potential vorticity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 4 ;
+ }
#Maximum temperature at 2 metres in the last 6 hours
'Maximum temperature at 2 metres in the last 6 hours' = {
table2Version = 3 ;
@@ -36,6 +96,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'Maximum temperature at 2 metres in the last 6 hours' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Maximum temperature at 2 metres in the last 6 hours
+'Maximum temperature at 2 metres in the last 6 hours' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Minimum temperature at 2 metres in the last 6 hours
'Minimum temperature at 2 metres in the last 6 hours' = {
table2Version = 3 ;
@@ -43,67 +117,203 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Minimum temperature at 2 metres in the last 6 hours
+'Minimum temperature at 2 metres in the last 6 hours' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'Minimum temperature at 2 metres in the last 6 hours' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Geopotential
'Geopotential' = {
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
+#Geopotential
+'Geopotential' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 6 ;
+ }
+#Geopotential
+'Geopotential' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 6 ;
+ }
#Temperature
'Temperature' = {
table2Version = 3 ;
indicatorOfParameter = 11 ;
}
+#Temperature
+'Temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'Temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ }
#U component of wind
'U component of wind' = {
table2Version = 3 ;
indicatorOfParameter = 33 ;
}
+#U component of wind
+'U component of wind' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'U component of wind' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ }
#V component of wind
'V component of wind' = {
table2Version = 3 ;
indicatorOfParameter = 34 ;
}
+#V component of wind
+'V component of wind' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'V component of wind' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ }
#Specific humidity
'Specific humidity' = {
table2Version = 3 ;
indicatorOfParameter = 51 ;
}
+#Specific humidity
+'Specific humidity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'Specific humidity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 51 ;
+ }
#Surface pressure
'Surface pressure' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Surface pressure
+'Surface pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'Surface pressure' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Vertical velocity
'Vertical velocity' = {
table2Version = 3 ;
indicatorOfParameter = 39 ;
}
+#Vertical velocity
+'Vertical velocity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'Vertical velocity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 39 ;
+ }
#Vorticity (relative)
'Vorticity (relative)' = {
table2Version = 3 ;
indicatorOfParameter = 43 ;
}
+#Vorticity (relative)
+'Vorticity (relative)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'Vorticity (relative)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 43 ;
+ }
#Mean sea level pressure
'Mean sea level pressure' = {
table2Version = 3 ;
indicatorOfParameter = 2 ;
}
+#Mean sea level pressure
+'Mean sea level pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'Mean sea level pressure' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 2 ;
+ }
#Divergence
'Divergence' = {
table2Version = 3 ;
indicatorOfParameter = 44 ;
}
+#Divergence
+'Divergence' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'Divergence' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 44 ;
+ }
#Geopotential height
'Geopotential height' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
}
+#Geopotential height
+'Geopotential height' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'Geopotential height' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ }
#Relative humidity
'Relative humidity' = {
table2Version = 3 ;
indicatorOfParameter = 52 ;
}
+#Relative humidity
+'Relative humidity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'Relative humidity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 52 ;
+ }
#10 metre U wind component
'10 metre U wind component' = {
table2Version = 3 ;
@@ -111,6 +321,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre U wind component
+'10 metre U wind component' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre U wind component
+'10 metre U wind component' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#10 metre V wind component
'10 metre V wind component' = {
table2Version = 3 ;
@@ -118,6 +342,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre V wind component
+'10 metre V wind component' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre V wind component
+'10 metre V wind component' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#2 metre temperature
'2 metre temperature' = {
table2Version = 3 ;
@@ -125,6 +363,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre temperature
+'2 metre temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre temperature
+'2 metre temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#2 metre dewpoint temperature
'2 metre dewpoint temperature' = {
table2Version = 3 ;
@@ -132,104 +384,308 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre dewpoint temperature
+'2 metre dewpoint temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre dewpoint temperature
+'2 metre dewpoint temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Land-sea mask
'Land-sea mask' = {
table2Version = 3 ;
indicatorOfParameter = 81 ;
}
+#Land-sea mask
+'Land-sea mask' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'Land-sea mask' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 81 ;
+ }
#Surface roughness (climatological)
'Surface roughness (climatological)' = {
table2Version = 3 ;
indicatorOfParameter = 83 ;
}
+#Surface roughness (climatological)
+'Surface roughness (climatological)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'Surface roughness (climatological)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 83 ;
+ }
#Evaporation
'Evaporation' = {
table2Version = 3 ;
indicatorOfParameter = 57 ;
}
+#Evaporation
+'Evaporation' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'Evaporation' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 57 ;
+ }
#Brightness temperature
'Brightness temperature' = {
table2Version = 3 ;
indicatorOfParameter = 118 ;
}
+#Brightness temperature
+'Brightness temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 118 ;
+ }
+#Brightness temperature
+'Brightness temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 118 ;
+ }
#Runoff
'Runoff' = {
table2Version = 3 ;
indicatorOfParameter = 90 ;
}
+#Runoff
+'Runoff' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 90 ;
+ }
+#Runoff
+'Runoff' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 90 ;
+ }
#Total column ozone
'Total column ozone' = {
table2Version = 3 ;
indicatorOfParameter = 10 ;
}
+#Total column ozone
+'Total column ozone' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'Total column ozone' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 10 ;
+ }
#Large-scale precipitation
'Large-scale precipitation' = {
table2Version = 3 ;
indicatorOfParameter = 62 ;
}
+#Large-scale precipitation
+'Large-scale precipitation' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 62 ;
+ }
+#Large-scale precipitation
+'Large-scale precipitation' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 62 ;
+ }
#Snow depth
'Snow depth' = {
table2Version = 3 ;
indicatorOfParameter = 66 ;
}
+#Snow depth
+'Snow depth' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'Snow depth' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 66 ;
+ }
#Convective cloud cover
'Convective cloud cover' = {
table2Version = 3 ;
indicatorOfParameter = 72 ;
}
+#Convective cloud cover
+'Convective cloud cover' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'Convective cloud cover' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 72 ;
+ }
#Low cloud cover
'Low cloud cover' = {
table2Version = 3 ;
indicatorOfParameter = 73 ;
}
+#Low cloud cover
+'Low cloud cover' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 73 ;
+ }
+#Low cloud cover
+'Low cloud cover' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 73 ;
+ }
#Medium cloud cover
'Medium cloud cover' = {
table2Version = 3 ;
indicatorOfParameter = 74 ;
}
+#Medium cloud cover
+'Medium cloud cover' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 74 ;
+ }
+#Medium cloud cover
+'Medium cloud cover' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 74 ;
+ }
#High cloud cover
'High cloud cover' = {
table2Version = 3 ;
indicatorOfParameter = 75 ;
}
+#High cloud cover
+'High cloud cover' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 75 ;
+ }
+#High cloud cover
+'High cloud cover' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 75 ;
+ }
#Large scale snow
'Large scale snow' = {
table2Version = 3 ;
indicatorOfParameter = 79 ;
}
+#Large scale snow
+'Large scale snow' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 79 ;
+ }
+#Large scale snow
+'Large scale snow' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 79 ;
+ }
#Latent heat flux
'Latent heat flux' = {
table2Version = 3 ;
indicatorOfParameter = 121 ;
}
+#Latent heat flux
+'Latent heat flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'Latent heat flux' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 121 ;
+ }
#Sensible heat flux
'Sensible heat flux' = {
table2Version = 3 ;
indicatorOfParameter = 122 ;
}
+#Sensible heat flux
+'Sensible heat flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'Sensible heat flux' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 122 ;
+ }
#Boundary layer dissipation
'Boundary layer dissipation' = {
table2Version = 3 ;
indicatorOfParameter = 123 ;
}
+#Boundary layer dissipation
+'Boundary layer dissipation' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'Boundary layer dissipation' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 123 ;
+ }
#Convective snow
'Convective snow' = {
table2Version = 3 ;
indicatorOfParameter = 78 ;
}
+#Convective snow
+'Convective snow' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 78 ;
+ }
+#Convective snow
+'Convective snow' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 78 ;
+ }
#Cloud water
'Cloud water' = {
table2Version = 3 ;
indicatorOfParameter = 76 ;
}
+#Cloud water
+'Cloud water' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 76 ;
+ }
+#Cloud water
+'Cloud water' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 76 ;
+ }
#Forecast albedo
'Forecast albedo' = {
table2Version = 3 ;
indicatorOfParameter = 84 ;
}
+#Forecast albedo
+'Forecast albedo' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'Forecast albedo' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 84 ;
+ }
#Virtual temperature
'Virtual temperature' = {
- table2Version = 1 ;
+ table2Version = 3 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
@@ -239,7 +695,7 @@
}
#Virtual temperature
'Virtual temperature' = {
- table2Version = 3 ;
+ table2Version = 1 ;
indicatorOfParameter = 12 ;
}
#Pressure tendency
@@ -247,447 +703,1309 @@
table2Version = 3 ;
indicatorOfParameter = 3 ;
}
+#Pressure tendency
+'Pressure tendency' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 3 ;
+ }
+#Pressure tendency
+'Pressure tendency' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 3 ;
+ }
#ICAO Standard Atmosphere reference height
'ICAO Standard Atmosphere reference height' = {
table2Version = 3 ;
indicatorOfParameter = 5 ;
}
+#ICAO Standard Atmosphere reference height
+'ICAO Standard Atmosphere reference height' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 5 ;
+ }
+#ICAO Standard Atmosphere reference height
+'ICAO Standard Atmosphere reference height' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 5 ;
+ }
#Geometrical height
'Geometrical height' = {
table2Version = 3 ;
indicatorOfParameter = 8 ;
}
+#Geometrical height
+'Geometrical height' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 8 ;
+ }
+#Geometrical height
+'Geometrical height' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 8 ;
+ }
#Standard deviation of height
'Standard deviation of height' = {
table2Version = 3 ;
indicatorOfParameter = 9 ;
}
+#Standard deviation of height
+'Standard deviation of height' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 9 ;
+ }
+#Standard deviation of height
+'Standard deviation of height' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 9 ;
+ }
#Pseudo-adiabatic potential temperature
'Pseudo-adiabatic potential temperature' = {
table2Version = 3 ;
indicatorOfParameter = 14 ;
}
+#Pseudo-adiabatic potential temperature
+'Pseudo-adiabatic potential temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 14 ;
+ }
+#Pseudo-adiabatic potential temperature
+'Pseudo-adiabatic potential temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 14 ;
+ }
#Maximum temperature
'Maximum temperature' = {
table2Version = 3 ;
indicatorOfParameter = 15 ;
}
+#Maximum temperature
+'Maximum temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ }
+#Maximum temperature
+'Maximum temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ }
#Minimum temperature
'Minimum temperature' = {
table2Version = 3 ;
indicatorOfParameter = 16 ;
}
+#Minimum temperature
+'Minimum temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ }
+#Minimum temperature
+'Minimum temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ }
#Dew point temperature
'Dew point temperature' = {
table2Version = 3 ;
indicatorOfParameter = 17 ;
}
+#Dew point temperature
+'Dew point temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ }
+#Dew point temperature
+'Dew point temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ }
#Dew point depression (or deficit)
'Dew point depression (or deficit)' = {
table2Version = 3 ;
indicatorOfParameter = 18 ;
}
+#Dew point depression (or deficit)
+'Dew point depression (or deficit)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 18 ;
+ }
+#Dew point depression (or deficit)
+'Dew point depression (or deficit)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 18 ;
+ }
#Lapse rate
'Lapse rate' = {
table2Version = 3 ;
indicatorOfParameter = 19 ;
}
+#Lapse rate
+'Lapse rate' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 19 ;
+ }
+#Lapse rate
+'Lapse rate' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 19 ;
+ }
#Visibility
'Visibility' = {
table2Version = 3 ;
indicatorOfParameter = 20 ;
}
+#Visibility
+'Visibility' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 20 ;
+ }
+#Visibility
+'Visibility' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 20 ;
+ }
#Radar spectra (1)
'Radar spectra (1)' = {
table2Version = 3 ;
indicatorOfParameter = 21 ;
}
+#Radar spectra (1)
+'Radar spectra (1)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 21 ;
+ }
+#Radar spectra (1)
+'Radar spectra (1)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 21 ;
+ }
#Radar spectra (2)
'Radar spectra (2)' = {
table2Version = 3 ;
indicatorOfParameter = 22 ;
}
+#Radar spectra (2)
+'Radar spectra (2)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 22 ;
+ }
+#Radar spectra (2)
+'Radar spectra (2)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 22 ;
+ }
#Radar spectra (3)
'Radar spectra (3)' = {
table2Version = 3 ;
indicatorOfParameter = 23 ;
}
+#Radar spectra (3)
+'Radar spectra (3)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 23 ;
+ }
+#Radar spectra (3)
+'Radar spectra (3)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 23 ;
+ }
#Parcel lifted index (to 500 hPa)
'Parcel lifted index (to 500 hPa)' = {
table2Version = 3 ;
indicatorOfParameter = 24 ;
}
+#Parcel lifted index (to 500 hPa)
+'Parcel lifted index (to 500 hPa)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 24 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'Parcel lifted index (to 500 hPa)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 24 ;
+ }
#Temperature anomaly
'Temperature anomaly' = {
table2Version = 3 ;
indicatorOfParameter = 25 ;
}
+#Temperature anomaly
+'Temperature anomaly' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 25 ;
+ }
+#Temperature anomaly
+'Temperature anomaly' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 25 ;
+ }
#Pressure anomaly
'Pressure anomaly' = {
table2Version = 3 ;
indicatorOfParameter = 26 ;
}
+#Pressure anomaly
+'Pressure anomaly' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 26 ;
+ }
+#Pressure anomaly
+'Pressure anomaly' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 26 ;
+ }
#Geopotential height anomaly
'Geopotential height anomaly' = {
table2Version = 3 ;
indicatorOfParameter = 27 ;
}
+#Geopotential height anomaly
+'Geopotential height anomaly' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 27 ;
+ }
+#Geopotential height anomaly
+'Geopotential height anomaly' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 27 ;
+ }
#Wave spectra (1)
'Wave spectra (1)' = {
table2Version = 3 ;
indicatorOfParameter = 28 ;
}
+#Wave spectra (1)
+'Wave spectra (1)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 28 ;
+ }
+#Wave spectra (1)
+'Wave spectra (1)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 28 ;
+ }
#Wave spectra (2)
'Wave spectra (2)' = {
table2Version = 3 ;
indicatorOfParameter = 29 ;
}
+#Wave spectra (2)
+'Wave spectra (2)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 29 ;
+ }
+#Wave spectra (2)
+'Wave spectra (2)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 29 ;
+ }
#Wave spectra (3)
'Wave spectra (3)' = {
table2Version = 3 ;
indicatorOfParameter = 30 ;
}
+#Wave spectra (3)
+'Wave spectra (3)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 30 ;
+ }
+#Wave spectra (3)
+'Wave spectra (3)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 30 ;
+ }
#Wind direction
'Wind direction' = {
table2Version = 3 ;
indicatorOfParameter = 31 ;
}
+#Wind direction
+'Wind direction' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 31 ;
+ }
+#Wind direction
+'Wind direction' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 31 ;
+ }
#Montgomery stream Function
'Montgomery stream Function' = {
table2Version = 3 ;
indicatorOfParameter = 37 ;
}
+#Montgomery stream Function
+'Montgomery stream Function' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 37 ;
+ }
+#Montgomery stream Function
+'Montgomery stream Function' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 37 ;
+ }
#Sigma coordinate vertical velocity
'Sigma coordinate vertical velocity' = {
table2Version = 3 ;
indicatorOfParameter = 38 ;
}
+#Sigma coordinate vertical velocity
+'Sigma coordinate vertical velocity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 38 ;
+ }
+#Sigma coordinate vertical velocity
+'Sigma coordinate vertical velocity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 38 ;
+ }
#Absolute vorticity
'Absolute vorticity' = {
table2Version = 3 ;
indicatorOfParameter = 41 ;
}
+#Absolute vorticity
+'Absolute vorticity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 41 ;
+ }
+#Absolute vorticity
+'Absolute vorticity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 41 ;
+ }
#Absolute divergence
'Absolute divergence' = {
table2Version = 3 ;
indicatorOfParameter = 42 ;
}
+#Absolute divergence
+'Absolute divergence' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 42 ;
+ }
+#Absolute divergence
+'Absolute divergence' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 42 ;
+ }
#Vertical u-component shear
'Vertical u-component shear' = {
table2Version = 3 ;
indicatorOfParameter = 45 ;
}
+#Vertical u-component shear
+'Vertical u-component shear' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 45 ;
+ }
+#Vertical u-component shear
+'Vertical u-component shear' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 45 ;
+ }
#Vertical v-component shear
'Vertical v-component shear' = {
table2Version = 3 ;
indicatorOfParameter = 46 ;
}
+#Vertical v-component shear
+'Vertical v-component shear' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 46 ;
+ }
+#Vertical v-component shear
+'Vertical v-component shear' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 46 ;
+ }
#Direction of current
'Direction of current' = {
table2Version = 3 ;
indicatorOfParameter = 47 ;
}
+#Direction of current
+'Direction of current' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 47 ;
+ }
+#Direction of current
+'Direction of current' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 47 ;
+ }
#Speed of current
'Speed of current' = {
table2Version = 3 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'U-component of current' = {
- table2Version = 3 ;
- indicatorOfParameter = 49 ;
+#Speed of current
+'Speed of current' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 48 ;
}
-#V-component of current
-'V-component of current' = {
- table2Version = 3 ;
- indicatorOfParameter = 50 ;
+#Speed of current
+'Speed of current' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 48 ;
}
#Humidity mixing ratio
'Humidity mixing ratio' = {
table2Version = 3 ;
indicatorOfParameter = 53 ;
}
+#Humidity mixing ratio
+'Humidity mixing ratio' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 53 ;
+ }
+#Humidity mixing ratio
+'Humidity mixing ratio' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 53 ;
+ }
#Precipitable water
'Precipitable water' = {
table2Version = 3 ;
indicatorOfParameter = 54 ;
}
+#Precipitable water
+'Precipitable water' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 54 ;
+ }
+#Precipitable water
+'Precipitable water' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 54 ;
+ }
#Vapour pressure
'Vapour pressure' = {
table2Version = 3 ;
indicatorOfParameter = 55 ;
}
+#Vapour pressure
+'Vapour pressure' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 55 ;
+ }
+#Vapour pressure
+'Vapour pressure' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 55 ;
+ }
#Saturation deficit
'Saturation deficit' = {
table2Version = 3 ;
indicatorOfParameter = 56 ;
}
+#Saturation deficit
+'Saturation deficit' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 56 ;
+ }
+#Saturation deficit
+'Saturation deficit' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 56 ;
+ }
#Precipitation rate
'Precipitation rate' = {
table2Version = 3 ;
indicatorOfParameter = 59 ;
}
+#Precipitation rate
+'Precipitation rate' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 59 ;
+ }
+#Precipitation rate
+'Precipitation rate' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 59 ;
+ }
#Thunderstorm probability
'Thunderstorm probability' = {
table2Version = 3 ;
indicatorOfParameter = 60 ;
}
+#Thunderstorm probability
+'Thunderstorm probability' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 60 ;
+ }
+#Thunderstorm probability
+'Thunderstorm probability' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 60 ;
+ }
#Convective precipitation (water)
'Convective precipitation (water)' = {
table2Version = 3 ;
indicatorOfParameter = 63 ;
}
+#Convective precipitation (water)
+'Convective precipitation (water)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'Convective precipitation (water)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 63 ;
+ }
#Snow fall rate water equivalent
'Snow fall rate water equivalent' = {
table2Version = 3 ;
indicatorOfParameter = 64 ;
}
+#Snow fall rate water equivalent
+'Snow fall rate water equivalent' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 64 ;
+ }
+#Snow fall rate water equivalent
+'Snow fall rate water equivalent' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 64 ;
+ }
#Mixed layer depth
'Mixed layer depth' = {
table2Version = 3 ;
indicatorOfParameter = 67 ;
}
+#Mixed layer depth
+'Mixed layer depth' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 67 ;
+ }
+#Mixed layer depth
+'Mixed layer depth' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 67 ;
+ }
#Transient thermocline depth
'Transient thermocline depth' = {
table2Version = 3 ;
indicatorOfParameter = 68 ;
}
+#Transient thermocline depth
+'Transient thermocline depth' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 68 ;
+ }
+#Transient thermocline depth
+'Transient thermocline depth' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 68 ;
+ }
#Main thermocline depth
'Main thermocline depth' = {
table2Version = 3 ;
indicatorOfParameter = 69 ;
}
+#Main thermocline depth
+'Main thermocline depth' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 69 ;
+ }
+#Main thermocline depth
+'Main thermocline depth' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 69 ;
+ }
#Main thermocline anomaly
'Main thermocline anomaly' = {
table2Version = 3 ;
indicatorOfParameter = 70 ;
}
+#Main thermocline anomaly
+'Main thermocline anomaly' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 70 ;
+ }
+#Main thermocline anomaly
+'Main thermocline anomaly' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 70 ;
+ }
#Best lifted index (to 500 hPa)
'Best lifted index (to 500 hPa)' = {
table2Version = 3 ;
indicatorOfParameter = 77 ;
}
+#Best lifted index (to 500 hPa)
+'Best lifted index (to 500 hPa)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 77 ;
+ }
+#Best lifted index (to 500 hPa)
+'Best lifted index (to 500 hPa)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 77 ;
+ }
#Water temperature
'Water temperature' = {
table2Version = 3 ;
indicatorOfParameter = 80 ;
}
+#Water temperature
+'Water temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 80 ;
+ }
+#Water temperature
+'Water temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 80 ;
+ }
#Deviation of sea-level from mean
'Deviation of sea-level from mean' = {
table2Version = 3 ;
indicatorOfParameter = 82 ;
}
+#Deviation of sea-level from mean
+'Deviation of sea-level from mean' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 82 ;
+ }
+#Deviation of sea-level from mean
+'Deviation of sea-level from mean' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 82 ;
+ }
#Soil moisture content
'Soil moisture content' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture content
+'Soil moisture content' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture content
+'Soil moisture content' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Salinity
'Salinity' = {
table2Version = 3 ;
indicatorOfParameter = 88 ;
}
+#Salinity
+'Salinity' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 88 ;
+ }
+#Salinity
+'Salinity' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 88 ;
+ }
#Density
'Density' = {
table2Version = 3 ;
indicatorOfParameter = 89 ;
}
+#Density
+'Density' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 89 ;
+ }
+#Density
+'Density' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 89 ;
+ }
#Ice cover (1=ice, 0=no ice)
'Ice cover (1=ice, 0=no ice)' = {
table2Version = 3 ;
indicatorOfParameter = 91 ;
}
+#Ice cover (1=ice, 0=no ice)
+'Ice cover (1=ice, 0=no ice)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 91 ;
+ }
+#Ice cover (1=ice, 0=no ice)
+'Ice cover (1=ice, 0=no ice)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 91 ;
+ }
#Ice thickness
'Ice thickness' = {
table2Version = 3 ;
indicatorOfParameter = 92 ;
}
+#Ice thickness
+'Ice thickness' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 92 ;
+ }
+#Ice thickness
+'Ice thickness' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 92 ;
+ }
#Direction of ice drift
'Direction of ice drift' = {
table2Version = 3 ;
indicatorOfParameter = 93 ;
}
+#Direction of ice drift
+'Direction of ice drift' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 93 ;
+ }
+#Direction of ice drift
+'Direction of ice drift' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 93 ;
+ }
#Speed of ice drift
'Speed of ice drift' = {
table2Version = 3 ;
indicatorOfParameter = 94 ;
}
+#Speed of ice drift
+'Speed of ice drift' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 94 ;
+ }
+#Speed of ice drift
+'Speed of ice drift' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 94 ;
+ }
#U-component of ice drift
'U-component of ice drift' = {
table2Version = 3 ;
indicatorOfParameter = 95 ;
}
+#U-component of ice drift
+'U-component of ice drift' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 95 ;
+ }
+#U-component of ice drift
+'U-component of ice drift' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 95 ;
+ }
#V-component of ice drift
'V-component of ice drift' = {
table2Version = 3 ;
indicatorOfParameter = 96 ;
}
+#V-component of ice drift
+'V-component of ice drift' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 96 ;
+ }
+#V-component of ice drift
+'V-component of ice drift' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 96 ;
+ }
#Ice growth rate
'Ice growth rate' = {
table2Version = 3 ;
indicatorOfParameter = 97 ;
}
+#Ice growth rate
+'Ice growth rate' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 97 ;
+ }
+#Ice growth rate
+'Ice growth rate' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 97 ;
+ }
#Ice divergence
'Ice divergence' = {
table2Version = 3 ;
indicatorOfParameter = 98 ;
}
+#Ice divergence
+'Ice divergence' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 98 ;
+ }
+#Ice divergence
+'Ice divergence' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 98 ;
+ }
#Snowmelt
'Snowmelt' = {
table2Version = 3 ;
indicatorOfParameter = 99 ;
}
+#Snowmelt
+'Snowmelt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 99 ;
+ }
+#Snowmelt
+'Snowmelt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 99 ;
+ }
#Signific.height,combined wind waves+swell
'Signific.height,combined wind waves+swell' = {
table2Version = 3 ;
indicatorOfParameter = 100 ;
}
+#Signific.height,combined wind waves+swell
+'Signific.height,combined wind waves+swell' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 100 ;
+ }
+#Signific.height,combined wind waves+swell
+'Signific.height,combined wind waves+swell' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 100 ;
+ }
#Mean direction of wind waves
'Mean direction of wind waves' = {
table2Version = 3 ;
indicatorOfParameter = 101 ;
}
+#Mean direction of wind waves
+'Mean direction of wind waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 101 ;
+ }
+#Mean direction of wind waves
+'Mean direction of wind waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 101 ;
+ }
#Significant height of wind waves
'Significant height of wind waves' = {
table2Version = 3 ;
indicatorOfParameter = 102 ;
}
+#Significant height of wind waves
+'Significant height of wind waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 102 ;
+ }
+#Significant height of wind waves
+'Significant height of wind waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 102 ;
+ }
#Mean period of wind waves
'Mean period of wind waves' = {
table2Version = 3 ;
indicatorOfParameter = 103 ;
}
+#Mean period of wind waves
+'Mean period of wind waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 103 ;
+ }
+#Mean period of wind waves
+'Mean period of wind waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 103 ;
+ }
#Direction of swell waves
'Direction of swell waves' = {
table2Version = 3 ;
indicatorOfParameter = 104 ;
}
+#Direction of swell waves
+'Direction of swell waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 104 ;
+ }
+#Direction of swell waves
+'Direction of swell waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 104 ;
+ }
#Significant height of swell waves
'Significant height of swell waves' = {
table2Version = 3 ;
indicatorOfParameter = 105 ;
}
+#Significant height of swell waves
+'Significant height of swell waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 105 ;
+ }
+#Significant height of swell waves
+'Significant height of swell waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 105 ;
+ }
#Mean period of swell waves
'Mean period of swell waves' = {
table2Version = 3 ;
indicatorOfParameter = 106 ;
}
+#Mean period of swell waves
+'Mean period of swell waves' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 106 ;
+ }
+#Mean period of swell waves
+'Mean period of swell waves' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 106 ;
+ }
#Primary wave direction
'Primary wave direction' = {
table2Version = 3 ;
indicatorOfParameter = 107 ;
}
+#Primary wave direction
+'Primary wave direction' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 107 ;
+ }
+#Primary wave direction
+'Primary wave direction' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 107 ;
+ }
#Primary wave mean period
'Primary wave mean period' = {
table2Version = 3 ;
indicatorOfParameter = 108 ;
}
+#Primary wave mean period
+'Primary wave mean period' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 108 ;
+ }
+#Primary wave mean period
+'Primary wave mean period' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 108 ;
+ }
#Secondary wave direction
'Secondary wave direction' = {
table2Version = 3 ;
indicatorOfParameter = 109 ;
}
+#Secondary wave direction
+'Secondary wave direction' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 109 ;
+ }
+#Secondary wave direction
+'Secondary wave direction' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 109 ;
+ }
#Secondary wave mean period
'Secondary wave mean period' = {
table2Version = 3 ;
indicatorOfParameter = 110 ;
}
+#Secondary wave mean period
+'Secondary wave mean period' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 110 ;
+ }
+#Secondary wave mean period
+'Secondary wave mean period' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 110 ;
+ }
#Net short-wave radiation flux (surface)
'Net short-wave radiation flux (surface)' = {
table2Version = 3 ;
indicatorOfParameter = 111 ;
}
+#Net short-wave radiation flux (surface)
+'Net short-wave radiation flux (surface)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 111 ;
+ }
+#Net short-wave radiation flux (surface)
+'Net short-wave radiation flux (surface)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 111 ;
+ }
#Net long-wave radiation flux (surface)
'Net long-wave radiation flux (surface)' = {
table2Version = 3 ;
indicatorOfParameter = 112 ;
}
+#Net long-wave radiation flux (surface)
+'Net long-wave radiation flux (surface)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 112 ;
+ }
+#Net long-wave radiation flux (surface)
+'Net long-wave radiation flux (surface)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 112 ;
+ }
#Net short-wave radiation flux(atmosph.top)
'Net short-wave radiation flux(atmosph.top)' = {
table2Version = 3 ;
indicatorOfParameter = 113 ;
}
+#Net short-wave radiation flux(atmosph.top)
+'Net short-wave radiation flux(atmosph.top)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 113 ;
+ }
+#Net short-wave radiation flux(atmosph.top)
+'Net short-wave radiation flux(atmosph.top)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 113 ;
+ }
#Net long-wave radiation flux(atmosph.top)
'Net long-wave radiation flux(atmosph.top)' = {
table2Version = 3 ;
indicatorOfParameter = 114 ;
}
+#Net long-wave radiation flux(atmosph.top)
+'Net long-wave radiation flux(atmosph.top)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 114 ;
+ }
+#Net long-wave radiation flux(atmosph.top)
+'Net long-wave radiation flux(atmosph.top)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 114 ;
+ }
#Long wave radiation flux
'Long wave radiation flux' = {
table2Version = 3 ;
indicatorOfParameter = 115 ;
}
+#Long wave radiation flux
+'Long wave radiation flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 115 ;
+ }
+#Long wave radiation flux
+'Long wave radiation flux' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 115 ;
+ }
#Short wave radiation flux
'Short wave radiation flux' = {
table2Version = 3 ;
indicatorOfParameter = 116 ;
}
+#Short wave radiation flux
+'Short wave radiation flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 116 ;
+ }
+#Short wave radiation flux
+'Short wave radiation flux' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 116 ;
+ }
#Global radiation flux
'Global radiation flux' = {
table2Version = 3 ;
indicatorOfParameter = 117 ;
}
+#Global radiation flux
+'Global radiation flux' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 117 ;
+ }
+#Global radiation flux
+'Global radiation flux' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 117 ;
+ }
#Radiance (with respect to wave number)
'Radiance (with respect to wave number)' = {
table2Version = 3 ;
indicatorOfParameter = 119 ;
}
+#Radiance (with respect to wave number)
+'Radiance (with respect to wave number)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 119 ;
+ }
+#Radiance (with respect to wave number)
+'Radiance (with respect to wave number)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 119 ;
+ }
#Radiance (with respect to wave length)
'Radiance (with respect to wave length)' = {
table2Version = 3 ;
indicatorOfParameter = 120 ;
}
+#Radiance (with respect to wave length)
+'Radiance (with respect to wave length)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 120 ;
+ }
+#Radiance (with respect to wave length)
+'Radiance (with respect to wave length)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 120 ;
+ }
#Momentum flux, u-component
'Momentum flux, u-component' = {
table2Version = 3 ;
indicatorOfParameter = 124 ;
}
+#Momentum flux, u-component
+'Momentum flux, u-component' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 124 ;
+ }
+#Momentum flux, u-component
+'Momentum flux, u-component' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 124 ;
+ }
#Momentum flux, v-component
'Momentum flux, v-component' = {
table2Version = 3 ;
indicatorOfParameter = 125 ;
}
+#Momentum flux, v-component
+'Momentum flux, v-component' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 125 ;
+ }
+#Momentum flux, v-component
+'Momentum flux, v-component' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 125 ;
+ }
#Wind mixing energy
'Wind mixing energy' = {
table2Version = 3 ;
indicatorOfParameter = 126 ;
}
+#Wind mixing energy
+'Wind mixing energy' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 126 ;
+ }
+#Wind mixing energy
+'Wind mixing energy' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 126 ;
+ }
#Image data
'Image data' = {
table2Version = 3 ;
indicatorOfParameter = 127 ;
}
+#Image data
+'Image data' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 127 ;
+ }
+#Image data
+'Image data' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 127 ;
+ }
#Percentage of vegetation
'Percentage of vegetation' = {
table2Version = 3 ;
indicatorOfParameter = 87 ;
}
+#Percentage of vegetation
+'Percentage of vegetation' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 87 ;
+ }
+#Percentage of vegetation
+'Percentage of vegetation' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 87 ;
+ }
#Orography
'Orography' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Orography
+'Orography' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Orography
+'Orography' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Soil moisture
'Soil moisture' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture
+'Soil moisture' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture
+'Soil moisture' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Soil temperature
'Soil temperature' = {
table2Version = 3 ;
indicatorOfParameter = 85 ;
}
+#Soil temperature
+'Soil temperature' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 85 ;
+ }
+#Soil temperature
+'Soil temperature' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 85 ;
+ }
#Snowfall water equivalent
'Snowfall water equivalent' = {
table2Version = 3 ;
indicatorOfParameter = 65 ;
}
+#Snowfall water equivalent
+'Snowfall water equivalent' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 65 ;
+ }
+#Snowfall water equivalent
+'Snowfall water equivalent' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 65 ;
+ }
#Total Cloud Cover
'Total Cloud Cover' = {
table2Version = 3 ;
indicatorOfParameter = 71 ;
}
+#Total Cloud Cover
+'Total Cloud Cover' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 71 ;
+ }
+#Total Cloud Cover
+'Total Cloud Cover' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 71 ;
+ }
#Total Precipitation
'Total Precipitation' = {
table2Version = 3 ;
@@ -695,680 +2013,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'Stream function' = {
- table2Version = 2 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'Velocity potential' = {
- table2Version = 2 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'Potential temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'Wind speed' = {
- table2Version = 2 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'Pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'Potential vorticity' = {
- table2Version = 2 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'Maximum temperature at 2 metres in the last 6 hours' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'Minimum temperature at 2 metres in the last 6 hours' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'Geopotential' = {
- table2Version = 2 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'Temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'U component of wind' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'V component of wind' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'Specific humidity' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'Surface pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'Vertical velocity' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'Vorticity (relative)' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'Mean sea level pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'Divergence' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'Geopotential height' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'Relative humidity' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'10 metre U wind component' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'10 metre V wind component' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'2 metre temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'2 metre dewpoint temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'Land-sea mask' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'Surface roughness (climatological)' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'Evaporation' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'Brightness temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'Runoff' = {
- table2Version = 2 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'Total column ozone' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'Large-scale precipitation' = {
- table2Version = 2 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'Snow depth' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'Convective cloud cover' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'Low cloud cover' = {
- table2Version = 2 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'Medium cloud cover' = {
- table2Version = 2 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'High cloud cover' = {
- table2Version = 2 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'Large scale snow' = {
- table2Version = 2 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'Latent heat flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'Sensible heat flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'Boundary layer dissipation' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'Convective snow' = {
- table2Version = 2 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'Cloud water' = {
- table2Version = 2 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'Forecast albedo' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'Pressure tendency' = {
- table2Version = 2 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'ICAO Standard Atmosphere reference height' = {
- table2Version = 2 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'Geometrical height' = {
- table2Version = 2 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'Standard deviation of height' = {
- table2Version = 2 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'Pseudo-adiabatic potential temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'Maximum temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'Minimum temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'Dew point temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'Dew point depression (or deficit)' = {
- table2Version = 2 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'Lapse rate' = {
- table2Version = 2 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'Visibility' = {
- table2Version = 2 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'Radar spectra (1)' = {
- table2Version = 2 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'Radar spectra (2)' = {
- table2Version = 2 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'Radar spectra (3)' = {
- table2Version = 2 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'Parcel lifted index (to 500 hPa)' = {
- table2Version = 2 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'Temperature anomaly' = {
- table2Version = 2 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'Pressure anomaly' = {
- table2Version = 2 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'Geopotential height anomaly' = {
- table2Version = 2 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'Wave spectra (1)' = {
- table2Version = 2 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'Wave spectra (2)' = {
- table2Version = 2 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'Wave spectra (3)' = {
- table2Version = 2 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'Wind direction' = {
- table2Version = 2 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'Montgomery stream Function' = {
- table2Version = 2 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'Sigma coordinate vertical velocity' = {
- table2Version = 2 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'Absolute vorticity' = {
- table2Version = 2 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'Absolute divergence' = {
- table2Version = 2 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'Vertical u-component shear' = {
- table2Version = 2 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'Vertical v-component shear' = {
- table2Version = 2 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'Direction of current' = {
- table2Version = 2 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'Speed of current' = {
- table2Version = 2 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'U-component of current' = {
- table2Version = 2 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'V-component of current' = {
- table2Version = 2 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'Humidity mixing ratio' = {
- table2Version = 2 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'Precipitable water' = {
- table2Version = 2 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'Vapour pressure' = {
- table2Version = 2 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'Saturation deficit' = {
- table2Version = 2 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'Precipitation rate' = {
- table2Version = 2 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'Thunderstorm probability' = {
- table2Version = 2 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'Convective precipitation (water)' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'Snow fall rate water equivalent' = {
- table2Version = 2 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'Mixed layer depth' = {
- table2Version = 2 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'Transient thermocline depth' = {
- table2Version = 2 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'Main thermocline depth' = {
- table2Version = 2 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'Main thermocline anomaly' = {
- table2Version = 2 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'Best lifted index (to 500 hPa)' = {
- table2Version = 2 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'Water temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'Deviation of sea-level from mean' = {
- table2Version = 2 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'Soil moisture content' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'Salinity' = {
- table2Version = 2 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'Density' = {
- table2Version = 2 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'Ice cover (1=ice, 0=no ice)' = {
- table2Version = 2 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'Ice thickness' = {
- table2Version = 2 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'Direction of ice drift' = {
- table2Version = 2 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'Speed of ice drift' = {
- table2Version = 2 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'U-component of ice drift' = {
- table2Version = 2 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'V-component of ice drift' = {
- table2Version = 2 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'Ice growth rate' = {
- table2Version = 2 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'Ice divergence' = {
- table2Version = 2 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'Snowmelt' = {
- table2Version = 2 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'Signific.height,combined wind waves+swell' = {
- table2Version = 2 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'Mean direction of wind waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'Significant height of wind waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'Mean period of wind waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'Direction of swell waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'Significant height of swell waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'Mean period of swell waves' = {
- table2Version = 2 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'Primary wave direction' = {
- table2Version = 2 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'Primary wave mean period' = {
- table2Version = 2 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'Secondary wave direction' = {
- table2Version = 2 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'Secondary wave mean period' = {
- table2Version = 2 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'Net short-wave radiation flux (surface)' = {
- table2Version = 2 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'Net long-wave radiation flux (surface)' = {
- table2Version = 2 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'Net short-wave radiation flux(atmosph.top)' = {
- table2Version = 2 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'Net long-wave radiation flux(atmosph.top)' = {
- table2Version = 2 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'Long wave radiation flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'Short wave radiation flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'Global radiation flux' = {
- table2Version = 2 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'Radiance (with respect to wave number)' = {
- table2Version = 2 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'Radiance (with respect to wave length)' = {
- table2Version = 2 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'Momentum flux, u-component' = {
- table2Version = 2 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'Momentum flux, v-component' = {
- table2Version = 2 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'Wind mixing energy' = {
- table2Version = 2 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'Image data' = {
- table2Version = 2 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'Percentage of vegetation' = {
- table2Version = 2 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'Orography' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'Soil moisture' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'Soil temperature' = {
- table2Version = 2 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'Snowfall water equivalent' = {
- table2Version = 2 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'Total Cloud Cover' = {
- table2Version = 2 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'Total Precipitation' = {
table2Version = 2 ;
@@ -1376,680 +2020,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'Stream function' = {
- table2Version = 1 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'Velocity potential' = {
- table2Version = 1 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'Potential temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'Wind speed' = {
- table2Version = 1 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'Pressure' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'Potential vorticity' = {
- table2Version = 1 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'Maximum temperature at 2 metres in the last 6 hours' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'Minimum temperature at 2 metres in the last 6 hours' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'Geopotential' = {
- table2Version = 1 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'Temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'U component of wind' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'V component of wind' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'Specific humidity' = {
- table2Version = 1 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'Surface pressure' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'Vertical velocity' = {
- table2Version = 1 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'Vorticity (relative)' = {
- table2Version = 1 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'Mean sea level pressure' = {
- table2Version = 1 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'Divergence' = {
- table2Version = 1 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'Geopotential height' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'Relative humidity' = {
- table2Version = 1 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'10 metre U wind component' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'10 metre V wind component' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'2 metre temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'2 metre dewpoint temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'Land-sea mask' = {
- table2Version = 1 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'Surface roughness (climatological)' = {
- table2Version = 1 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'Evaporation' = {
- table2Version = 1 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'Brightness temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'Runoff' = {
- table2Version = 1 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'Total column ozone' = {
- table2Version = 1 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'Large-scale precipitation' = {
- table2Version = 1 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'Snow depth' = {
- table2Version = 1 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'Convective cloud cover' = {
- table2Version = 1 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'Low cloud cover' = {
- table2Version = 1 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'Medium cloud cover' = {
- table2Version = 1 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'High cloud cover' = {
- table2Version = 1 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'Large scale snow' = {
- table2Version = 1 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'Latent heat flux' = {
- table2Version = 1 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'Sensible heat flux' = {
- table2Version = 1 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'Boundary layer dissipation' = {
- table2Version = 1 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'Convective snow' = {
- table2Version = 1 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'Cloud water' = {
- table2Version = 1 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'Forecast albedo' = {
- table2Version = 1 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'Pressure tendency' = {
- table2Version = 1 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'ICAO Standard Atmosphere reference height' = {
- table2Version = 1 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'Geometrical height' = {
- table2Version = 1 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'Standard deviation of height' = {
- table2Version = 1 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'Pseudo-adiabatic potential temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'Maximum temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'Minimum temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'Dew point temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'Dew point depression (or deficit)' = {
- table2Version = 1 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'Lapse rate' = {
- table2Version = 1 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'Visibility' = {
- table2Version = 1 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'Radar spectra (1)' = {
- table2Version = 1 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'Radar spectra (2)' = {
- table2Version = 1 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'Radar spectra (3)' = {
- table2Version = 1 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'Parcel lifted index (to 500 hPa)' = {
- table2Version = 1 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'Temperature anomaly' = {
- table2Version = 1 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'Pressure anomaly' = {
- table2Version = 1 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'Geopotential height anomaly' = {
- table2Version = 1 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'Wave spectra (1)' = {
- table2Version = 1 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'Wave spectra (2)' = {
- table2Version = 1 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'Wave spectra (3)' = {
- table2Version = 1 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'Wind direction' = {
- table2Version = 1 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'Montgomery stream Function' = {
- table2Version = 1 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'Sigma coordinate vertical velocity' = {
- table2Version = 1 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'Absolute vorticity' = {
- table2Version = 1 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'Absolute divergence' = {
- table2Version = 1 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'Vertical u-component shear' = {
- table2Version = 1 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'Vertical v-component shear' = {
- table2Version = 1 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'Direction of current' = {
- table2Version = 1 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'Speed of current' = {
- table2Version = 1 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'U-component of current' = {
- table2Version = 1 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'V-component of current' = {
- table2Version = 1 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'Humidity mixing ratio' = {
- table2Version = 1 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'Precipitable water' = {
- table2Version = 1 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'Vapour pressure' = {
- table2Version = 1 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'Saturation deficit' = {
- table2Version = 1 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'Precipitation rate' = {
- table2Version = 1 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'Thunderstorm probability' = {
- table2Version = 1 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'Convective precipitation (water)' = {
- table2Version = 1 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'Snow fall rate water equivalent' = {
- table2Version = 1 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'Mixed layer depth' = {
- table2Version = 1 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'Transient thermocline depth' = {
- table2Version = 1 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'Main thermocline depth' = {
- table2Version = 1 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'Main thermocline anomaly' = {
- table2Version = 1 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'Best lifted index (to 500 hPa)' = {
- table2Version = 1 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'Water temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'Deviation of sea-level from mean' = {
- table2Version = 1 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'Soil moisture content' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'Salinity' = {
- table2Version = 1 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'Density' = {
- table2Version = 1 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'Ice cover (1=ice, 0=no ice)' = {
- table2Version = 1 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'Ice thickness' = {
- table2Version = 1 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'Direction of ice drift' = {
- table2Version = 1 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'Speed of ice drift' = {
- table2Version = 1 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'U-component of ice drift' = {
- table2Version = 1 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'V-component of ice drift' = {
- table2Version = 1 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'Ice growth rate' = {
- table2Version = 1 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'Ice divergence' = {
- table2Version = 1 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'Snowmelt' = {
- table2Version = 1 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'Signific.height,combined wind waves+swell' = {
- table2Version = 1 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'Mean direction of wind waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'Significant height of wind waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'Mean period of wind waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'Direction of swell waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'Significant height of swell waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'Mean period of swell waves' = {
- table2Version = 1 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'Primary wave direction' = {
- table2Version = 1 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'Primary wave mean period' = {
- table2Version = 1 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'Secondary wave direction' = {
- table2Version = 1 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'Secondary wave mean period' = {
- table2Version = 1 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'Net short-wave radiation flux (surface)' = {
- table2Version = 1 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'Net long-wave radiation flux (surface)' = {
- table2Version = 1 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'Net short-wave radiation flux(atmosph.top)' = {
- table2Version = 1 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'Net long-wave radiation flux(atmosph.top)' = {
- table2Version = 1 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'Long wave radiation flux' = {
- table2Version = 1 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'Short wave radiation flux' = {
- table2Version = 1 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'Global radiation flux' = {
- table2Version = 1 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'Radiance (with respect to wave number)' = {
- table2Version = 1 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'Radiance (with respect to wave length)' = {
- table2Version = 1 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'Momentum flux, u-component' = {
- table2Version = 1 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'Momentum flux, v-component' = {
- table2Version = 1 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'Wind mixing energy' = {
- table2Version = 1 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'Image data' = {
- table2Version = 1 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'Percentage of vegetation' = {
- table2Version = 1 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'Orography' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'Soil moisture' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'Soil temperature' = {
- table2Version = 1 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'Snowfall water equivalent' = {
- table2Version = 1 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'Total Cloud Cover' = {
- table2Version = 1 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'Total Precipitation' = {
table2Version = 1 ;
diff --git a/definitions/grib1/paramId.def b/definitions/grib1/paramId.def
index 6c10f9258..425fa489d 100644
--- a/definitions/grib1/paramId.def
+++ b/definitions/grib1/paramId.def
@@ -4,31 +4,91 @@
table2Version = 3 ;
indicatorOfParameter = 35 ;
}
+#Stream function
+'1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 35 ;
+ }
+#Stream function
+'1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 35 ;
+ }
#Velocity potential
'2' = {
table2Version = 3 ;
indicatorOfParameter = 36 ;
}
+#Velocity potential
+'2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 36 ;
+ }
+#Velocity potential
+'2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 36 ;
+ }
#Potential temperature
'3' = {
table2Version = 3 ;
indicatorOfParameter = 13 ;
}
+#Potential temperature
+'3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 13 ;
+ }
+#Potential temperature
+'3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 13 ;
+ }
#Wind speed
'10' = {
table2Version = 3 ;
indicatorOfParameter = 32 ;
}
+#Wind speed
+'10' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 32 ;
+ }
+#Wind speed
+'10' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 32 ;
+ }
#Pressure
'54' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
}
+#Pressure
+'54' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ }
+#Pressure
+'54' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ }
#Potential vorticity
'60' = {
table2Version = 3 ;
indicatorOfParameter = 4 ;
}
+#Potential vorticity
+'60' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 4 ;
+ }
+#Potential vorticity
+'60' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 4 ;
+ }
#Maximum temperature at 2 metres in the last 6 hours
'121' = {
table2Version = 3 ;
@@ -36,6 +96,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'121' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Maximum temperature at 2 metres in the last 6 hours
+'121' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Minimum temperature at 2 metres in the last 6 hours
'122' = {
table2Version = 3 ;
@@ -43,67 +117,203 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Minimum temperature at 2 metres in the last 6 hours
+'122' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'122' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Geopotential
'129' = {
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
+#Geopotential
+'129' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 6 ;
+ }
+#Geopotential
+'129' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 6 ;
+ }
#Temperature
'130' = {
table2Version = 3 ;
indicatorOfParameter = 11 ;
}
+#Temperature
+'130' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'130' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ }
#U component of wind
'131' = {
table2Version = 3 ;
indicatorOfParameter = 33 ;
}
+#U component of wind
+'131' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'131' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ }
#V component of wind
'132' = {
table2Version = 3 ;
indicatorOfParameter = 34 ;
}
+#V component of wind
+'132' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'132' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ }
#Specific humidity
'133' = {
table2Version = 3 ;
indicatorOfParameter = 51 ;
}
+#Specific humidity
+'133' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'133' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 51 ;
+ }
#Surface pressure
'134' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Surface pressure
+'134' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'134' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Vertical velocity
'135' = {
table2Version = 3 ;
indicatorOfParameter = 39 ;
}
+#Vertical velocity
+'135' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'135' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 39 ;
+ }
#Vorticity (relative)
'138' = {
table2Version = 3 ;
indicatorOfParameter = 43 ;
}
+#Vorticity (relative)
+'138' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'138' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 43 ;
+ }
#Mean sea level pressure
'151' = {
table2Version = 3 ;
indicatorOfParameter = 2 ;
}
+#Mean sea level pressure
+'151' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'151' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 2 ;
+ }
#Divergence
'155' = {
table2Version = 3 ;
indicatorOfParameter = 44 ;
}
+#Divergence
+'155' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'155' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 44 ;
+ }
#Geopotential height
'156' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
}
+#Geopotential height
+'156' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'156' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ }
#Relative humidity
'157' = {
table2Version = 3 ;
indicatorOfParameter = 52 ;
}
+#Relative humidity
+'157' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'157' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 52 ;
+ }
#10 metre U wind component
'165' = {
table2Version = 3 ;
@@ -111,6 +321,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre U wind component
+'165' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre U wind component
+'165' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#10 metre V wind component
'166' = {
table2Version = 3 ;
@@ -118,6 +342,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre V wind component
+'166' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre V wind component
+'166' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#2 metre temperature
'167' = {
table2Version = 3 ;
@@ -125,6 +363,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre temperature
+'167' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre temperature
+'167' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#2 metre dewpoint temperature
'168' = {
table2Version = 3 ;
@@ -132,104 +384,308 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre dewpoint temperature
+'168' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre dewpoint temperature
+'168' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Land-sea mask
'172' = {
table2Version = 3 ;
indicatorOfParameter = 81 ;
}
+#Land-sea mask
+'172' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'172' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 81 ;
+ }
#Surface roughness (climatological)
'173' = {
table2Version = 3 ;
indicatorOfParameter = 83 ;
}
+#Surface roughness (climatological)
+'173' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'173' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 83 ;
+ }
#Evaporation
'182' = {
table2Version = 3 ;
indicatorOfParameter = 57 ;
}
+#Evaporation
+'182' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'182' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 57 ;
+ }
#Brightness temperature
'194' = {
table2Version = 3 ;
indicatorOfParameter = 118 ;
}
+#Brightness temperature
+'194' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 118 ;
+ }
+#Brightness temperature
+'194' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 118 ;
+ }
#Runoff
'205' = {
table2Version = 3 ;
indicatorOfParameter = 90 ;
}
+#Runoff
+'205' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 90 ;
+ }
+#Runoff
+'205' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 90 ;
+ }
#Total column ozone
'206' = {
table2Version = 3 ;
indicatorOfParameter = 10 ;
}
+#Total column ozone
+'206' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'206' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 10 ;
+ }
#Large-scale precipitation
'3062' = {
table2Version = 3 ;
indicatorOfParameter = 62 ;
}
+#Large-scale precipitation
+'3062' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 62 ;
+ }
+#Large-scale precipitation
+'3062' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 62 ;
+ }
#Snow depth
'3066' = {
table2Version = 3 ;
indicatorOfParameter = 66 ;
}
+#Snow depth
+'3066' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'3066' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 66 ;
+ }
#Convective cloud cover
'3072' = {
table2Version = 3 ;
indicatorOfParameter = 72 ;
}
+#Convective cloud cover
+'3072' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'3072' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 72 ;
+ }
#Low cloud cover
'3073' = {
table2Version = 3 ;
indicatorOfParameter = 73 ;
}
+#Low cloud cover
+'3073' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 73 ;
+ }
+#Low cloud cover
+'3073' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 73 ;
+ }
#Medium cloud cover
'3074' = {
table2Version = 3 ;
indicatorOfParameter = 74 ;
}
+#Medium cloud cover
+'3074' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 74 ;
+ }
+#Medium cloud cover
+'3074' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 74 ;
+ }
#High cloud cover
'3075' = {
table2Version = 3 ;
indicatorOfParameter = 75 ;
}
+#High cloud cover
+'3075' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 75 ;
+ }
+#High cloud cover
+'3075' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 75 ;
+ }
#Large scale snow
'3079' = {
table2Version = 3 ;
indicatorOfParameter = 79 ;
}
+#Large scale snow
+'3079' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 79 ;
+ }
+#Large scale snow
+'3079' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 79 ;
+ }
#Latent heat flux
'3121' = {
table2Version = 3 ;
indicatorOfParameter = 121 ;
}
+#Latent heat flux
+'3121' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'3121' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 121 ;
+ }
#Sensible heat flux
'3122' = {
table2Version = 3 ;
indicatorOfParameter = 122 ;
}
+#Sensible heat flux
+'3122' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'3122' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 122 ;
+ }
#Boundary layer dissipation
'3123' = {
table2Version = 3 ;
indicatorOfParameter = 123 ;
}
+#Boundary layer dissipation
+'3123' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'3123' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 123 ;
+ }
#Convective snow
'260011' = {
table2Version = 3 ;
indicatorOfParameter = 78 ;
}
+#Convective snow
+'260011' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 78 ;
+ }
+#Convective snow
+'260011' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 78 ;
+ }
#Cloud water
'260102' = {
table2Version = 3 ;
indicatorOfParameter = 76 ;
}
+#Cloud water
+'260102' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 76 ;
+ }
+#Cloud water
+'260102' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 76 ;
+ }
#Forecast albedo
'260509' = {
table2Version = 3 ;
indicatorOfParameter = 84 ;
}
+#Forecast albedo
+'260509' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'260509' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 84 ;
+ }
#Virtual temperature
'300012' = {
- table2Version = 1 ;
+ table2Version = 3 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
@@ -239,7 +695,7 @@
}
#Virtual temperature
'300012' = {
- table2Version = 3 ;
+ table2Version = 1 ;
indicatorOfParameter = 12 ;
}
#Pressure tendency
@@ -247,447 +703,1309 @@
table2Version = 3 ;
indicatorOfParameter = 3 ;
}
+#Pressure tendency
+'3003' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 3 ;
+ }
+#Pressure tendency
+'3003' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 3 ;
+ }
#ICAO Standard Atmosphere reference height
'3005' = {
table2Version = 3 ;
indicatorOfParameter = 5 ;
}
+#ICAO Standard Atmosphere reference height
+'3005' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 5 ;
+ }
+#ICAO Standard Atmosphere reference height
+'3005' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 5 ;
+ }
#Geometrical height
'3008' = {
table2Version = 3 ;
indicatorOfParameter = 8 ;
}
+#Geometrical height
+'3008' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 8 ;
+ }
+#Geometrical height
+'3008' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 8 ;
+ }
#Standard deviation of height
'3009' = {
table2Version = 3 ;
indicatorOfParameter = 9 ;
}
+#Standard deviation of height
+'3009' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 9 ;
+ }
+#Standard deviation of height
+'3009' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 9 ;
+ }
#Pseudo-adiabatic potential temperature
'3014' = {
table2Version = 3 ;
indicatorOfParameter = 14 ;
}
+#Pseudo-adiabatic potential temperature
+'3014' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 14 ;
+ }
+#Pseudo-adiabatic potential temperature
+'3014' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 14 ;
+ }
#Maximum temperature
'3015' = {
table2Version = 3 ;
indicatorOfParameter = 15 ;
}
+#Maximum temperature
+'3015' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ }
+#Maximum temperature
+'3015' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ }
#Minimum temperature
'3016' = {
table2Version = 3 ;
indicatorOfParameter = 16 ;
}
+#Minimum temperature
+'3016' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ }
+#Minimum temperature
+'3016' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ }
#Dew point temperature
'3017' = {
table2Version = 3 ;
indicatorOfParameter = 17 ;
}
+#Dew point temperature
+'3017' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ }
+#Dew point temperature
+'3017' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ }
#Dew point depression (or deficit)
'3018' = {
table2Version = 3 ;
indicatorOfParameter = 18 ;
}
+#Dew point depression (or deficit)
+'3018' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 18 ;
+ }
+#Dew point depression (or deficit)
+'3018' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 18 ;
+ }
#Lapse rate
'3019' = {
table2Version = 3 ;
indicatorOfParameter = 19 ;
}
+#Lapse rate
+'3019' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 19 ;
+ }
+#Lapse rate
+'3019' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 19 ;
+ }
#Visibility
'3020' = {
table2Version = 3 ;
indicatorOfParameter = 20 ;
}
+#Visibility
+'3020' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 20 ;
+ }
+#Visibility
+'3020' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 20 ;
+ }
#Radar spectra (1)
'3021' = {
table2Version = 3 ;
indicatorOfParameter = 21 ;
}
+#Radar spectra (1)
+'3021' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 21 ;
+ }
+#Radar spectra (1)
+'3021' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 21 ;
+ }
#Radar spectra (2)
'3022' = {
table2Version = 3 ;
indicatorOfParameter = 22 ;
}
+#Radar spectra (2)
+'3022' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 22 ;
+ }
+#Radar spectra (2)
+'3022' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 22 ;
+ }
#Radar spectra (3)
'3023' = {
table2Version = 3 ;
indicatorOfParameter = 23 ;
}
+#Radar spectra (3)
+'3023' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 23 ;
+ }
+#Radar spectra (3)
+'3023' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 23 ;
+ }
#Parcel lifted index (to 500 hPa)
'3024' = {
table2Version = 3 ;
indicatorOfParameter = 24 ;
}
+#Parcel lifted index (to 500 hPa)
+'3024' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 24 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'3024' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 24 ;
+ }
#Temperature anomaly
'3025' = {
table2Version = 3 ;
indicatorOfParameter = 25 ;
}
+#Temperature anomaly
+'3025' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 25 ;
+ }
+#Temperature anomaly
+'3025' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 25 ;
+ }
#Pressure anomaly
'3026' = {
table2Version = 3 ;
indicatorOfParameter = 26 ;
}
+#Pressure anomaly
+'3026' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 26 ;
+ }
+#Pressure anomaly
+'3026' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 26 ;
+ }
#Geopotential height anomaly
'3027' = {
table2Version = 3 ;
indicatorOfParameter = 27 ;
}
+#Geopotential height anomaly
+'3027' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 27 ;
+ }
+#Geopotential height anomaly
+'3027' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 27 ;
+ }
#Wave spectra (1)
'3028' = {
table2Version = 3 ;
indicatorOfParameter = 28 ;
}
+#Wave spectra (1)
+'3028' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 28 ;
+ }
+#Wave spectra (1)
+'3028' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 28 ;
+ }
#Wave spectra (2)
'3029' = {
table2Version = 3 ;
indicatorOfParameter = 29 ;
}
+#Wave spectra (2)
+'3029' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 29 ;
+ }
+#Wave spectra (2)
+'3029' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 29 ;
+ }
#Wave spectra (3)
'3030' = {
table2Version = 3 ;
indicatorOfParameter = 30 ;
}
+#Wave spectra (3)
+'3030' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 30 ;
+ }
+#Wave spectra (3)
+'3030' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 30 ;
+ }
#Wind direction
'3031' = {
table2Version = 3 ;
indicatorOfParameter = 31 ;
}
+#Wind direction
+'3031' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 31 ;
+ }
+#Wind direction
+'3031' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 31 ;
+ }
#Montgomery stream Function
'3037' = {
table2Version = 3 ;
indicatorOfParameter = 37 ;
}
+#Montgomery stream Function
+'3037' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 37 ;
+ }
+#Montgomery stream Function
+'3037' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 37 ;
+ }
#Sigma coordinate vertical velocity
'3038' = {
table2Version = 3 ;
indicatorOfParameter = 38 ;
}
+#Sigma coordinate vertical velocity
+'3038' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 38 ;
+ }
+#Sigma coordinate vertical velocity
+'3038' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 38 ;
+ }
#Absolute vorticity
'3041' = {
table2Version = 3 ;
indicatorOfParameter = 41 ;
}
+#Absolute vorticity
+'3041' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 41 ;
+ }
+#Absolute vorticity
+'3041' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 41 ;
+ }
#Absolute divergence
'3042' = {
table2Version = 3 ;
indicatorOfParameter = 42 ;
}
+#Absolute divergence
+'3042' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 42 ;
+ }
+#Absolute divergence
+'3042' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 42 ;
+ }
#Vertical u-component shear
'3045' = {
table2Version = 3 ;
indicatorOfParameter = 45 ;
}
+#Vertical u-component shear
+'3045' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 45 ;
+ }
+#Vertical u-component shear
+'3045' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 45 ;
+ }
#Vertical v-component shear
'3046' = {
table2Version = 3 ;
indicatorOfParameter = 46 ;
}
+#Vertical v-component shear
+'3046' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 46 ;
+ }
+#Vertical v-component shear
+'3046' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 46 ;
+ }
#Direction of current
'3047' = {
table2Version = 3 ;
indicatorOfParameter = 47 ;
}
+#Direction of current
+'3047' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 47 ;
+ }
+#Direction of current
+'3047' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 47 ;
+ }
#Speed of current
'3048' = {
table2Version = 3 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'3049' = {
- table2Version = 3 ;
- indicatorOfParameter = 49 ;
+#Speed of current
+'3048' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 48 ;
}
-#V-component of current
-'3050' = {
- table2Version = 3 ;
- indicatorOfParameter = 50 ;
+#Speed of current
+'3048' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 48 ;
}
#Humidity mixing ratio
'3053' = {
table2Version = 3 ;
indicatorOfParameter = 53 ;
}
+#Humidity mixing ratio
+'3053' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 53 ;
+ }
+#Humidity mixing ratio
+'3053' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 53 ;
+ }
#Precipitable water
'3054' = {
table2Version = 3 ;
indicatorOfParameter = 54 ;
}
+#Precipitable water
+'3054' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 54 ;
+ }
+#Precipitable water
+'3054' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 54 ;
+ }
#Vapour pressure
'3055' = {
table2Version = 3 ;
indicatorOfParameter = 55 ;
}
+#Vapour pressure
+'3055' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 55 ;
+ }
+#Vapour pressure
+'3055' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 55 ;
+ }
#Saturation deficit
'3056' = {
table2Version = 3 ;
indicatorOfParameter = 56 ;
}
+#Saturation deficit
+'3056' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 56 ;
+ }
+#Saturation deficit
+'3056' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 56 ;
+ }
#Precipitation rate
'3059' = {
table2Version = 3 ;
indicatorOfParameter = 59 ;
}
+#Precipitation rate
+'3059' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 59 ;
+ }
+#Precipitation rate
+'3059' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 59 ;
+ }
#Thunderstorm probability
'3060' = {
table2Version = 3 ;
indicatorOfParameter = 60 ;
}
+#Thunderstorm probability
+'3060' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 60 ;
+ }
+#Thunderstorm probability
+'3060' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 60 ;
+ }
#Convective precipitation (water)
'3063' = {
table2Version = 3 ;
indicatorOfParameter = 63 ;
}
+#Convective precipitation (water)
+'3063' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'3063' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 63 ;
+ }
#Snow fall rate water equivalent
'3064' = {
table2Version = 3 ;
indicatorOfParameter = 64 ;
}
+#Snow fall rate water equivalent
+'3064' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 64 ;
+ }
+#Snow fall rate water equivalent
+'3064' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 64 ;
+ }
#Mixed layer depth
'3067' = {
table2Version = 3 ;
indicatorOfParameter = 67 ;
}
+#Mixed layer depth
+'3067' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 67 ;
+ }
+#Mixed layer depth
+'3067' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 67 ;
+ }
#Transient thermocline depth
'3068' = {
table2Version = 3 ;
indicatorOfParameter = 68 ;
}
+#Transient thermocline depth
+'3068' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 68 ;
+ }
+#Transient thermocline depth
+'3068' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 68 ;
+ }
#Main thermocline depth
'3069' = {
table2Version = 3 ;
indicatorOfParameter = 69 ;
}
+#Main thermocline depth
+'3069' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 69 ;
+ }
+#Main thermocline depth
+'3069' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 69 ;
+ }
#Main thermocline anomaly
'3070' = {
table2Version = 3 ;
indicatorOfParameter = 70 ;
}
+#Main thermocline anomaly
+'3070' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 70 ;
+ }
+#Main thermocline anomaly
+'3070' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 70 ;
+ }
#Best lifted index (to 500 hPa)
'3077' = {
table2Version = 3 ;
indicatorOfParameter = 77 ;
}
+#Best lifted index (to 500 hPa)
+'3077' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 77 ;
+ }
+#Best lifted index (to 500 hPa)
+'3077' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 77 ;
+ }
#Water temperature
'3080' = {
table2Version = 3 ;
indicatorOfParameter = 80 ;
}
+#Water temperature
+'3080' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 80 ;
+ }
+#Water temperature
+'3080' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 80 ;
+ }
#Deviation of sea-level from mean
'3082' = {
table2Version = 3 ;
indicatorOfParameter = 82 ;
}
+#Deviation of sea-level from mean
+'3082' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 82 ;
+ }
+#Deviation of sea-level from mean
+'3082' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 82 ;
+ }
#Soil moisture content
'3086' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture content
+'3086' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture content
+'3086' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Salinity
'3088' = {
table2Version = 3 ;
indicatorOfParameter = 88 ;
}
+#Salinity
+'3088' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 88 ;
+ }
+#Salinity
+'3088' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 88 ;
+ }
#Density
'3089' = {
table2Version = 3 ;
indicatorOfParameter = 89 ;
}
+#Density
+'3089' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 89 ;
+ }
+#Density
+'3089' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 89 ;
+ }
#Ice cover (1=ice, 0=no ice)
'3091' = {
table2Version = 3 ;
indicatorOfParameter = 91 ;
}
+#Ice cover (1=ice, 0=no ice)
+'3091' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 91 ;
+ }
+#Ice cover (1=ice, 0=no ice)
+'3091' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 91 ;
+ }
#Ice thickness
'3092' = {
table2Version = 3 ;
indicatorOfParameter = 92 ;
}
+#Ice thickness
+'3092' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 92 ;
+ }
+#Ice thickness
+'3092' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 92 ;
+ }
#Direction of ice drift
'3093' = {
table2Version = 3 ;
indicatorOfParameter = 93 ;
}
+#Direction of ice drift
+'3093' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 93 ;
+ }
+#Direction of ice drift
+'3093' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 93 ;
+ }
#Speed of ice drift
'3094' = {
table2Version = 3 ;
indicatorOfParameter = 94 ;
}
+#Speed of ice drift
+'3094' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 94 ;
+ }
+#Speed of ice drift
+'3094' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 94 ;
+ }
#U-component of ice drift
'3095' = {
table2Version = 3 ;
indicatorOfParameter = 95 ;
}
+#U-component of ice drift
+'3095' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 95 ;
+ }
+#U-component of ice drift
+'3095' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 95 ;
+ }
#V-component of ice drift
'3096' = {
table2Version = 3 ;
indicatorOfParameter = 96 ;
}
+#V-component of ice drift
+'3096' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 96 ;
+ }
+#V-component of ice drift
+'3096' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 96 ;
+ }
#Ice growth rate
'3097' = {
table2Version = 3 ;
indicatorOfParameter = 97 ;
}
+#Ice growth rate
+'3097' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 97 ;
+ }
+#Ice growth rate
+'3097' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 97 ;
+ }
#Ice divergence
'3098' = {
table2Version = 3 ;
indicatorOfParameter = 98 ;
}
+#Ice divergence
+'3098' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 98 ;
+ }
+#Ice divergence
+'3098' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 98 ;
+ }
#Snowmelt
'3099' = {
table2Version = 3 ;
indicatorOfParameter = 99 ;
}
+#Snowmelt
+'3099' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 99 ;
+ }
+#Snowmelt
+'3099' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 99 ;
+ }
#Signific.height,combined wind waves+swell
'3100' = {
table2Version = 3 ;
indicatorOfParameter = 100 ;
}
+#Signific.height,combined wind waves+swell
+'3100' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 100 ;
+ }
+#Signific.height,combined wind waves+swell
+'3100' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 100 ;
+ }
#Mean direction of wind waves
'3101' = {
table2Version = 3 ;
indicatorOfParameter = 101 ;
}
+#Mean direction of wind waves
+'3101' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 101 ;
+ }
+#Mean direction of wind waves
+'3101' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 101 ;
+ }
#Significant height of wind waves
'3102' = {
table2Version = 3 ;
indicatorOfParameter = 102 ;
}
+#Significant height of wind waves
+'3102' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 102 ;
+ }
+#Significant height of wind waves
+'3102' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 102 ;
+ }
#Mean period of wind waves
'3103' = {
table2Version = 3 ;
indicatorOfParameter = 103 ;
}
+#Mean period of wind waves
+'3103' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 103 ;
+ }
+#Mean period of wind waves
+'3103' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 103 ;
+ }
#Direction of swell waves
'3104' = {
table2Version = 3 ;
indicatorOfParameter = 104 ;
}
+#Direction of swell waves
+'3104' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 104 ;
+ }
+#Direction of swell waves
+'3104' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 104 ;
+ }
#Significant height of swell waves
'3105' = {
table2Version = 3 ;
indicatorOfParameter = 105 ;
}
+#Significant height of swell waves
+'3105' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 105 ;
+ }
+#Significant height of swell waves
+'3105' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 105 ;
+ }
#Mean period of swell waves
'3106' = {
table2Version = 3 ;
indicatorOfParameter = 106 ;
}
+#Mean period of swell waves
+'3106' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 106 ;
+ }
+#Mean period of swell waves
+'3106' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 106 ;
+ }
#Primary wave direction
'3107' = {
table2Version = 3 ;
indicatorOfParameter = 107 ;
}
+#Primary wave direction
+'3107' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 107 ;
+ }
+#Primary wave direction
+'3107' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 107 ;
+ }
#Primary wave mean period
'3108' = {
table2Version = 3 ;
indicatorOfParameter = 108 ;
}
+#Primary wave mean period
+'3108' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 108 ;
+ }
+#Primary wave mean period
+'3108' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 108 ;
+ }
#Secondary wave direction
'3109' = {
table2Version = 3 ;
indicatorOfParameter = 109 ;
}
+#Secondary wave direction
+'3109' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 109 ;
+ }
+#Secondary wave direction
+'3109' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 109 ;
+ }
#Secondary wave mean period
'3110' = {
table2Version = 3 ;
indicatorOfParameter = 110 ;
}
+#Secondary wave mean period
+'3110' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 110 ;
+ }
+#Secondary wave mean period
+'3110' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 110 ;
+ }
#Net short-wave radiation flux (surface)
'3111' = {
table2Version = 3 ;
indicatorOfParameter = 111 ;
}
+#Net short-wave radiation flux (surface)
+'3111' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 111 ;
+ }
+#Net short-wave radiation flux (surface)
+'3111' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 111 ;
+ }
#Net long-wave radiation flux (surface)
'3112' = {
table2Version = 3 ;
indicatorOfParameter = 112 ;
}
+#Net long-wave radiation flux (surface)
+'3112' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 112 ;
+ }
+#Net long-wave radiation flux (surface)
+'3112' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 112 ;
+ }
#Net short-wave radiation flux(atmosph.top)
'3113' = {
table2Version = 3 ;
indicatorOfParameter = 113 ;
}
+#Net short-wave radiation flux(atmosph.top)
+'3113' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 113 ;
+ }
+#Net short-wave radiation flux(atmosph.top)
+'3113' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 113 ;
+ }
#Net long-wave radiation flux(atmosph.top)
'3114' = {
table2Version = 3 ;
indicatorOfParameter = 114 ;
}
+#Net long-wave radiation flux(atmosph.top)
+'3114' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 114 ;
+ }
+#Net long-wave radiation flux(atmosph.top)
+'3114' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 114 ;
+ }
#Long wave radiation flux
'3115' = {
table2Version = 3 ;
indicatorOfParameter = 115 ;
}
+#Long wave radiation flux
+'3115' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 115 ;
+ }
+#Long wave radiation flux
+'3115' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 115 ;
+ }
#Short wave radiation flux
'3116' = {
table2Version = 3 ;
indicatorOfParameter = 116 ;
}
+#Short wave radiation flux
+'3116' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 116 ;
+ }
+#Short wave radiation flux
+'3116' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 116 ;
+ }
#Global radiation flux
'3117' = {
table2Version = 3 ;
indicatorOfParameter = 117 ;
}
+#Global radiation flux
+'3117' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 117 ;
+ }
+#Global radiation flux
+'3117' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 117 ;
+ }
#Radiance (with respect to wave number)
'3119' = {
table2Version = 3 ;
indicatorOfParameter = 119 ;
}
+#Radiance (with respect to wave number)
+'3119' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 119 ;
+ }
+#Radiance (with respect to wave number)
+'3119' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 119 ;
+ }
#Radiance (with respect to wave length)
'3120' = {
table2Version = 3 ;
indicatorOfParameter = 120 ;
}
+#Radiance (with respect to wave length)
+'3120' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 120 ;
+ }
+#Radiance (with respect to wave length)
+'3120' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 120 ;
+ }
#Momentum flux, u-component
'3124' = {
table2Version = 3 ;
indicatorOfParameter = 124 ;
}
+#Momentum flux, u-component
+'3124' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 124 ;
+ }
+#Momentum flux, u-component
+'3124' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 124 ;
+ }
#Momentum flux, v-component
'3125' = {
table2Version = 3 ;
indicatorOfParameter = 125 ;
}
+#Momentum flux, v-component
+'3125' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 125 ;
+ }
+#Momentum flux, v-component
+'3125' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 125 ;
+ }
#Wind mixing energy
'3126' = {
table2Version = 3 ;
indicatorOfParameter = 126 ;
}
+#Wind mixing energy
+'3126' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 126 ;
+ }
+#Wind mixing energy
+'3126' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 126 ;
+ }
#Image data
'3127' = {
table2Version = 3 ;
indicatorOfParameter = 127 ;
}
+#Image data
+'3127' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 127 ;
+ }
+#Image data
+'3127' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 127 ;
+ }
#Percentage of vegetation
'160199' = {
table2Version = 3 ;
indicatorOfParameter = 87 ;
}
+#Percentage of vegetation
+'160199' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 87 ;
+ }
+#Percentage of vegetation
+'160199' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 87 ;
+ }
#Orography
'228002' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Orography
+'228002' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Orography
+'228002' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Soil moisture
'228039' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture
+'228039' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture
+'228039' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Soil temperature
'228139' = {
table2Version = 3 ;
indicatorOfParameter = 85 ;
}
+#Soil temperature
+'228139' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 85 ;
+ }
+#Soil temperature
+'228139' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 85 ;
+ }
#Snowfall water equivalent
'228144' = {
table2Version = 3 ;
indicatorOfParameter = 65 ;
}
+#Snowfall water equivalent
+'228144' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 65 ;
+ }
+#Snowfall water equivalent
+'228144' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 65 ;
+ }
#Total Cloud Cover
'228164' = {
table2Version = 3 ;
indicatorOfParameter = 71 ;
}
+#Total Cloud Cover
+'228164' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 71 ;
+ }
+#Total Cloud Cover
+'228164' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 71 ;
+ }
#Total Precipitation
'228228' = {
table2Version = 3 ;
@@ -695,680 +2013,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'1' = {
- table2Version = 2 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'2' = {
- table2Version = 2 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'3' = {
- table2Version = 2 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'10' = {
- table2Version = 2 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'54' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'60' = {
- table2Version = 2 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'121' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'122' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'129' = {
- table2Version = 2 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'130' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'131' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'132' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'133' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'134' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'135' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'138' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'151' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'155' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'156' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'157' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'165' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'166' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'167' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'168' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'172' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'173' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'182' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'194' = {
- table2Version = 2 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'205' = {
- table2Version = 2 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'206' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'3062' = {
- table2Version = 2 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'3066' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'3072' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'3073' = {
- table2Version = 2 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'3074' = {
- table2Version = 2 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'3075' = {
- table2Version = 2 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'3079' = {
- table2Version = 2 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'3121' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'3122' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'3123' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'260011' = {
- table2Version = 2 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'260102' = {
- table2Version = 2 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'260509' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'3003' = {
- table2Version = 2 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'3005' = {
- table2Version = 2 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'3008' = {
- table2Version = 2 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'3009' = {
- table2Version = 2 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'3014' = {
- table2Version = 2 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'3015' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'3016' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'3017' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'3018' = {
- table2Version = 2 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'3019' = {
- table2Version = 2 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'3020' = {
- table2Version = 2 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'3021' = {
- table2Version = 2 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'3022' = {
- table2Version = 2 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'3023' = {
- table2Version = 2 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'3024' = {
- table2Version = 2 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'3025' = {
- table2Version = 2 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'3026' = {
- table2Version = 2 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'3027' = {
- table2Version = 2 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'3028' = {
- table2Version = 2 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'3029' = {
- table2Version = 2 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'3030' = {
- table2Version = 2 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'3031' = {
- table2Version = 2 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'3037' = {
- table2Version = 2 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'3038' = {
- table2Version = 2 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'3041' = {
- table2Version = 2 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'3042' = {
- table2Version = 2 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'3045' = {
- table2Version = 2 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'3046' = {
- table2Version = 2 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'3047' = {
- table2Version = 2 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'3048' = {
- table2Version = 2 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'3049' = {
- table2Version = 2 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'3050' = {
- table2Version = 2 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'3053' = {
- table2Version = 2 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'3054' = {
- table2Version = 2 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'3055' = {
- table2Version = 2 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'3056' = {
- table2Version = 2 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'3059' = {
- table2Version = 2 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'3060' = {
- table2Version = 2 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'3063' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'3064' = {
- table2Version = 2 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'3067' = {
- table2Version = 2 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'3068' = {
- table2Version = 2 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'3069' = {
- table2Version = 2 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'3070' = {
- table2Version = 2 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'3077' = {
- table2Version = 2 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'3080' = {
- table2Version = 2 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'3082' = {
- table2Version = 2 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'3086' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'3088' = {
- table2Version = 2 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'3089' = {
- table2Version = 2 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'3091' = {
- table2Version = 2 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'3092' = {
- table2Version = 2 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'3093' = {
- table2Version = 2 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'3094' = {
- table2Version = 2 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'3095' = {
- table2Version = 2 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'3096' = {
- table2Version = 2 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'3097' = {
- table2Version = 2 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'3098' = {
- table2Version = 2 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'3099' = {
- table2Version = 2 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'3100' = {
- table2Version = 2 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'3101' = {
- table2Version = 2 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'3102' = {
- table2Version = 2 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'3103' = {
- table2Version = 2 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'3104' = {
- table2Version = 2 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'3105' = {
- table2Version = 2 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'3106' = {
- table2Version = 2 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'3107' = {
- table2Version = 2 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'3108' = {
- table2Version = 2 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'3109' = {
- table2Version = 2 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'3110' = {
- table2Version = 2 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'3111' = {
- table2Version = 2 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'3112' = {
- table2Version = 2 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'3113' = {
- table2Version = 2 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'3114' = {
- table2Version = 2 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'3115' = {
- table2Version = 2 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'3116' = {
- table2Version = 2 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'3117' = {
- table2Version = 2 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'3119' = {
- table2Version = 2 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'3120' = {
- table2Version = 2 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'3124' = {
- table2Version = 2 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'3125' = {
- table2Version = 2 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'3126' = {
- table2Version = 2 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'3127' = {
- table2Version = 2 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'160199' = {
- table2Version = 2 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'228002' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'228039' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'228139' = {
- table2Version = 2 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'228144' = {
- table2Version = 2 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'228164' = {
- table2Version = 2 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'228228' = {
table2Version = 2 ;
@@ -1376,680 +2020,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'1' = {
- table2Version = 1 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'2' = {
- table2Version = 1 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'3' = {
- table2Version = 1 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'10' = {
- table2Version = 1 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'54' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'60' = {
- table2Version = 1 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'121' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'122' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'129' = {
- table2Version = 1 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'130' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'131' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'132' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'133' = {
- table2Version = 1 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'134' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'135' = {
- table2Version = 1 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'138' = {
- table2Version = 1 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'151' = {
- table2Version = 1 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'155' = {
- table2Version = 1 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'156' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'157' = {
- table2Version = 1 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'165' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'166' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'167' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'168' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'172' = {
- table2Version = 1 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'173' = {
- table2Version = 1 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'182' = {
- table2Version = 1 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'194' = {
- table2Version = 1 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'205' = {
- table2Version = 1 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'206' = {
- table2Version = 1 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'3062' = {
- table2Version = 1 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'3066' = {
- table2Version = 1 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'3072' = {
- table2Version = 1 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'3073' = {
- table2Version = 1 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'3074' = {
- table2Version = 1 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'3075' = {
- table2Version = 1 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'3079' = {
- table2Version = 1 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'3121' = {
- table2Version = 1 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'3122' = {
- table2Version = 1 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'3123' = {
- table2Version = 1 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'260011' = {
- table2Version = 1 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'260102' = {
- table2Version = 1 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'260509' = {
- table2Version = 1 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'3003' = {
- table2Version = 1 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'3005' = {
- table2Version = 1 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'3008' = {
- table2Version = 1 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'3009' = {
- table2Version = 1 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'3014' = {
- table2Version = 1 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'3015' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'3016' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'3017' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'3018' = {
- table2Version = 1 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'3019' = {
- table2Version = 1 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'3020' = {
- table2Version = 1 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'3021' = {
- table2Version = 1 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'3022' = {
- table2Version = 1 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'3023' = {
- table2Version = 1 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'3024' = {
- table2Version = 1 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'3025' = {
- table2Version = 1 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'3026' = {
- table2Version = 1 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'3027' = {
- table2Version = 1 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'3028' = {
- table2Version = 1 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'3029' = {
- table2Version = 1 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'3030' = {
- table2Version = 1 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'3031' = {
- table2Version = 1 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'3037' = {
- table2Version = 1 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'3038' = {
- table2Version = 1 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'3041' = {
- table2Version = 1 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'3042' = {
- table2Version = 1 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'3045' = {
- table2Version = 1 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'3046' = {
- table2Version = 1 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'3047' = {
- table2Version = 1 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'3048' = {
- table2Version = 1 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'3049' = {
- table2Version = 1 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'3050' = {
- table2Version = 1 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'3053' = {
- table2Version = 1 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'3054' = {
- table2Version = 1 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'3055' = {
- table2Version = 1 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'3056' = {
- table2Version = 1 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'3059' = {
- table2Version = 1 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'3060' = {
- table2Version = 1 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'3063' = {
- table2Version = 1 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'3064' = {
- table2Version = 1 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'3067' = {
- table2Version = 1 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'3068' = {
- table2Version = 1 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'3069' = {
- table2Version = 1 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'3070' = {
- table2Version = 1 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'3077' = {
- table2Version = 1 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'3080' = {
- table2Version = 1 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'3082' = {
- table2Version = 1 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'3086' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'3088' = {
- table2Version = 1 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'3089' = {
- table2Version = 1 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'3091' = {
- table2Version = 1 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'3092' = {
- table2Version = 1 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'3093' = {
- table2Version = 1 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'3094' = {
- table2Version = 1 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'3095' = {
- table2Version = 1 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'3096' = {
- table2Version = 1 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'3097' = {
- table2Version = 1 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'3098' = {
- table2Version = 1 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'3099' = {
- table2Version = 1 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'3100' = {
- table2Version = 1 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'3101' = {
- table2Version = 1 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'3102' = {
- table2Version = 1 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'3103' = {
- table2Version = 1 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'3104' = {
- table2Version = 1 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'3105' = {
- table2Version = 1 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'3106' = {
- table2Version = 1 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'3107' = {
- table2Version = 1 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'3108' = {
- table2Version = 1 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'3109' = {
- table2Version = 1 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'3110' = {
- table2Version = 1 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'3111' = {
- table2Version = 1 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'3112' = {
- table2Version = 1 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'3113' = {
- table2Version = 1 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'3114' = {
- table2Version = 1 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'3115' = {
- table2Version = 1 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'3116' = {
- table2Version = 1 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'3117' = {
- table2Version = 1 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'3119' = {
- table2Version = 1 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'3120' = {
- table2Version = 1 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'3124' = {
- table2Version = 1 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'3125' = {
- table2Version = 1 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'3126' = {
- table2Version = 1 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'3127' = {
- table2Version = 1 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'160199' = {
- table2Version = 1 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'228002' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'228039' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'228139' = {
- table2Version = 1 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'228144' = {
- table2Version = 1 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'228164' = {
- table2Version = 1 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'228228' = {
table2Version = 1 ;
diff --git a/definitions/grib1/paramIdForConversion.def b/definitions/grib1/paramIdForConversion.def
new file mode 100644
index 000000000..8cd3ea212
--- /dev/null
+++ b/definitions/grib1/paramIdForConversion.def
@@ -0,0 +1,3 @@
+# Concept paramIdForConversion
+# See ECC-1806
+0 = {dummy=0;}
diff --git a/definitions/grib1/scanning_mode.def b/definitions/grib1/scanning_mode.def
index 477e63562..31a56e27d 100644
--- a/definitions/grib1/scanning_mode.def
+++ b/definitions/grib1/scanning_mode.def
@@ -1,4 +1,4 @@
-constant isGridded = one;
+constant isGridded = true;
# Scanning mode
flags[1] scanningMode 'grib1/8.table' : edition_specific,no_copy;
diff --git a/definitions/grib1/section.1.def b/definitions/grib1/section.1.def
index 3d89bd277..d62300f27 100644
--- a/definitions/grib1/section.1.def
+++ b/definitions/grib1/section.1.def
@@ -1,6 +1,5 @@
constant ECMWF = 98 : hidden;
-constant ECMWF_s = "ecmf" : hidden;
-constant WMO= 0;
+constant WMO = 0;
constant conceptsMasterDir="grib1" : hidden;
constant conceptsLocalDirECMF="grib1/localConcepts/ecmf" : hidden;
constant conceptsLocalDirAll="grib1/localConcepts/[centre:s]" : hidden;
@@ -181,6 +180,8 @@ meta dataTime time(hour,minute,second) : dump;
meta julianDay julian_day(dataDate,hour,minute,second) : edition_specific;
codetable[1] stepUnits 'stepUnits.table' = 1 : transient,dump,no_copy;
+# The lowercase version is to unify it with the helper key in the MARS language
+alias stepunits = stepUnits;
concept_nofail stepType (timeRangeIndicator, "stepType.def", conceptsDir2, conceptsDir1);
@@ -267,7 +268,6 @@ if(((section1Length > 40) or new() or setLocalDefinition> 0) and deleteLocalDefi
}
template_nofail marsKeywords "mars/grib.[stream:s].[type:s].def";
-
}
else
{
@@ -313,15 +313,18 @@ alias time.stepType=stepType;
# ECC-457: GRIB1 to GRIB2 conversion
concept_nofail stepTypeForConversion (unknown, "stepTypeForConversion.def", conceptsDir2, conceptsDir1);
-if (stepTypeForConversion is "accum" ) {
- if (productDefinitionTemplateNumber == 1) {
- alias productDefinitionTemplateNumber=eleven;
- }
- else {
- alias productDefinitionTemplateNumber=eight;
- }
+if (stepTypeForConversion is "accum" || stepTypeForConversion is "max" || stepTypeForConversion is "min" || stepTypeForConversion is "avg") {
+ if (productDefinitionTemplateNumber == 1) {
+ alias productDefinitionTemplateNumber=eleven;
+ }
+ else {
+ alias productDefinitionTemplateNumber=eight;
+ }
}
meta md5Section1 md5(offsetSection1,section1Length);
# md5(start,length,blacklisted1,blacklisted2,...);
meta md5Product md5(offsetSection1,section1Length,gridDefinition,section1Flags,decimalScaleFactor);
+
+# ECC-1806
+concept_nofail paramIdForConversion(zero, "paramIdForConversion.def", conceptsDir2, conceptsDir1) : long_type,read_only;
diff --git a/definitions/grib1/section.2.def b/definitions/grib1/section.2.def
index 0bef0e818..d01dcc490 100644
--- a/definitions/grib1/section.2.def
+++ b/definitions/grib1/section.2.def
@@ -25,7 +25,7 @@ codetable[1] dataRepresentationType 'grib1/6.table' = 0;
meta gridDefinitionDescription codetable_title(dataRepresentationType);
# Grid definition (according to data representation type - octet 6 above)
-alias isRotatedGrid=zero;
+alias isRotatedGrid = false;
if (dataRepresentationType < 192) {
template dataRepresentation "grib1/grid_definition_[dataRepresentationType:l].def";
diff --git a/definitions/grib1/shortName.def b/definitions/grib1/shortName.def
index 07bb584dd..e2153ff94 100644
--- a/definitions/grib1/shortName.def
+++ b/definitions/grib1/shortName.def
@@ -4,31 +4,91 @@
table2Version = 3 ;
indicatorOfParameter = 35 ;
}
+#Stream function
+'strf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 35 ;
+ }
+#Stream function
+'strf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 35 ;
+ }
#Velocity potential
'vp' = {
table2Version = 3 ;
indicatorOfParameter = 36 ;
}
+#Velocity potential
+'vp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 36 ;
+ }
+#Velocity potential
+'vp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 36 ;
+ }
#Potential temperature
'pt' = {
table2Version = 3 ;
indicatorOfParameter = 13 ;
}
+#Potential temperature
+'pt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 13 ;
+ }
+#Potential temperature
+'pt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 13 ;
+ }
#Wind speed
'ws' = {
table2Version = 3 ;
indicatorOfParameter = 32 ;
}
+#Wind speed
+'ws' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 32 ;
+ }
+#Wind speed
+'ws' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 32 ;
+ }
#Pressure
'pres' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
}
+#Pressure
+'pres' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ }
+#Pressure
+'pres' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ }
#Potential vorticity
'pv' = {
table2Version = 3 ;
indicatorOfParameter = 4 ;
}
+#Potential vorticity
+'pv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 4 ;
+ }
+#Potential vorticity
+'pv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 4 ;
+ }
#Maximum temperature at 2 metres in the last 6 hours
'mx2t6' = {
table2Version = 3 ;
@@ -36,6 +96,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Minimum temperature at 2 metres in the last 6 hours
'mn2t6' = {
table2Version = 3 ;
@@ -43,67 +117,203 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Geopotential
'z' = {
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
+#Geopotential
+'z' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 6 ;
+ }
+#Geopotential
+'z' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 6 ;
+ }
#Temperature
't' = {
table2Version = 3 ;
indicatorOfParameter = 11 ;
}
+#Temperature
+'t' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'t' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ }
#U component of wind
'u' = {
table2Version = 3 ;
indicatorOfParameter = 33 ;
}
+#U component of wind
+'u' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'u' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ }
#V component of wind
'v' = {
table2Version = 3 ;
indicatorOfParameter = 34 ;
}
+#V component of wind
+'v' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'v' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ }
#Specific humidity
'q' = {
table2Version = 3 ;
indicatorOfParameter = 51 ;
}
+#Specific humidity
+'q' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'q' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 51 ;
+ }
#Surface pressure
'sp' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Surface pressure
+'sp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'sp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Vertical velocity
'w' = {
table2Version = 3 ;
indicatorOfParameter = 39 ;
}
+#Vertical velocity
+'w' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'w' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 39 ;
+ }
#Vorticity (relative)
'vo' = {
table2Version = 3 ;
indicatorOfParameter = 43 ;
}
+#Vorticity (relative)
+'vo' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'vo' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 43 ;
+ }
#Mean sea level pressure
'msl' = {
table2Version = 3 ;
indicatorOfParameter = 2 ;
}
+#Mean sea level pressure
+'msl' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'msl' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 2 ;
+ }
#Divergence
'd' = {
table2Version = 3 ;
indicatorOfParameter = 44 ;
}
+#Divergence
+'d' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'d' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 44 ;
+ }
#Geopotential height
'gh' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
}
+#Geopotential height
+'gh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'gh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ }
#Relative humidity
'r' = {
table2Version = 3 ;
indicatorOfParameter = 52 ;
}
+#Relative humidity
+'r' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'r' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 52 ;
+ }
#10 metre U wind component
'10u' = {
table2Version = 3 ;
@@ -111,6 +321,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre U wind component
+'10u' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre U wind component
+'10u' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#10 metre V wind component
'10v' = {
table2Version = 3 ;
@@ -118,6 +342,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre V wind component
+'10v' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre V wind component
+'10v' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#2 metre temperature
'2t' = {
table2Version = 3 ;
@@ -125,6 +363,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre temperature
+'2t' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre temperature
+'2t' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#2 metre dewpoint temperature
'2d' = {
table2Version = 3 ;
@@ -132,104 +384,308 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre dewpoint temperature
+'2d' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre dewpoint temperature
+'2d' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Land-sea mask
'lsm' = {
table2Version = 3 ;
indicatorOfParameter = 81 ;
}
+#Land-sea mask
+'lsm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'lsm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 81 ;
+ }
#Surface roughness (climatological)
'sr' = {
table2Version = 3 ;
indicatorOfParameter = 83 ;
}
+#Surface roughness (climatological)
+'sr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'sr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 83 ;
+ }
#Evaporation
'e' = {
table2Version = 3 ;
indicatorOfParameter = 57 ;
}
+#Evaporation
+'e' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'e' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 57 ;
+ }
#Brightness temperature
'btmp' = {
table2Version = 3 ;
indicatorOfParameter = 118 ;
}
+#Brightness temperature
+'btmp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 118 ;
+ }
+#Brightness temperature
+'btmp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 118 ;
+ }
#Runoff
'ro' = {
table2Version = 3 ;
indicatorOfParameter = 90 ;
}
+#Runoff
+'ro' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 90 ;
+ }
+#Runoff
+'ro' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 90 ;
+ }
#Total column ozone
'tco3' = {
table2Version = 3 ;
indicatorOfParameter = 10 ;
}
+#Total column ozone
+'tco3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'tco3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 10 ;
+ }
#Large-scale precipitation
'lsp' = {
table2Version = 3 ;
indicatorOfParameter = 62 ;
}
+#Large-scale precipitation
+'lsp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 62 ;
+ }
+#Large-scale precipitation
+'lsp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 62 ;
+ }
#Snow depth
'sde' = {
table2Version = 3 ;
indicatorOfParameter = 66 ;
}
+#Snow depth
+'sde' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'sde' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 66 ;
+ }
#Convective cloud cover
'ccc' = {
table2Version = 3 ;
indicatorOfParameter = 72 ;
}
+#Convective cloud cover
+'ccc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'ccc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 72 ;
+ }
#Low cloud cover
'lcc' = {
table2Version = 3 ;
indicatorOfParameter = 73 ;
}
+#Low cloud cover
+'lcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 73 ;
+ }
+#Low cloud cover
+'lcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 73 ;
+ }
#Medium cloud cover
'mcc' = {
table2Version = 3 ;
indicatorOfParameter = 74 ;
}
+#Medium cloud cover
+'mcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 74 ;
+ }
+#Medium cloud cover
+'mcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 74 ;
+ }
#High cloud cover
'hcc' = {
table2Version = 3 ;
indicatorOfParameter = 75 ;
}
+#High cloud cover
+'hcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 75 ;
+ }
+#High cloud cover
+'hcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 75 ;
+ }
#Large scale snow
'lssf' = {
table2Version = 3 ;
indicatorOfParameter = 79 ;
}
+#Large scale snow
+'lssf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 79 ;
+ }
+#Large scale snow
+'lssf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 79 ;
+ }
#Latent heat flux
'lhf' = {
table2Version = 3 ;
indicatorOfParameter = 121 ;
}
+#Latent heat flux
+'lhf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'lhf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 121 ;
+ }
#Sensible heat flux
'shf' = {
table2Version = 3 ;
indicatorOfParameter = 122 ;
}
+#Sensible heat flux
+'shf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'shf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 122 ;
+ }
#Boundary layer dissipation
'bld' = {
table2Version = 3 ;
indicatorOfParameter = 123 ;
}
+#Boundary layer dissipation
+'bld' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'bld' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 123 ;
+ }
#Convective snow
'snoc' = {
table2Version = 3 ;
indicatorOfParameter = 78 ;
}
+#Convective snow
+'snoc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 78 ;
+ }
+#Convective snow
+'snoc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 78 ;
+ }
#Cloud water
'cwat' = {
table2Version = 3 ;
indicatorOfParameter = 76 ;
}
+#Cloud water
+'cwat' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 76 ;
+ }
+#Cloud water
+'cwat' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 76 ;
+ }
#Forecast albedo
'al' = {
table2Version = 3 ;
indicatorOfParameter = 84 ;
}
+#Forecast albedo
+'al' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'al' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 84 ;
+ }
#Virtual temperature
'vtmp' = {
- table2Version = 1 ;
+ table2Version = 3 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
@@ -239,7 +695,7 @@
}
#Virtual temperature
'vtmp' = {
- table2Version = 3 ;
+ table2Version = 1 ;
indicatorOfParameter = 12 ;
}
#Pressure tendency
@@ -247,447 +703,1309 @@
table2Version = 3 ;
indicatorOfParameter = 3 ;
}
+#Pressure tendency
+'ptend' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 3 ;
+ }
+#Pressure tendency
+'ptend' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 3 ;
+ }
#ICAO Standard Atmosphere reference height
'icaht' = {
table2Version = 3 ;
indicatorOfParameter = 5 ;
}
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 5 ;
+ }
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 5 ;
+ }
#Geometrical height
'h' = {
table2Version = 3 ;
indicatorOfParameter = 8 ;
}
+#Geometrical height
+'h' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 8 ;
+ }
+#Geometrical height
+'h' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 8 ;
+ }
#Standard deviation of height
'hstdv' = {
table2Version = 3 ;
indicatorOfParameter = 9 ;
}
+#Standard deviation of height
+'hstdv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 9 ;
+ }
+#Standard deviation of height
+'hstdv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 9 ;
+ }
#Pseudo-adiabatic potential temperature
'papt' = {
table2Version = 3 ;
indicatorOfParameter = 14 ;
}
+#Pseudo-adiabatic potential temperature
+'papt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 14 ;
+ }
+#Pseudo-adiabatic potential temperature
+'papt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 14 ;
+ }
#Maximum temperature
'tmax' = {
table2Version = 3 ;
indicatorOfParameter = 15 ;
}
+#Maximum temperature
+'tmax' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ }
+#Maximum temperature
+'tmax' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ }
#Minimum temperature
'tmin' = {
table2Version = 3 ;
indicatorOfParameter = 16 ;
}
+#Minimum temperature
+'tmin' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ }
+#Minimum temperature
+'tmin' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ }
#Dew point temperature
'dpt' = {
table2Version = 3 ;
indicatorOfParameter = 17 ;
}
+#Dew point temperature
+'dpt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ }
+#Dew point temperature
+'dpt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ }
#Dew point depression (or deficit)
'depr' = {
table2Version = 3 ;
indicatorOfParameter = 18 ;
}
+#Dew point depression (or deficit)
+'depr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 18 ;
+ }
+#Dew point depression (or deficit)
+'depr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 18 ;
+ }
#Lapse rate
'lapr' = {
table2Version = 3 ;
indicatorOfParameter = 19 ;
}
+#Lapse rate
+'lapr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 19 ;
+ }
+#Lapse rate
+'lapr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 19 ;
+ }
#Visibility
'vis' = {
table2Version = 3 ;
indicatorOfParameter = 20 ;
}
+#Visibility
+'vis' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 20 ;
+ }
+#Visibility
+'vis' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 20 ;
+ }
#Radar spectra (1)
'rdsp1' = {
table2Version = 3 ;
indicatorOfParameter = 21 ;
}
+#Radar spectra (1)
+'rdsp1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 21 ;
+ }
+#Radar spectra (1)
+'rdsp1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 21 ;
+ }
#Radar spectra (2)
'rdsp2' = {
table2Version = 3 ;
indicatorOfParameter = 22 ;
}
+#Radar spectra (2)
+'rdsp2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 22 ;
+ }
+#Radar spectra (2)
+'rdsp2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 22 ;
+ }
#Radar spectra (3)
'rdsp3' = {
table2Version = 3 ;
indicatorOfParameter = 23 ;
}
+#Radar spectra (3)
+'rdsp3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 23 ;
+ }
+#Radar spectra (3)
+'rdsp3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 23 ;
+ }
#Parcel lifted index (to 500 hPa)
'pli' = {
table2Version = 3 ;
indicatorOfParameter = 24 ;
}
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 24 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 24 ;
+ }
#Temperature anomaly
'ta' = {
table2Version = 3 ;
indicatorOfParameter = 25 ;
}
+#Temperature anomaly
+'ta' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 25 ;
+ }
+#Temperature anomaly
+'ta' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 25 ;
+ }
#Pressure anomaly
'presa' = {
table2Version = 3 ;
indicatorOfParameter = 26 ;
}
+#Pressure anomaly
+'presa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 26 ;
+ }
+#Pressure anomaly
+'presa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 26 ;
+ }
#Geopotential height anomaly
'gpa' = {
table2Version = 3 ;
indicatorOfParameter = 27 ;
}
+#Geopotential height anomaly
+'gpa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 27 ;
+ }
+#Geopotential height anomaly
+'gpa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 27 ;
+ }
#Wave spectra (1)
'wvsp1' = {
table2Version = 3 ;
indicatorOfParameter = 28 ;
}
+#Wave spectra (1)
+'wvsp1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 28 ;
+ }
+#Wave spectra (1)
+'wvsp1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 28 ;
+ }
#Wave spectra (2)
'wvsp2' = {
table2Version = 3 ;
indicatorOfParameter = 29 ;
}
+#Wave spectra (2)
+'wvsp2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 29 ;
+ }
+#Wave spectra (2)
+'wvsp2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 29 ;
+ }
#Wave spectra (3)
'wvsp3' = {
table2Version = 3 ;
indicatorOfParameter = 30 ;
}
+#Wave spectra (3)
+'wvsp3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 30 ;
+ }
+#Wave spectra (3)
+'wvsp3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 30 ;
+ }
#Wind direction
'wdir' = {
table2Version = 3 ;
indicatorOfParameter = 31 ;
}
+#Wind direction
+'wdir' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 31 ;
+ }
+#Wind direction
+'wdir' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 31 ;
+ }
#Montgomery stream Function
'mntsf' = {
table2Version = 3 ;
indicatorOfParameter = 37 ;
}
+#Montgomery stream Function
+'mntsf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 37 ;
+ }
+#Montgomery stream Function
+'mntsf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 37 ;
+ }
#Sigma coordinate vertical velocity
'sgcvv' = {
table2Version = 3 ;
indicatorOfParameter = 38 ;
}
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 38 ;
+ }
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 38 ;
+ }
#Absolute vorticity
'absv' = {
table2Version = 3 ;
indicatorOfParameter = 41 ;
}
+#Absolute vorticity
+'absv' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 41 ;
+ }
+#Absolute vorticity
+'absv' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 41 ;
+ }
#Absolute divergence
'absd' = {
table2Version = 3 ;
indicatorOfParameter = 42 ;
}
+#Absolute divergence
+'absd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 42 ;
+ }
+#Absolute divergence
+'absd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 42 ;
+ }
#Vertical u-component shear
'vucsh' = {
table2Version = 3 ;
indicatorOfParameter = 45 ;
}
+#Vertical u-component shear
+'vucsh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 45 ;
+ }
+#Vertical u-component shear
+'vucsh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 45 ;
+ }
#Vertical v-component shear
'vvcsh' = {
table2Version = 3 ;
indicatorOfParameter = 46 ;
}
+#Vertical v-component shear
+'vvcsh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 46 ;
+ }
+#Vertical v-component shear
+'vvcsh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 46 ;
+ }
#Direction of current
'dirc' = {
table2Version = 3 ;
indicatorOfParameter = 47 ;
}
+#Direction of current
+'dirc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 47 ;
+ }
+#Direction of current
+'dirc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 47 ;
+ }
#Speed of current
'spc' = {
table2Version = 3 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
-'ucurr' = {
- table2Version = 3 ;
- indicatorOfParameter = 49 ;
+#Speed of current
+'spc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 48 ;
}
-#V-component of current
-'vcurr' = {
- table2Version = 3 ;
- indicatorOfParameter = 50 ;
+#Speed of current
+'spc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 48 ;
}
#Humidity mixing ratio
'mixr' = {
table2Version = 3 ;
indicatorOfParameter = 53 ;
}
+#Humidity mixing ratio
+'mixr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 53 ;
+ }
+#Humidity mixing ratio
+'mixr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 53 ;
+ }
#Precipitable water
'pwat' = {
table2Version = 3 ;
indicatorOfParameter = 54 ;
}
+#Precipitable water
+'pwat' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 54 ;
+ }
+#Precipitable water
+'pwat' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 54 ;
+ }
#Vapour pressure
'vp' = {
table2Version = 3 ;
indicatorOfParameter = 55 ;
}
+#Vapour pressure
+'vp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 55 ;
+ }
+#Vapour pressure
+'vp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 55 ;
+ }
#Saturation deficit
'satd' = {
table2Version = 3 ;
indicatorOfParameter = 56 ;
}
+#Saturation deficit
+'satd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 56 ;
+ }
+#Saturation deficit
+'satd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 56 ;
+ }
#Precipitation rate
'prate' = {
table2Version = 3 ;
indicatorOfParameter = 59 ;
}
+#Precipitation rate
+'prate' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 59 ;
+ }
+#Precipitation rate
+'prate' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 59 ;
+ }
#Thunderstorm probability
'tstm' = {
table2Version = 3 ;
indicatorOfParameter = 60 ;
}
+#Thunderstorm probability
+'tstm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 60 ;
+ }
+#Thunderstorm probability
+'tstm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 60 ;
+ }
#Convective precipitation (water)
'acpcp' = {
table2Version = 3 ;
indicatorOfParameter = 63 ;
}
+#Convective precipitation (water)
+'acpcp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'acpcp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 63 ;
+ }
#Snow fall rate water equivalent
'srweq' = {
table2Version = 3 ;
indicatorOfParameter = 64 ;
}
+#Snow fall rate water equivalent
+'srweq' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 64 ;
+ }
+#Snow fall rate water equivalent
+'srweq' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 64 ;
+ }
#Mixed layer depth
'mld' = {
table2Version = 3 ;
indicatorOfParameter = 67 ;
}
+#Mixed layer depth
+'mld' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 67 ;
+ }
+#Mixed layer depth
+'mld' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 67 ;
+ }
#Transient thermocline depth
'tthdp' = {
table2Version = 3 ;
indicatorOfParameter = 68 ;
}
+#Transient thermocline depth
+'tthdp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 68 ;
+ }
+#Transient thermocline depth
+'tthdp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 68 ;
+ }
#Main thermocline depth
'mthd' = {
table2Version = 3 ;
indicatorOfParameter = 69 ;
}
+#Main thermocline depth
+'mthd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 69 ;
+ }
+#Main thermocline depth
+'mthd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 69 ;
+ }
#Main thermocline anomaly
'mtha' = {
table2Version = 3 ;
indicatorOfParameter = 70 ;
}
+#Main thermocline anomaly
+'mtha' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 70 ;
+ }
+#Main thermocline anomaly
+'mtha' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 70 ;
+ }
#Best lifted index (to 500 hPa)
'bli' = {
table2Version = 3 ;
indicatorOfParameter = 77 ;
}
+#Best lifted index (to 500 hPa)
+'bli' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 77 ;
+ }
+#Best lifted index (to 500 hPa)
+'bli' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 77 ;
+ }
#Water temperature
'wtmp' = {
table2Version = 3 ;
indicatorOfParameter = 80 ;
}
+#Water temperature
+'wtmp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 80 ;
+ }
+#Water temperature
+'wtmp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 80 ;
+ }
#Deviation of sea-level from mean
'dslm' = {
table2Version = 3 ;
indicatorOfParameter = 82 ;
}
+#Deviation of sea-level from mean
+'dslm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 82 ;
+ }
+#Deviation of sea-level from mean
+'dslm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 82 ;
+ }
#Soil moisture content
'ssw' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture content
+'ssw' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture content
+'ssw' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Salinity
's' = {
table2Version = 3 ;
indicatorOfParameter = 88 ;
}
+#Salinity
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 88 ;
+ }
+#Salinity
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 88 ;
+ }
#Density
'den' = {
table2Version = 3 ;
indicatorOfParameter = 89 ;
}
+#Density
+'den' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 89 ;
+ }
+#Density
+'den' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 89 ;
+ }
#Ice cover (1=ice, 0=no ice)
'icec' = {
table2Version = 3 ;
indicatorOfParameter = 91 ;
}
+#Ice cover (1=ice, 0=no ice)
+'icec' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 91 ;
+ }
+#Ice cover (1=ice, 0=no ice)
+'icec' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 91 ;
+ }
#Ice thickness
'icetk' = {
table2Version = 3 ;
indicatorOfParameter = 92 ;
}
+#Ice thickness
+'icetk' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 92 ;
+ }
+#Ice thickness
+'icetk' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 92 ;
+ }
#Direction of ice drift
'diced' = {
table2Version = 3 ;
indicatorOfParameter = 93 ;
}
+#Direction of ice drift
+'diced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 93 ;
+ }
+#Direction of ice drift
+'diced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 93 ;
+ }
#Speed of ice drift
'siced' = {
table2Version = 3 ;
indicatorOfParameter = 94 ;
}
+#Speed of ice drift
+'siced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 94 ;
+ }
+#Speed of ice drift
+'siced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 94 ;
+ }
#U-component of ice drift
'uice' = {
table2Version = 3 ;
indicatorOfParameter = 95 ;
}
+#U-component of ice drift
+'uice' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 95 ;
+ }
+#U-component of ice drift
+'uice' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 95 ;
+ }
#V-component of ice drift
'vice' = {
table2Version = 3 ;
indicatorOfParameter = 96 ;
}
+#V-component of ice drift
+'vice' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 96 ;
+ }
+#V-component of ice drift
+'vice' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 96 ;
+ }
#Ice growth rate
'iceg' = {
table2Version = 3 ;
indicatorOfParameter = 97 ;
}
+#Ice growth rate
+'iceg' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 97 ;
+ }
+#Ice growth rate
+'iceg' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 97 ;
+ }
#Ice divergence
'iced' = {
table2Version = 3 ;
indicatorOfParameter = 98 ;
}
+#Ice divergence
+'iced' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 98 ;
+ }
+#Ice divergence
+'iced' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 98 ;
+ }
#Snowmelt
'snom' = {
table2Version = 3 ;
indicatorOfParameter = 99 ;
}
+#Snowmelt
+'snom' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 99 ;
+ }
+#Snowmelt
+'snom' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 99 ;
+ }
#Signific.height,combined wind waves+swell
'swh' = {
table2Version = 3 ;
indicatorOfParameter = 100 ;
}
+#Signific.height,combined wind waves+swell
+'swh' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 100 ;
+ }
+#Signific.height,combined wind waves+swell
+'swh' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 100 ;
+ }
#Mean direction of wind waves
'mdww' = {
table2Version = 3 ;
indicatorOfParameter = 101 ;
}
+#Mean direction of wind waves
+'mdww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 101 ;
+ }
+#Mean direction of wind waves
+'mdww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 101 ;
+ }
#Significant height of wind waves
'shww' = {
table2Version = 3 ;
indicatorOfParameter = 102 ;
}
+#Significant height of wind waves
+'shww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 102 ;
+ }
+#Significant height of wind waves
+'shww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 102 ;
+ }
#Mean period of wind waves
'mpww' = {
table2Version = 3 ;
indicatorOfParameter = 103 ;
}
+#Mean period of wind waves
+'mpww' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 103 ;
+ }
+#Mean period of wind waves
+'mpww' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 103 ;
+ }
#Direction of swell waves
'swdir' = {
table2Version = 3 ;
indicatorOfParameter = 104 ;
}
+#Direction of swell waves
+'swdir' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 104 ;
+ }
+#Direction of swell waves
+'swdir' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 104 ;
+ }
#Significant height of swell waves
'swell' = {
table2Version = 3 ;
indicatorOfParameter = 105 ;
}
+#Significant height of swell waves
+'swell' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 105 ;
+ }
+#Significant height of swell waves
+'swell' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 105 ;
+ }
#Mean period of swell waves
'swper' = {
table2Version = 3 ;
indicatorOfParameter = 106 ;
}
+#Mean period of swell waves
+'swper' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 106 ;
+ }
+#Mean period of swell waves
+'swper' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 106 ;
+ }
#Primary wave direction
'mdps' = {
table2Version = 3 ;
indicatorOfParameter = 107 ;
}
+#Primary wave direction
+'mdps' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 107 ;
+ }
+#Primary wave direction
+'mdps' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 107 ;
+ }
#Primary wave mean period
'mpps' = {
table2Version = 3 ;
indicatorOfParameter = 108 ;
}
+#Primary wave mean period
+'mpps' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 108 ;
+ }
+#Primary wave mean period
+'mpps' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 108 ;
+ }
#Secondary wave direction
'dirsw' = {
table2Version = 3 ;
indicatorOfParameter = 109 ;
}
+#Secondary wave direction
+'dirsw' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 109 ;
+ }
+#Secondary wave direction
+'dirsw' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 109 ;
+ }
#Secondary wave mean period
'swp' = {
table2Version = 3 ;
indicatorOfParameter = 110 ;
}
+#Secondary wave mean period
+'swp' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 110 ;
+ }
+#Secondary wave mean period
+'swp' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 110 ;
+ }
#Net short-wave radiation flux (surface)
'nswrs' = {
table2Version = 3 ;
indicatorOfParameter = 111 ;
}
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 111 ;
+ }
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 111 ;
+ }
#Net long-wave radiation flux (surface)
'nlwrs' = {
table2Version = 3 ;
indicatorOfParameter = 112 ;
}
+#Net long-wave radiation flux (surface)
+'nlwrs' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 112 ;
+ }
+#Net long-wave radiation flux (surface)
+'nlwrs' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 112 ;
+ }
#Net short-wave radiation flux(atmosph.top)
'nswrt' = {
table2Version = 3 ;
indicatorOfParameter = 113 ;
}
+#Net short-wave radiation flux(atmosph.top)
+'nswrt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 113 ;
+ }
+#Net short-wave radiation flux(atmosph.top)
+'nswrt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 113 ;
+ }
#Net long-wave radiation flux(atmosph.top)
'nlwrt' = {
table2Version = 3 ;
indicatorOfParameter = 114 ;
}
+#Net long-wave radiation flux(atmosph.top)
+'nlwrt' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 114 ;
+ }
+#Net long-wave radiation flux(atmosph.top)
+'nlwrt' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 114 ;
+ }
#Long wave radiation flux
'lwavr' = {
table2Version = 3 ;
indicatorOfParameter = 115 ;
}
+#Long wave radiation flux
+'lwavr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 115 ;
+ }
+#Long wave radiation flux
+'lwavr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 115 ;
+ }
#Short wave radiation flux
'swavr' = {
table2Version = 3 ;
indicatorOfParameter = 116 ;
}
+#Short wave radiation flux
+'swavr' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 116 ;
+ }
+#Short wave radiation flux
+'swavr' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 116 ;
+ }
#Global radiation flux
'grad' = {
table2Version = 3 ;
indicatorOfParameter = 117 ;
}
+#Global radiation flux
+'grad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 117 ;
+ }
+#Global radiation flux
+'grad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 117 ;
+ }
#Radiance (with respect to wave number)
'lwrad' = {
table2Version = 3 ;
indicatorOfParameter = 119 ;
}
+#Radiance (with respect to wave number)
+'lwrad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 119 ;
+ }
+#Radiance (with respect to wave number)
+'lwrad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 119 ;
+ }
#Radiance (with respect to wave length)
'swrad' = {
table2Version = 3 ;
indicatorOfParameter = 120 ;
}
+#Radiance (with respect to wave length)
+'swrad' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 120 ;
+ }
+#Radiance (with respect to wave length)
+'swrad' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 120 ;
+ }
#Momentum flux, u-component
'uflx' = {
table2Version = 3 ;
indicatorOfParameter = 124 ;
}
+#Momentum flux, u-component
+'uflx' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 124 ;
+ }
+#Momentum flux, u-component
+'uflx' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 124 ;
+ }
#Momentum flux, v-component
'vflx' = {
table2Version = 3 ;
indicatorOfParameter = 125 ;
}
+#Momentum flux, v-component
+'vflx' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 125 ;
+ }
+#Momentum flux, v-component
+'vflx' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 125 ;
+ }
#Wind mixing energy
'wmixe' = {
table2Version = 3 ;
indicatorOfParameter = 126 ;
}
+#Wind mixing energy
+'wmixe' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 126 ;
+ }
+#Wind mixing energy
+'wmixe' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 126 ;
+ }
#Image data
'imgd' = {
table2Version = 3 ;
indicatorOfParameter = 127 ;
}
+#Image data
+'imgd' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 127 ;
+ }
+#Image data
+'imgd' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 127 ;
+ }
#Percentage of vegetation
'vegrea' = {
table2Version = 3 ;
indicatorOfParameter = 87 ;
}
+#Percentage of vegetation
+'vegrea' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 87 ;
+ }
+#Percentage of vegetation
+'vegrea' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 87 ;
+ }
#Orography
'orog' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Orography
+'orog' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Orography
+'orog' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Soil moisture
'sm' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture
+'sm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture
+'sm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Soil temperature
'st' = {
table2Version = 3 ;
indicatorOfParameter = 85 ;
}
+#Soil temperature
+'st' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 85 ;
+ }
+#Soil temperature
+'st' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 85 ;
+ }
#Snowfall water equivalent
'sf' = {
table2Version = 3 ;
indicatorOfParameter = 65 ;
}
+#Snowfall water equivalent
+'sf' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 65 ;
+ }
+#Snowfall water equivalent
+'sf' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 65 ;
+ }
#Total Cloud Cover
'tcc' = {
table2Version = 3 ;
indicatorOfParameter = 71 ;
}
+#Total Cloud Cover
+'tcc' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 71 ;
+ }
+#Total Cloud Cover
+'tcc' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 71 ;
+ }
#Total Precipitation
'tp' = {
table2Version = 3 ;
@@ -695,680 +2013,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'strf' = {
- table2Version = 2 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'vp' = {
- table2Version = 2 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'pt' = {
- table2Version = 2 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'ws' = {
- table2Version = 2 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'pres' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'pv' = {
- table2Version = 2 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'z' = {
- table2Version = 2 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'t' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'u' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'v' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'q' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'sp' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'w' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'vo' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'msl' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'d' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gh' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'r' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'10u' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'10v' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'2t' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'2d' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'lsm' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'sr' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'e' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'btmp' = {
- table2Version = 2 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'ro' = {
- table2Version = 2 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'tco3' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'lsp' = {
- table2Version = 2 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'sde' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'ccc' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'lcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'mcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'hcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'lssf' = {
- table2Version = 2 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'lhf' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'shf' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'bld' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'snoc' = {
- table2Version = 2 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'cwat' = {
- table2Version = 2 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'al' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'ptend' = {
- table2Version = 2 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'icaht' = {
- table2Version = 2 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'h' = {
- table2Version = 2 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'hstdv' = {
- table2Version = 2 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'papt' = {
- table2Version = 2 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'tmax' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'tmin' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'dpt' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'depr' = {
- table2Version = 2 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'lapr' = {
- table2Version = 2 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'vis' = {
- table2Version = 2 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'rdsp1' = {
- table2Version = 2 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'rdsp2' = {
- table2Version = 2 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'rdsp3' = {
- table2Version = 2 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'pli' = {
- table2Version = 2 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'ta' = {
- table2Version = 2 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'presa' = {
- table2Version = 2 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'gpa' = {
- table2Version = 2 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'wvsp1' = {
- table2Version = 2 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'wvsp2' = {
- table2Version = 2 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'wvsp3' = {
- table2Version = 2 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'wdir' = {
- table2Version = 2 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'mntsf' = {
- table2Version = 2 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'sgcvv' = {
- table2Version = 2 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'absv' = {
- table2Version = 2 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'absd' = {
- table2Version = 2 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'vucsh' = {
- table2Version = 2 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'vvcsh' = {
- table2Version = 2 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'dirc' = {
- table2Version = 2 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'spc' = {
- table2Version = 2 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'ucurr' = {
- table2Version = 2 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'vcurr' = {
- table2Version = 2 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'mixr' = {
- table2Version = 2 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'pwat' = {
- table2Version = 2 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'vp' = {
- table2Version = 2 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'satd' = {
- table2Version = 2 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'prate' = {
- table2Version = 2 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'tstm' = {
- table2Version = 2 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'acpcp' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'srweq' = {
- table2Version = 2 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'mld' = {
- table2Version = 2 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'tthdp' = {
- table2Version = 2 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'mthd' = {
- table2Version = 2 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'mtha' = {
- table2Version = 2 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'bli' = {
- table2Version = 2 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'wtmp' = {
- table2Version = 2 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'dslm' = {
- table2Version = 2 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'ssw' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'s' = {
- table2Version = 2 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'den' = {
- table2Version = 2 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'icec' = {
- table2Version = 2 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'icetk' = {
- table2Version = 2 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'diced' = {
- table2Version = 2 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'siced' = {
- table2Version = 2 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'uice' = {
- table2Version = 2 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'vice' = {
- table2Version = 2 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'iceg' = {
- table2Version = 2 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'iced' = {
- table2Version = 2 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'snom' = {
- table2Version = 2 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'swh' = {
- table2Version = 2 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'mdww' = {
- table2Version = 2 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'shww' = {
- table2Version = 2 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'mpww' = {
- table2Version = 2 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'swdir' = {
- table2Version = 2 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'swell' = {
- table2Version = 2 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'swper' = {
- table2Version = 2 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'mdps' = {
- table2Version = 2 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'mpps' = {
- table2Version = 2 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'dirsw' = {
- table2Version = 2 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'swp' = {
- table2Version = 2 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'nswrs' = {
- table2Version = 2 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'nlwrs' = {
- table2Version = 2 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'nswrt' = {
- table2Version = 2 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'nlwrt' = {
- table2Version = 2 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'lwavr' = {
- table2Version = 2 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'swavr' = {
- table2Version = 2 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'grad' = {
- table2Version = 2 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'lwrad' = {
- table2Version = 2 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'swrad' = {
- table2Version = 2 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'uflx' = {
- table2Version = 2 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'vflx' = {
- table2Version = 2 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'wmixe' = {
- table2Version = 2 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'imgd' = {
- table2Version = 2 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'vegrea' = {
- table2Version = 2 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'orog' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'sm' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'st' = {
- table2Version = 2 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'sf' = {
- table2Version = 2 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'tcc' = {
- table2Version = 2 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'tp' = {
table2Version = 2 ;
@@ -1376,680 +2020,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'strf' = {
- table2Version = 1 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'vp' = {
- table2Version = 1 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'pt' = {
- table2Version = 1 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'ws' = {
- table2Version = 1 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'pres' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'pv' = {
- table2Version = 1 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'z' = {
- table2Version = 1 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'t' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'u' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'v' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'q' = {
- table2Version = 1 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'sp' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'w' = {
- table2Version = 1 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'vo' = {
- table2Version = 1 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'msl' = {
- table2Version = 1 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'d' = {
- table2Version = 1 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gh' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'r' = {
- table2Version = 1 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'10u' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'10v' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'2t' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'2d' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'lsm' = {
- table2Version = 1 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'sr' = {
- table2Version = 1 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'e' = {
- table2Version = 1 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'btmp' = {
- table2Version = 1 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'ro' = {
- table2Version = 1 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'tco3' = {
- table2Version = 1 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'lsp' = {
- table2Version = 1 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'sde' = {
- table2Version = 1 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'ccc' = {
- table2Version = 1 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'lcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'mcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'hcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'lssf' = {
- table2Version = 1 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'lhf' = {
- table2Version = 1 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'shf' = {
- table2Version = 1 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'bld' = {
- table2Version = 1 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'snoc' = {
- table2Version = 1 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'cwat' = {
- table2Version = 1 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'al' = {
- table2Version = 1 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'ptend' = {
- table2Version = 1 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'icaht' = {
- table2Version = 1 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'h' = {
- table2Version = 1 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'hstdv' = {
- table2Version = 1 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'papt' = {
- table2Version = 1 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'tmax' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'tmin' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'dpt' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'depr' = {
- table2Version = 1 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'lapr' = {
- table2Version = 1 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'vis' = {
- table2Version = 1 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'rdsp1' = {
- table2Version = 1 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'rdsp2' = {
- table2Version = 1 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'rdsp3' = {
- table2Version = 1 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'pli' = {
- table2Version = 1 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'ta' = {
- table2Version = 1 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'presa' = {
- table2Version = 1 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'gpa' = {
- table2Version = 1 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'wvsp1' = {
- table2Version = 1 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'wvsp2' = {
- table2Version = 1 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'wvsp3' = {
- table2Version = 1 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'wdir' = {
- table2Version = 1 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'mntsf' = {
- table2Version = 1 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'sgcvv' = {
- table2Version = 1 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'absv' = {
- table2Version = 1 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'absd' = {
- table2Version = 1 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'vucsh' = {
- table2Version = 1 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'vvcsh' = {
- table2Version = 1 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'dirc' = {
- table2Version = 1 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'spc' = {
- table2Version = 1 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'ucurr' = {
- table2Version = 1 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'vcurr' = {
- table2Version = 1 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'mixr' = {
- table2Version = 1 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'pwat' = {
- table2Version = 1 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'vp' = {
- table2Version = 1 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'satd' = {
- table2Version = 1 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'prate' = {
- table2Version = 1 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'tstm' = {
- table2Version = 1 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'acpcp' = {
- table2Version = 1 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'srweq' = {
- table2Version = 1 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'mld' = {
- table2Version = 1 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'tthdp' = {
- table2Version = 1 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'mthd' = {
- table2Version = 1 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'mtha' = {
- table2Version = 1 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'bli' = {
- table2Version = 1 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'wtmp' = {
- table2Version = 1 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'dslm' = {
- table2Version = 1 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'ssw' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'s' = {
- table2Version = 1 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'den' = {
- table2Version = 1 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'icec' = {
- table2Version = 1 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'icetk' = {
- table2Version = 1 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'diced' = {
- table2Version = 1 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'siced' = {
- table2Version = 1 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'uice' = {
- table2Version = 1 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'vice' = {
- table2Version = 1 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'iceg' = {
- table2Version = 1 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'iced' = {
- table2Version = 1 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'snom' = {
- table2Version = 1 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'swh' = {
- table2Version = 1 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'mdww' = {
- table2Version = 1 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'shww' = {
- table2Version = 1 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'mpww' = {
- table2Version = 1 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'swdir' = {
- table2Version = 1 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'swell' = {
- table2Version = 1 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'swper' = {
- table2Version = 1 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'mdps' = {
- table2Version = 1 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'mpps' = {
- table2Version = 1 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'dirsw' = {
- table2Version = 1 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'swp' = {
- table2Version = 1 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'nswrs' = {
- table2Version = 1 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'nlwrs' = {
- table2Version = 1 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'nswrt' = {
- table2Version = 1 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'nlwrt' = {
- table2Version = 1 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'lwavr' = {
- table2Version = 1 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'swavr' = {
- table2Version = 1 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'grad' = {
- table2Version = 1 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'lwrad' = {
- table2Version = 1 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'swrad' = {
- table2Version = 1 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'uflx' = {
- table2Version = 1 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'vflx' = {
- table2Version = 1 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'wmixe' = {
- table2Version = 1 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'imgd' = {
- table2Version = 1 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'vegrea' = {
- table2Version = 1 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'orog' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'sm' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'st' = {
- table2Version = 1 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'sf' = {
- table2Version = 1 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'tcc' = {
- table2Version = 1 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'tp' = {
table2Version = 1 ;
diff --git a/definitions/grib1/typeOfLevel.def b/definitions/grib1/typeOfLevel.def
index bbfb9a4ed..ccf74d5be 100644
--- a/definitions/grib1/typeOfLevel.def
+++ b/definitions/grib1/typeOfLevel.def
@@ -1,36 +1,36 @@
# ECMWF concept type of level
-'surface' = {indicatorOfTypeOfLevel=1;}
-'cloudBase' = {indicatorOfTypeOfLevel=2;}
-'cloudTop' = {indicatorOfTypeOfLevel=3;}
-'isothermZero' = {indicatorOfTypeOfLevel=4;}
-'adiabaticCondensation' = {indicatorOfTypeOfLevel=5;}
-'maxWind' = {indicatorOfTypeOfLevel=6;}
-'tropopause' = {indicatorOfTypeOfLevel=7;}
-'nominalTop' = {indicatorOfTypeOfLevel=8;}
-'seaBottom' = {indicatorOfTypeOfLevel=9;}
-'isobaricInhPa' = {indicatorOfTypeOfLevel=100;}
-'isobaricInPa' = {indicatorOfTypeOfLevel=210;}
-'isobaricLayer' = {indicatorOfTypeOfLevel=101;}
-'meanSea' = {indicatorOfTypeOfLevel=102;}
-'isobaricLayerHighPrecision' = {indicatorOfTypeOfLevel=121;}
+'surface' = {indicatorOfTypeOfLevel=1;}
+'cloudBase' = {indicatorOfTypeOfLevel=2;}
+'cloudTop' = {indicatorOfTypeOfLevel=3;}
+'isothermZero' = {indicatorOfTypeOfLevel=4;}
+'adiabaticCondensation' = {indicatorOfTypeOfLevel=5;}
+'maxWind' = {indicatorOfTypeOfLevel=6;}
+'tropopause' = {indicatorOfTypeOfLevel=7;}
+'nominalTop' = {indicatorOfTypeOfLevel=8;}
+'seaBottom' = {indicatorOfTypeOfLevel=9;}
+'isobaricInhPa' = {indicatorOfTypeOfLevel=100;}
+'isobaricInPa' = {indicatorOfTypeOfLevel=210;}
+'isobaricLayer' = {indicatorOfTypeOfLevel=101;}
+'meanSea' = {indicatorOfTypeOfLevel=102;}
+'isobaricLayerHighPrecision' = {indicatorOfTypeOfLevel=121;}
'isobaricLayerMixedPrecision' = {indicatorOfTypeOfLevel=141;}
-'heightAboveSea' = {indicatorOfTypeOfLevel=103;}
-'heightAboveSeaLayer' = {indicatorOfTypeOfLevel=104;}
+'heightAboveSea' = {indicatorOfTypeOfLevel=103;}
+'heightAboveSeaLayer' = {indicatorOfTypeOfLevel=104;}
'heightAboveGroundHighPrecision' = {indicatorOfTypeOfLevel=125;}
-'heightAboveGround' = {indicatorOfTypeOfLevel=105;}
-'heightAboveGroundLayer' = {indicatorOfTypeOfLevel=106;}
-'sigma' = {indicatorOfTypeOfLevel=107;}
-'sigmaLayer' = {indicatorOfTypeOfLevel=108;}
+'heightAboveGround' = {indicatorOfTypeOfLevel=105;}
+'heightAboveGroundLayer' = {indicatorOfTypeOfLevel=106;}
+'sigma' = {indicatorOfTypeOfLevel=107;}
+'sigmaLayer' = {indicatorOfTypeOfLevel=108;}
'sigmaLayerHighPrecision' = {indicatorOfTypeOfLevel=128;}
-'hybrid' = {indicatorOfTypeOfLevel=109;}
-'hybridLayer' = {indicatorOfTypeOfLevel=110;}
-'depthBelowLand' = {indicatorOfTypeOfLevel=111;}
-'depthBelowLandLayer' = {indicatorOfTypeOfLevel=112;}
-'theta' = {indicatorOfTypeOfLevel=113;}
-'thetaLayer' = {indicatorOfTypeOfLevel=114;}
-'pressureFromGround' = {indicatorOfTypeOfLevel=115;}
+'hybrid' = {indicatorOfTypeOfLevel=109;}
+'hybridLayer' = {indicatorOfTypeOfLevel=110;}
+'depthBelowLand' = {indicatorOfTypeOfLevel=111;}
+'depthBelowLandLayer' = {indicatorOfTypeOfLevel=112;}
+'theta' = {indicatorOfTypeOfLevel=113;}
+'thetaLayer' = {indicatorOfTypeOfLevel=114;}
+'pressureFromGround' = {indicatorOfTypeOfLevel=115;}
'pressureFromGroundLayer' = {indicatorOfTypeOfLevel=116;}
-'potentialVorticity' = {indicatorOfTypeOfLevel=117;}
-'depthBelowSea' = {indicatorOfTypeOfLevel=160;}
-'entireAtmosphere' = {indicatorOfTypeOfLevel=200;}
-'entireOcean' = {indicatorOfTypeOfLevel=201;}
+'potentialVorticity' = {indicatorOfTypeOfLevel=117;}
+'depthBelowSea' = {indicatorOfTypeOfLevel=160;}
+'entireAtmosphere' = {indicatorOfTypeOfLevel=200;}
+'entireOcean' = {indicatorOfTypeOfLevel=201;}
diff --git a/definitions/grib1/units.def b/definitions/grib1/units.def
index 5c54afcd0..4ad5faeaa 100644
--- a/definitions/grib1/units.def
+++ b/definitions/grib1/units.def
@@ -4,31 +4,91 @@
table2Version = 3 ;
indicatorOfParameter = 35 ;
}
+#Stream function
+'m**2 s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 35 ;
+ }
+#Stream function
+'m**2 s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 35 ;
+ }
#Velocity potential
'm**2 s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 36 ;
}
+#Velocity potential
+'m**2 s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 36 ;
+ }
+#Velocity potential
+'m**2 s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 36 ;
+ }
#Potential temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 13 ;
}
+#Potential temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 13 ;
+ }
+#Potential temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 13 ;
+ }
#Wind speed
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 32 ;
}
+#Wind speed
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 32 ;
+ }
+#Wind speed
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 32 ;
+ }
#Pressure
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
}
+#Pressure
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ }
+#Pressure
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ }
#Potential vorticity
'K m**2 kg**-1 s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 4 ;
}
+#Potential vorticity
+'K m**2 kg**-1 s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 4 ;
+ }
+#Potential vorticity
+'K m**2 kg**-1 s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 4 ;
+ }
#Maximum temperature at 2 metres in the last 6 hours
'K' = {
table2Version = 3 ;
@@ -36,6 +96,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Maximum temperature at 2 metres in the last 6 hours
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Minimum temperature at 2 metres in the last 6 hours
'K' = {
table2Version = 3 ;
@@ -43,67 +117,203 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#Minimum temperature at 2 metres in the last 6 hours
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Geopotential
'm**2 s**-2' = {
table2Version = 3 ;
indicatorOfParameter = 6 ;
}
+#Geopotential
+'m**2 s**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 6 ;
+ }
+#Geopotential
+'m**2 s**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 6 ;
+ }
#Temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 11 ;
}
+#Temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ }
+#Temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ }
#U component of wind
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 33 ;
}
+#U component of wind
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ }
+#U component of wind
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ }
#V component of wind
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 34 ;
}
+#V component of wind
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ }
+#V component of wind
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ }
#Specific humidity
'kg kg**-1' = {
table2Version = 3 ;
indicatorOfParameter = 51 ;
}
+#Specific humidity
+'kg kg**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 51 ;
+ }
+#Specific humidity
+'kg kg**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 51 ;
+ }
#Surface pressure
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 1 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Surface pressure
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Surface pressure
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 1 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Vertical velocity
'Pa s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 39 ;
}
+#Vertical velocity
+'Pa s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 39 ;
+ }
+#Vertical velocity
+'Pa s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 39 ;
+ }
#Vorticity (relative)
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 43 ;
}
+#Vorticity (relative)
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 43 ;
+ }
+#Vorticity (relative)
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 43 ;
+ }
#Mean sea level pressure
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 2 ;
}
+#Mean sea level pressure
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 2 ;
+ }
+#Mean sea level pressure
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 2 ;
+ }
#Divergence
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 44 ;
}
+#Divergence
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 44 ;
+ }
+#Divergence
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 44 ;
+ }
#Geopotential height
'gpm' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
}
+#Geopotential height
+'gpm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ }
+#Geopotential height
+'gpm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ }
#Relative humidity
'%' = {
table2Version = 3 ;
indicatorOfParameter = 52 ;
}
+#Relative humidity
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 52 ;
+ }
+#Relative humidity
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 52 ;
+ }
#10 metre U wind component
'm s**-1' = {
table2Version = 3 ;
@@ -111,6 +321,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre U wind component
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre U wind component
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 33 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#10 metre V wind component
'm s**-1' = {
table2Version = 3 ;
@@ -118,6 +342,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 10 ;
}
+#10 metre V wind component
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
+#10 metre V wind component
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 34 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 10 ;
+ }
#2 metre temperature
'K' = {
table2Version = 3 ;
@@ -125,6 +363,20 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 11 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#2 metre dewpoint temperature
'K' = {
table2Version = 3 ;
@@ -132,104 +384,308 @@
indicatorOfTypeOfLevel = 105 ;
level = 2 ;
}
+#2 metre dewpoint temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
+#2 metre dewpoint temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ indicatorOfTypeOfLevel = 105 ;
+ level = 2 ;
+ }
#Land-sea mask
'(0 - 1)' = {
table2Version = 3 ;
indicatorOfParameter = 81 ;
}
+#Land-sea mask
+'(0 - 1)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 81 ;
+ }
+#Land-sea mask
+'(0 - 1)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 81 ;
+ }
#Surface roughness (climatological)
'm' = {
table2Version = 3 ;
indicatorOfParameter = 83 ;
}
+#Surface roughness (climatological)
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 83 ;
+ }
+#Surface roughness (climatological)
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 83 ;
+ }
#Evaporation
'm of water equivalent' = {
table2Version = 3 ;
indicatorOfParameter = 57 ;
}
+#Evaporation
+'m of water equivalent' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 57 ;
+ }
+#Evaporation
+'m of water equivalent' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 57 ;
+ }
#Brightness temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 118 ;
}
+#Brightness temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 118 ;
+ }
+#Brightness temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 118 ;
+ }
#Runoff
'm' = {
table2Version = 3 ;
indicatorOfParameter = 90 ;
}
+#Runoff
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 90 ;
+ }
+#Runoff
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 90 ;
+ }
#Total column ozone
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 10 ;
}
+#Total column ozone
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 10 ;
+ }
+#Total column ozone
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 10 ;
+ }
#Large-scale precipitation
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 62 ;
}
+#Large-scale precipitation
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 62 ;
+ }
+#Large-scale precipitation
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 62 ;
+ }
#Snow depth
'm' = {
table2Version = 3 ;
indicatorOfParameter = 66 ;
}
+#Snow depth
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 66 ;
+ }
+#Snow depth
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 66 ;
+ }
#Convective cloud cover
'%' = {
table2Version = 3 ;
indicatorOfParameter = 72 ;
}
+#Convective cloud cover
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 72 ;
+ }
+#Convective cloud cover
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 72 ;
+ }
#Low cloud cover
'%' = {
table2Version = 3 ;
indicatorOfParameter = 73 ;
}
+#Low cloud cover
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 73 ;
+ }
+#Low cloud cover
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 73 ;
+ }
#Medium cloud cover
'%' = {
table2Version = 3 ;
indicatorOfParameter = 74 ;
}
+#Medium cloud cover
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 74 ;
+ }
+#Medium cloud cover
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 74 ;
+ }
#High cloud cover
'%' = {
table2Version = 3 ;
indicatorOfParameter = 75 ;
}
+#High cloud cover
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 75 ;
+ }
+#High cloud cover
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 75 ;
+ }
#Large scale snow
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 79 ;
}
+#Large scale snow
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 79 ;
+ }
+#Large scale snow
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 79 ;
+ }
#Latent heat flux
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 121 ;
}
+#Latent heat flux
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 121 ;
+ }
+#Latent heat flux
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 121 ;
+ }
#Sensible heat flux
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 122 ;
}
+#Sensible heat flux
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 122 ;
+ }
+#Sensible heat flux
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 122 ;
+ }
#Boundary layer dissipation
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 123 ;
}
+#Boundary layer dissipation
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 123 ;
+ }
+#Boundary layer dissipation
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 123 ;
+ }
#Convective snow
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 78 ;
}
+#Convective snow
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 78 ;
+ }
+#Convective snow
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 78 ;
+ }
#Cloud water
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 76 ;
}
+#Cloud water
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 76 ;
+ }
+#Cloud water
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 76 ;
+ }
#Forecast albedo
'%' = {
table2Version = 3 ;
indicatorOfParameter = 84 ;
}
+#Forecast albedo
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 84 ;
+ }
+#Forecast albedo
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 84 ;
+ }
#Virtual temperature
'K' = {
- table2Version = 1 ;
+ table2Version = 3 ;
indicatorOfParameter = 12 ;
}
#Virtual temperature
@@ -239,7 +695,7 @@
}
#Virtual temperature
'K' = {
- table2Version = 3 ;
+ table2Version = 1 ;
indicatorOfParameter = 12 ;
}
#Pressure tendency
@@ -247,447 +703,1309 @@
table2Version = 3 ;
indicatorOfParameter = 3 ;
}
+#Pressure tendency
+'Pa s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 3 ;
+ }
+#Pressure tendency
+'Pa s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 3 ;
+ }
#ICAO Standard Atmosphere reference height
'm' = {
table2Version = 3 ;
indicatorOfParameter = 5 ;
}
+#ICAO Standard Atmosphere reference height
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 5 ;
+ }
+#ICAO Standard Atmosphere reference height
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 5 ;
+ }
#Geometrical height
'm' = {
table2Version = 3 ;
indicatorOfParameter = 8 ;
}
+#Geometrical height
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 8 ;
+ }
+#Geometrical height
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 8 ;
+ }
#Standard deviation of height
'm' = {
table2Version = 3 ;
indicatorOfParameter = 9 ;
}
+#Standard deviation of height
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 9 ;
+ }
+#Standard deviation of height
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 9 ;
+ }
#Pseudo-adiabatic potential temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 14 ;
}
+#Pseudo-adiabatic potential temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 14 ;
+ }
+#Pseudo-adiabatic potential temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 14 ;
+ }
#Maximum temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 15 ;
}
+#Maximum temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 15 ;
+ }
+#Maximum temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 15 ;
+ }
#Minimum temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 16 ;
}
+#Minimum temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 16 ;
+ }
+#Minimum temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 16 ;
+ }
#Dew point temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 17 ;
}
+#Dew point temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 17 ;
+ }
+#Dew point temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 17 ;
+ }
#Dew point depression (or deficit)
'K' = {
table2Version = 3 ;
indicatorOfParameter = 18 ;
}
+#Dew point depression (or deficit)
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 18 ;
+ }
+#Dew point depression (or deficit)
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 18 ;
+ }
#Lapse rate
'K m**-1' = {
table2Version = 3 ;
indicatorOfParameter = 19 ;
}
+#Lapse rate
+'K m**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 19 ;
+ }
+#Lapse rate
+'K m**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 19 ;
+ }
#Visibility
'm' = {
table2Version = 3 ;
indicatorOfParameter = 20 ;
}
+#Visibility
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 20 ;
+ }
+#Visibility
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 20 ;
+ }
#Radar spectra (1)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 21 ;
}
+#Radar spectra (1)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 21 ;
+ }
+#Radar spectra (1)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 21 ;
+ }
#Radar spectra (2)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 22 ;
}
+#Radar spectra (2)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 22 ;
+ }
+#Radar spectra (2)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 22 ;
+ }
#Radar spectra (3)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 23 ;
}
+#Radar spectra (3)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 23 ;
+ }
+#Radar spectra (3)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 23 ;
+ }
#Parcel lifted index (to 500 hPa)
'K' = {
table2Version = 3 ;
indicatorOfParameter = 24 ;
}
+#Parcel lifted index (to 500 hPa)
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 24 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 24 ;
+ }
#Temperature anomaly
'K' = {
table2Version = 3 ;
indicatorOfParameter = 25 ;
}
+#Temperature anomaly
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 25 ;
+ }
+#Temperature anomaly
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 25 ;
+ }
#Pressure anomaly
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 26 ;
}
+#Pressure anomaly
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 26 ;
+ }
+#Pressure anomaly
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 26 ;
+ }
#Geopotential height anomaly
'gpm' = {
table2Version = 3 ;
indicatorOfParameter = 27 ;
}
+#Geopotential height anomaly
+'gpm' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 27 ;
+ }
+#Geopotential height anomaly
+'gpm' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 27 ;
+ }
#Wave spectra (1)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 28 ;
}
+#Wave spectra (1)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 28 ;
+ }
+#Wave spectra (1)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 28 ;
+ }
#Wave spectra (2)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 29 ;
}
+#Wave spectra (2)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 29 ;
+ }
+#Wave spectra (2)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 29 ;
+ }
#Wave spectra (3)
'~' = {
table2Version = 3 ;
indicatorOfParameter = 30 ;
}
+#Wave spectra (3)
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 30 ;
+ }
+#Wave spectra (3)
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 30 ;
+ }
#Wind direction
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 31 ;
}
+#Wind direction
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 31 ;
+ }
+#Wind direction
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 31 ;
+ }
#Montgomery stream Function
'm**2 s**-2' = {
table2Version = 3 ;
indicatorOfParameter = 37 ;
}
+#Montgomery stream Function
+'m**2 s**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 37 ;
+ }
+#Montgomery stream Function
+'m**2 s**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 37 ;
+ }
#Sigma coordinate vertical velocity
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 38 ;
}
+#Sigma coordinate vertical velocity
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 38 ;
+ }
+#Sigma coordinate vertical velocity
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 38 ;
+ }
#Absolute vorticity
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 41 ;
}
+#Absolute vorticity
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 41 ;
+ }
+#Absolute vorticity
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 41 ;
+ }
#Absolute divergence
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 42 ;
}
+#Absolute divergence
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 42 ;
+ }
+#Absolute divergence
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 42 ;
+ }
#Vertical u-component shear
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 45 ;
}
+#Vertical u-component shear
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 45 ;
+ }
+#Vertical u-component shear
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 45 ;
+ }
#Vertical v-component shear
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 46 ;
}
+#Vertical v-component shear
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 46 ;
+ }
+#Vertical v-component shear
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 46 ;
+ }
#Direction of current
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 47 ;
}
+#Direction of current
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 47 ;
+ }
+#Direction of current
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 47 ;
+ }
#Speed of current
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 48 ;
}
-#U-component of current
+#Speed of current
'm s**-1' = {
- table2Version = 3 ;
- indicatorOfParameter = 49 ;
+ table2Version = 2 ;
+ indicatorOfParameter = 48 ;
}
-#V-component of current
+#Speed of current
'm s**-1' = {
- table2Version = 3 ;
- indicatorOfParameter = 50 ;
+ table2Version = 1 ;
+ indicatorOfParameter = 48 ;
}
#Humidity mixing ratio
'kg kg**-1' = {
table2Version = 3 ;
indicatorOfParameter = 53 ;
}
+#Humidity mixing ratio
+'kg kg**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 53 ;
+ }
+#Humidity mixing ratio
+'kg kg**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 53 ;
+ }
#Precipitable water
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 54 ;
}
+#Precipitable water
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 54 ;
+ }
+#Precipitable water
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 54 ;
+ }
#Vapour pressure
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 55 ;
}
+#Vapour pressure
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 55 ;
+ }
+#Vapour pressure
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 55 ;
+ }
#Saturation deficit
'Pa' = {
table2Version = 3 ;
indicatorOfParameter = 56 ;
}
+#Saturation deficit
+'Pa' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 56 ;
+ }
+#Saturation deficit
+'Pa' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 56 ;
+ }
#Precipitation rate
'kg m**-2 s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 59 ;
}
+#Precipitation rate
+'kg m**-2 s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 59 ;
+ }
+#Precipitation rate
+'kg m**-2 s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 59 ;
+ }
#Thunderstorm probability
'%' = {
table2Version = 3 ;
indicatorOfParameter = 60 ;
}
+#Thunderstorm probability
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 60 ;
+ }
+#Thunderstorm probability
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 60 ;
+ }
#Convective precipitation (water)
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 63 ;
}
+#Convective precipitation (water)
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 63 ;
+ }
+#Convective precipitation (water)
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 63 ;
+ }
#Snow fall rate water equivalent
'kg m**-2 s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 64 ;
}
+#Snow fall rate water equivalent
+'kg m**-2 s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 64 ;
+ }
+#Snow fall rate water equivalent
+'kg m**-2 s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 64 ;
+ }
#Mixed layer depth
'm' = {
table2Version = 3 ;
indicatorOfParameter = 67 ;
}
+#Mixed layer depth
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 67 ;
+ }
+#Mixed layer depth
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 67 ;
+ }
#Transient thermocline depth
'm' = {
table2Version = 3 ;
indicatorOfParameter = 68 ;
}
+#Transient thermocline depth
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 68 ;
+ }
+#Transient thermocline depth
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 68 ;
+ }
#Main thermocline depth
'm' = {
table2Version = 3 ;
indicatorOfParameter = 69 ;
}
+#Main thermocline depth
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 69 ;
+ }
+#Main thermocline depth
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 69 ;
+ }
#Main thermocline anomaly
'm' = {
table2Version = 3 ;
indicatorOfParameter = 70 ;
}
+#Main thermocline anomaly
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 70 ;
+ }
+#Main thermocline anomaly
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 70 ;
+ }
#Best lifted index (to 500 hPa)
'K' = {
table2Version = 3 ;
indicatorOfParameter = 77 ;
}
+#Best lifted index (to 500 hPa)
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 77 ;
+ }
+#Best lifted index (to 500 hPa)
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 77 ;
+ }
#Water temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 80 ;
}
+#Water temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 80 ;
+ }
+#Water temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 80 ;
+ }
#Deviation of sea-level from mean
'm' = {
table2Version = 3 ;
indicatorOfParameter = 82 ;
}
+#Deviation of sea-level from mean
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 82 ;
+ }
+#Deviation of sea-level from mean
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 82 ;
+ }
#Soil moisture content
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture content
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture content
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Salinity
'kg kg**-1' = {
table2Version = 3 ;
indicatorOfParameter = 88 ;
}
+#Salinity
+'kg kg**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 88 ;
+ }
+#Salinity
+'kg kg**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 88 ;
+ }
#Density
'kg m**-3' = {
table2Version = 3 ;
indicatorOfParameter = 89 ;
}
+#Density
+'kg m**-3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 89 ;
+ }
+#Density
+'kg m**-3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 89 ;
+ }
#Ice cover (1=ice, 0=no ice)
'(0 - 1)' = {
table2Version = 3 ;
indicatorOfParameter = 91 ;
}
+#Ice cover (1=ice, 0=no ice)
+'(0 - 1)' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 91 ;
+ }
+#Ice cover (1=ice, 0=no ice)
+'(0 - 1)' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 91 ;
+ }
#Ice thickness
'm' = {
table2Version = 3 ;
indicatorOfParameter = 92 ;
}
+#Ice thickness
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 92 ;
+ }
+#Ice thickness
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 92 ;
+ }
#Direction of ice drift
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 93 ;
}
+#Direction of ice drift
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 93 ;
+ }
+#Direction of ice drift
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 93 ;
+ }
#Speed of ice drift
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 94 ;
}
+#Speed of ice drift
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 94 ;
+ }
+#Speed of ice drift
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 94 ;
+ }
#U-component of ice drift
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 95 ;
}
+#U-component of ice drift
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 95 ;
+ }
+#U-component of ice drift
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 95 ;
+ }
#V-component of ice drift
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 96 ;
}
+#V-component of ice drift
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 96 ;
+ }
+#V-component of ice drift
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 96 ;
+ }
#Ice growth rate
'm s**-1' = {
table2Version = 3 ;
indicatorOfParameter = 97 ;
}
+#Ice growth rate
+'m s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 97 ;
+ }
+#Ice growth rate
+'m s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 97 ;
+ }
#Ice divergence
's**-1' = {
table2Version = 3 ;
indicatorOfParameter = 98 ;
}
+#Ice divergence
+'s**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 98 ;
+ }
+#Ice divergence
+'s**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 98 ;
+ }
#Snowmelt
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 99 ;
}
+#Snowmelt
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 99 ;
+ }
+#Snowmelt
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 99 ;
+ }
#Signific.height,combined wind waves+swell
'm' = {
table2Version = 3 ;
indicatorOfParameter = 100 ;
}
+#Signific.height,combined wind waves+swell
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 100 ;
+ }
+#Signific.height,combined wind waves+swell
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 100 ;
+ }
#Mean direction of wind waves
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 101 ;
}
+#Mean direction of wind waves
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 101 ;
+ }
+#Mean direction of wind waves
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 101 ;
+ }
#Significant height of wind waves
'm' = {
table2Version = 3 ;
indicatorOfParameter = 102 ;
}
+#Significant height of wind waves
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 102 ;
+ }
+#Significant height of wind waves
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 102 ;
+ }
#Mean period of wind waves
's' = {
table2Version = 3 ;
indicatorOfParameter = 103 ;
}
+#Mean period of wind waves
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 103 ;
+ }
+#Mean period of wind waves
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 103 ;
+ }
#Direction of swell waves
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 104 ;
}
+#Direction of swell waves
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 104 ;
+ }
+#Direction of swell waves
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 104 ;
+ }
#Significant height of swell waves
'm' = {
table2Version = 3 ;
indicatorOfParameter = 105 ;
}
+#Significant height of swell waves
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 105 ;
+ }
+#Significant height of swell waves
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 105 ;
+ }
#Mean period of swell waves
's' = {
table2Version = 3 ;
indicatorOfParameter = 106 ;
}
+#Mean period of swell waves
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 106 ;
+ }
+#Mean period of swell waves
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 106 ;
+ }
#Primary wave direction
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 107 ;
}
+#Primary wave direction
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 107 ;
+ }
+#Primary wave direction
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 107 ;
+ }
#Primary wave mean period
's' = {
table2Version = 3 ;
indicatorOfParameter = 108 ;
}
+#Primary wave mean period
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 108 ;
+ }
+#Primary wave mean period
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 108 ;
+ }
#Secondary wave direction
'Degree true' = {
table2Version = 3 ;
indicatorOfParameter = 109 ;
}
+#Secondary wave direction
+'Degree true' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 109 ;
+ }
+#Secondary wave direction
+'Degree true' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 109 ;
+ }
#Secondary wave mean period
's' = {
table2Version = 3 ;
indicatorOfParameter = 110 ;
}
+#Secondary wave mean period
+'s' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 110 ;
+ }
+#Secondary wave mean period
+'s' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 110 ;
+ }
#Net short-wave radiation flux (surface)
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 111 ;
}
+#Net short-wave radiation flux (surface)
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 111 ;
+ }
+#Net short-wave radiation flux (surface)
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 111 ;
+ }
#Net long-wave radiation flux (surface)
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 112 ;
}
+#Net long-wave radiation flux (surface)
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 112 ;
+ }
+#Net long-wave radiation flux (surface)
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 112 ;
+ }
#Net short-wave radiation flux(atmosph.top)
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 113 ;
}
+#Net short-wave radiation flux(atmosph.top)
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 113 ;
+ }
+#Net short-wave radiation flux(atmosph.top)
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 113 ;
+ }
#Net long-wave radiation flux(atmosph.top)
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 114 ;
}
+#Net long-wave radiation flux(atmosph.top)
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 114 ;
+ }
+#Net long-wave radiation flux(atmosph.top)
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 114 ;
+ }
#Long wave radiation flux
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 115 ;
}
+#Long wave radiation flux
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 115 ;
+ }
+#Long wave radiation flux
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 115 ;
+ }
#Short wave radiation flux
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 116 ;
}
+#Short wave radiation flux
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 116 ;
+ }
+#Short wave radiation flux
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 116 ;
+ }
#Global radiation flux
'W m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 117 ;
}
+#Global radiation flux
+'W m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 117 ;
+ }
+#Global radiation flux
+'W m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 117 ;
+ }
#Radiance (with respect to wave number)
'W m**-1 sr**-1' = {
table2Version = 3 ;
indicatorOfParameter = 119 ;
}
+#Radiance (with respect to wave number)
+'W m**-1 sr**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 119 ;
+ }
+#Radiance (with respect to wave number)
+'W m**-1 sr**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 119 ;
+ }
#Radiance (with respect to wave length)
'W m**-3 sr**-1' = {
table2Version = 3 ;
indicatorOfParameter = 120 ;
}
+#Radiance (with respect to wave length)
+'W m**-3 sr**-1' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 120 ;
+ }
+#Radiance (with respect to wave length)
+'W m**-3 sr**-1' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 120 ;
+ }
#Momentum flux, u-component
'N m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 124 ;
}
+#Momentum flux, u-component
+'N m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 124 ;
+ }
+#Momentum flux, u-component
+'N m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 124 ;
+ }
#Momentum flux, v-component
'N m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 125 ;
}
+#Momentum flux, v-component
+'N m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 125 ;
+ }
+#Momentum flux, v-component
+'N m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 125 ;
+ }
#Wind mixing energy
'J' = {
table2Version = 3 ;
indicatorOfParameter = 126 ;
}
+#Wind mixing energy
+'J' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 126 ;
+ }
+#Wind mixing energy
+'J' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 126 ;
+ }
#Image data
'~' = {
table2Version = 3 ;
indicatorOfParameter = 127 ;
}
+#Image data
+'~' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 127 ;
+ }
+#Image data
+'~' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 127 ;
+ }
#Percentage of vegetation
'%' = {
table2Version = 3 ;
indicatorOfParameter = 87 ;
}
+#Percentage of vegetation
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 87 ;
+ }
+#Percentage of vegetation
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 87 ;
+ }
#Orography
'm' = {
table2Version = 3 ;
indicatorOfParameter = 7 ;
indicatorOfTypeOfLevel = 1 ;
}
+#Orography
+'m' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
+#Orography
+'m' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 7 ;
+ indicatorOfTypeOfLevel = 1 ;
+ }
#Soil moisture
'kg m**-3' = {
table2Version = 3 ;
indicatorOfParameter = 86 ;
}
+#Soil moisture
+'kg m**-3' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 86 ;
+ }
+#Soil moisture
+'kg m**-3' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 86 ;
+ }
#Soil temperature
'K' = {
table2Version = 3 ;
indicatorOfParameter = 85 ;
}
+#Soil temperature
+'K' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 85 ;
+ }
+#Soil temperature
+'K' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 85 ;
+ }
#Snowfall water equivalent
'kg m**-2' = {
table2Version = 3 ;
indicatorOfParameter = 65 ;
}
+#Snowfall water equivalent
+'kg m**-2' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 65 ;
+ }
+#Snowfall water equivalent
+'kg m**-2' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 65 ;
+ }
#Total Cloud Cover
'%' = {
table2Version = 3 ;
indicatorOfParameter = 71 ;
}
+#Total Cloud Cover
+'%' = {
+ table2Version = 2 ;
+ indicatorOfParameter = 71 ;
+ }
+#Total Cloud Cover
+'%' = {
+ table2Version = 1 ;
+ indicatorOfParameter = 71 ;
+ }
#Total Precipitation
'kg m**-2' = {
table2Version = 3 ;
@@ -695,680 +2013,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'m**2 s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'m**2 s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'K m**2 kg**-1 s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'m**2 s**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'kg kg**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'Pa s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gpm' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'(0 - 1)' = {
- table2Version = 2 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'m of water equivalent' = {
- table2Version = 2 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'Pa s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'K m**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'gpm' = {
- table2Version = 2 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'m**2 s**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'kg kg**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'Pa' = {
- table2Version = 2 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'kg m**-2 s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'kg m**-2 s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'kg kg**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'kg m**-3' = {
- table2Version = 2 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'(0 - 1)' = {
- table2Version = 2 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'m s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'s**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'s' = {
- table2Version = 2 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'s' = {
- table2Version = 2 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'s' = {
- table2Version = 2 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'Degree true' = {
- table2Version = 2 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'s' = {
- table2Version = 2 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'W m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'W m**-1 sr**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'W m**-3 sr**-1' = {
- table2Version = 2 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'N m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'N m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'J' = {
- table2Version = 2 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'~' = {
- table2Version = 2 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'m' = {
- table2Version = 2 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'kg m**-3' = {
- table2Version = 2 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'K' = {
- table2Version = 2 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'kg m**-2' = {
- table2Version = 2 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'%' = {
- table2Version = 2 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'kg m**-2' = {
table2Version = 2 ;
@@ -1376,680 +2020,6 @@
indicatorOfTypeOfLevel = 1 ;
level = 0 ;
}
-#Stream function
-'m**2 s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 35 ;
- }
-#Velocity potential
-'m**2 s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 36 ;
- }
-#Potential temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 13 ;
- }
-#Wind speed
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 32 ;
- }
-#Pressure
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- }
-#Potential vorticity
-'K m**2 kg**-1 s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 4 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Geopotential
-'m**2 s**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 6 ;
- }
-#Temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- }
-#U component of wind
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- }
-#V component of wind
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- }
-#Specific humidity
-'kg kg**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 51 ;
- }
-#Surface pressure
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 1 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Vertical velocity
-'Pa s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 39 ;
- }
-#Vorticity (relative)
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 43 ;
- }
-#Mean sea level pressure
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 2 ;
- }
-#Divergence
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 44 ;
- }
-#Geopotential height
-'gpm' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- }
-#Relative humidity
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 52 ;
- }
-#10 metre U wind component
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 33 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#10 metre V wind component
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 34 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 10 ;
- }
-#2 metre temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 11 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#2 metre dewpoint temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- indicatorOfTypeOfLevel = 105 ;
- level = 2 ;
- }
-#Land-sea mask
-'(0 - 1)' = {
- table2Version = 1 ;
- indicatorOfParameter = 81 ;
- }
-#Surface roughness (climatological)
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 83 ;
- }
-#Evaporation
-'m of water equivalent' = {
- table2Version = 1 ;
- indicatorOfParameter = 57 ;
- }
-#Brightness temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 118 ;
- }
-#Runoff
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 90 ;
- }
-#Total column ozone
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 10 ;
- }
-#Large-scale precipitation
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 62 ;
- }
-#Snow depth
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 66 ;
- }
-#Convective cloud cover
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 72 ;
- }
-#Low cloud cover
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 73 ;
- }
-#Medium cloud cover
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 74 ;
- }
-#High cloud cover
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 75 ;
- }
-#Large scale snow
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 79 ;
- }
-#Latent heat flux
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 121 ;
- }
-#Sensible heat flux
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 122 ;
- }
-#Boundary layer dissipation
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 123 ;
- }
-#Convective snow
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 78 ;
- }
-#Cloud water
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 76 ;
- }
-#Forecast albedo
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 84 ;
- }
-#Pressure tendency
-'Pa s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 3 ;
- }
-#ICAO Standard Atmosphere reference height
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 5 ;
- }
-#Geometrical height
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 8 ;
- }
-#Standard deviation of height
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 9 ;
- }
-#Pseudo-adiabatic potential temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 14 ;
- }
-#Maximum temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 15 ;
- }
-#Minimum temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 16 ;
- }
-#Dew point temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 17 ;
- }
-#Dew point depression (or deficit)
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 18 ;
- }
-#Lapse rate
-'K m**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 19 ;
- }
-#Visibility
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 20 ;
- }
-#Radar spectra (1)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 21 ;
- }
-#Radar spectra (2)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 22 ;
- }
-#Radar spectra (3)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 23 ;
- }
-#Parcel lifted index (to 500 hPa)
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 24 ;
- }
-#Temperature anomaly
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 25 ;
- }
-#Pressure anomaly
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 26 ;
- }
-#Geopotential height anomaly
-'gpm' = {
- table2Version = 1 ;
- indicatorOfParameter = 27 ;
- }
-#Wave spectra (1)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 28 ;
- }
-#Wave spectra (2)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 29 ;
- }
-#Wave spectra (3)
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 30 ;
- }
-#Wind direction
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 31 ;
- }
-#Montgomery stream Function
-'m**2 s**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 37 ;
- }
-#Sigma coordinate vertical velocity
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 38 ;
- }
-#Absolute vorticity
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 41 ;
- }
-#Absolute divergence
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 42 ;
- }
-#Vertical u-component shear
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 45 ;
- }
-#Vertical v-component shear
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 46 ;
- }
-#Direction of current
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 47 ;
- }
-#Speed of current
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 48 ;
- }
-#U-component of current
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 49 ;
- }
-#V-component of current
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 50 ;
- }
-#Humidity mixing ratio
-'kg kg**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 53 ;
- }
-#Precipitable water
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 54 ;
- }
-#Vapour pressure
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 55 ;
- }
-#Saturation deficit
-'Pa' = {
- table2Version = 1 ;
- indicatorOfParameter = 56 ;
- }
-#Precipitation rate
-'kg m**-2 s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 59 ;
- }
-#Thunderstorm probability
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 60 ;
- }
-#Convective precipitation (water)
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 63 ;
- }
-#Snow fall rate water equivalent
-'kg m**-2 s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 64 ;
- }
-#Mixed layer depth
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 67 ;
- }
-#Transient thermocline depth
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 68 ;
- }
-#Main thermocline depth
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 69 ;
- }
-#Main thermocline anomaly
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 70 ;
- }
-#Best lifted index (to 500 hPa)
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 77 ;
- }
-#Water temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 80 ;
- }
-#Deviation of sea-level from mean
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 82 ;
- }
-#Soil moisture content
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Salinity
-'kg kg**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 88 ;
- }
-#Density
-'kg m**-3' = {
- table2Version = 1 ;
- indicatorOfParameter = 89 ;
- }
-#Ice cover (1=ice, 0=no ice)
-'(0 - 1)' = {
- table2Version = 1 ;
- indicatorOfParameter = 91 ;
- }
-#Ice thickness
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 92 ;
- }
-#Direction of ice drift
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 93 ;
- }
-#Speed of ice drift
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 94 ;
- }
-#U-component of ice drift
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 95 ;
- }
-#V-component of ice drift
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 96 ;
- }
-#Ice growth rate
-'m s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 97 ;
- }
-#Ice divergence
-'s**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 98 ;
- }
-#Snowmelt
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 99 ;
- }
-#Signific.height,combined wind waves+swell
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 100 ;
- }
-#Mean direction of wind waves
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 101 ;
- }
-#Significant height of wind waves
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 102 ;
- }
-#Mean period of wind waves
-'s' = {
- table2Version = 1 ;
- indicatorOfParameter = 103 ;
- }
-#Direction of swell waves
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 104 ;
- }
-#Significant height of swell waves
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 105 ;
- }
-#Mean period of swell waves
-'s' = {
- table2Version = 1 ;
- indicatorOfParameter = 106 ;
- }
-#Primary wave direction
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 107 ;
- }
-#Primary wave mean period
-'s' = {
- table2Version = 1 ;
- indicatorOfParameter = 108 ;
- }
-#Secondary wave direction
-'Degree true' = {
- table2Version = 1 ;
- indicatorOfParameter = 109 ;
- }
-#Secondary wave mean period
-'s' = {
- table2Version = 1 ;
- indicatorOfParameter = 110 ;
- }
-#Net short-wave radiation flux (surface)
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 111 ;
- }
-#Net long-wave radiation flux (surface)
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 112 ;
- }
-#Net short-wave radiation flux(atmosph.top)
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 113 ;
- }
-#Net long-wave radiation flux(atmosph.top)
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 114 ;
- }
-#Long wave radiation flux
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 115 ;
- }
-#Short wave radiation flux
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 116 ;
- }
-#Global radiation flux
-'W m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 117 ;
- }
-#Radiance (with respect to wave number)
-'W m**-1 sr**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 119 ;
- }
-#Radiance (with respect to wave length)
-'W m**-3 sr**-1' = {
- table2Version = 1 ;
- indicatorOfParameter = 120 ;
- }
-#Momentum flux, u-component
-'N m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 124 ;
- }
-#Momentum flux, v-component
-'N m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 125 ;
- }
-#Wind mixing energy
-'J' = {
- table2Version = 1 ;
- indicatorOfParameter = 126 ;
- }
-#Image data
-'~' = {
- table2Version = 1 ;
- indicatorOfParameter = 127 ;
- }
-#Percentage of vegetation
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 87 ;
- }
-#Orography
-'m' = {
- table2Version = 1 ;
- indicatorOfParameter = 7 ;
- indicatorOfTypeOfLevel = 1 ;
- }
-#Soil moisture
-'kg m**-3' = {
- table2Version = 1 ;
- indicatorOfParameter = 86 ;
- }
-#Soil temperature
-'K' = {
- table2Version = 1 ;
- indicatorOfParameter = 85 ;
- }
-#Snowfall water equivalent
-'kg m**-2' = {
- table2Version = 1 ;
- indicatorOfParameter = 65 ;
- }
-#Total Cloud Cover
-'%' = {
- table2Version = 1 ;
- indicatorOfParameter = 71 ;
- }
#Total Precipitation
'kg m**-2' = {
table2Version = 1 ;
diff --git a/definitions/grib2/boot.def b/definitions/grib2/boot.def
index fc3604f6a..b92116397 100644
--- a/definitions/grib2/boot.def
+++ b/definitions/grib2/boot.def
@@ -9,25 +9,28 @@
# This gets updated twice a year by WMO.
# See https://community.wmo.int/activity-areas/wmo-codes/manual-codes/latest-version
-constant tablesVersionLatestOfficial = 31 : edition_specific;
+constant tablesVersionLatestOfficial = 32 : edition_specific;
# If this is different from the official version, then it is the pre-operational version
constant tablesVersionLatest = 33 : edition_specific;
+constant false = 0 : hidden;
+constant true = 1 : hidden;
constant million = 1000000 : hidden;
-constant grib2divider = 1000000;
-alias extraDimensionPresent=zero;
-transient angleSubdivisions=grib2divider; # micro degrees
+constant grib2divider = 1000000;
+alias extraDimensionPresent = zero;
+transient angleSubdivisions = grib2divider; # micro degrees
+transient forceStepUnits = 255 : hidden;
meta gts_header gts_header() : no_copy,hidden,read_only;
meta gts_TTAAii gts_header(20,6) : no_copy,hidden,read_only;
meta gts_CCCC gts_header(27,4) : no_copy,hidden,read_only;
meta gts_ddhh00 gts_header(32,6) : no_copy,hidden,read_only;
-transient missingValue = 9999;
-constant ieeeFloats = 1 : edition_specific;
+transient missingValue = 9999;
+constant ieeeFloats = 1 : edition_specific;
constant isHindcast = 0;
-include "grib2/section.0.def";
+include "grib2/section.0.def"
template core "grib2/sections.def";
@@ -40,3 +43,16 @@ template core "grib2/sections.def";
#}
template section_8 "grib2/section.8.def";
+
+# ECC-1779: Add keys to identify experimental and deprecated templates
+# The low-level transient keys template_is_XXX
+# are set inside the template definition files
+concept isTemplateDeprecated(false) {
+ 1 = { template_is_deprecated = 1; }
+}
+concept isTemplateExperimental(false) {
+ 1 = { template_is_experimental = 1; }
+}
+
+# ECC-1806
+transient paramIdForConversion = 0;
diff --git a/definitions/grib2/cfName.def b/definitions/grib2/cfName.def
index c21d5b9ae..a3105477e 100644
--- a/definitions/grib2/cfName.def
+++ b/definitions/grib2/cfName.def
@@ -6,6 +6,49 @@
parameterNumber = 0 ;
typeOfFirstFixedSurface = 1 ;
}
+#Geopotential
+'geopotential' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ }
+#Temperature
+'air_temperature' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#U component of wind
+'eastward_wind' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#V component of wind
+'northward_wind' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Specific humidity
+'specific_humidity' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Surface pressure
+'surface_air_pressure' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Vertical velocity
+'lagrangian_tendency_of_air_pressure' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ }
#Total column vertically-integrated water vapour
'lwe_thickness_of_atmosphere_mass_content_of_water_vapor' = {
discipline = 0 ;
@@ -14,6 +57,12 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Vorticity (relative)
+'atmosphere_relative_vorticity' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 12 ;
+ }
#Boundary layer dissipation
'kinetic_energy_dissipation_in_atmosphere_boundary_layer' = {
discipline = 0 ;
@@ -21,6 +70,47 @@
parameterNumber = 20 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface sensible heat flux
+'surface_upward_sensible_heat_flux' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface latent heat flux
+'surface_upward_latent_heat_flux' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Mean sea level pressure
+'air_pressure_at_mean_sea_level' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ }
+#Divergence
+'divergence_of_wind' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 13 ;
+ }
+#Geopotential height
+'geopotential_height' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ }
+#Relative humidity
+'relative_humidity' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
#Surface short-wave (solar) radiation downwards
'surface_downwelling_shortwave_flux_in_air' = {
discipline = 0 ;
@@ -29,6 +119,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Land-sea mask
+'land_binary_mask' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Surface roughness (climatological)
'surface_roughness_length' = {
discipline = 2 ;
@@ -37,6 +134,22 @@
typeOfFirstFixedSurface = 1 ;
typeOfGeneratingProcess = 9 ;
}
+#Surface net short-wave (solar) radiation
+'surface_net_downward_shortwave_flux' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface net long-wave (thermal) radiation
+'surface_net_upward_longwave_flux' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Top net short-wave (solar) radiation
'toa_net_upward_shortwave_flux' = {
discipline = 0 ;
@@ -45,19 +158,27 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ;
}
-#Eastward turbulent surface stress
+#Top net long-wave (thermal) radiation
+'toa_outgoing_longwave_flux' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress
'surface_downward_eastward_stress' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'surface_downward_northward_stress' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
@@ -150,6 +271,12 @@
constituentType = 11 ;
is_chemical = 1 ;
}
+#Forecast albedo
+'surface_albedo' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 1 ;
+ }
#Sea surface practical salinity
'sea_surface_salinity' = {
discipline = 10 ;
@@ -210,19 +337,11 @@
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
-#Eastward sea water velocity
-'eastward_sea_water_velocity' = {
- discipline = 10 ;
+#Convective precipitation (water)
+'lwe_thickness_of_convective_precipitation_amount' = {
+ discipline = 0 ;
parameterCategory = 1 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 160 ;
- }
-#Northward sea water velocity
-'northward_sea_water_velocity' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 160 ;
+ parameterNumber = 10 ;
}
#Nitrogen dioxide mass mixing ratio
'mass_fraction_of_nitrogen_dioxide_in_air' = {
@@ -255,137 +374,4 @@
parameterNumber = 2 ;
constituentType = 0 ;
is_chemical = 1 ;
- }
-#Geopotential
-'geopotential' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 4 ;
- }
-#Temperature
-'air_temperature' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#U component of wind
-'eastward_wind' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#V component of wind
-'northward_wind' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Specific humidity
-'specific_humidity' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Surface pressure
-'surface_air_pressure' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Vertical velocity
-'lagrangian_tendency_of_air_pressure' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 8 ;
- }
-#Vorticity (relative)
-'atmosphere_relative_vorticity' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 12 ;
- }
-#Surface sensible heat flux
-'surface_upward_sensible_heat_flux' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface latent heat flux
-'surface_upward_latent_heat_flux' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Mean sea level pressure
-'air_pressure_at_mean_sea_level' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 101 ;
- }
-#Divergence
-'divergence_of_wind' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 13 ;
- }
-#Geopotential height
-'geopotential_height' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- }
-#Relative humidity
-'relative_humidity' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Land-sea mask
-'land_binary_mask' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Surface net short-wave (solar) radiation
-'surface_net_downward_shortwave_flux' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface net long-wave (thermal) radiation
-'surface_net_upward_longwave_flux' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Top net long-wave (thermal) radiation
-'toa_outgoing_longwave_flux' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 8 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Forecast albedo
-'surface_albedo' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 1 ;
- }
-#Convective precipitation (water)
-'lwe_thickness_of_convective_precipitation_amount' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
}
diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def
index 4234951b7..33c22592d 100644
--- a/definitions/grib2/cfVarName.def
+++ b/definitions/grib2/cfVarName.def
@@ -23,6 +23,30 @@
scaleFactorOfLowerLimit = 0 ;
probabilityType = 3 ;
}
+#Total precipitation of at least 10 mm
+'tpg10' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 10 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#Total precipitation of at least 20 mm
+'tpg20' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Total precipitation of at least 40 mm
'tpg40' = {
discipline = 0 ;
@@ -107,6 +131,24 @@
scaleFactorOfLowerLimit = -2 ;
probabilityType = 3 ;
}
+#Stream function
+'strf' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 4 ;
+ }
+#Velocity potential
+'vp' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 5 ;
+ }
+#Potential temperature
+'pt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind speed
'ws' = {
discipline = 0 ;
@@ -230,6 +272,12 @@
parameterCategory = 2 ;
parameterNumber = 6 ;
}
+#Pressure
+'pres' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ }
#Downward UV radiation at the surface
'uvb' = {
discipline = 0 ;
@@ -246,6 +294,20 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Convective available potential energy
+'cape' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Potential vorticity
+'pv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 14 ;
+ }
#Leaf area index, low vegetation
'lai_lv' = {
discipline = 2 ;
@@ -299,6 +361,88 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Surface emissivity
+'emis' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Geopotential
+'z' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ }
+#Temperature
+'t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#U component of wind
+'u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#V component of wind
+'v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Specific humidity
+'q' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Surface pressure
+'sp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Vertical velocity
+'w' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ }
+#Total column water
+'tcw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Total column vertically-integrated water vapour
'tcwv' = {
discipline = 0 ;
@@ -307,6 +451,12 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Vorticity (relative)
+'vo' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 12 ;
+ }
#Boundary layer dissipation
'bld' = {
discipline = 0 ;
@@ -314,12 +464,69 @@
parameterNumber = 20 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface sensible heat flux
+'sshf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface latent heat flux
+'slhf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Charnock
'chnk' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 76 ;
}
+#Surface net radiation (SW and LW)
+'snr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Top net radiation (SW and LW)
+'tnr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Mean sea level pressure
+'msl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ }
+#Divergence
+'d' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 13 ;
+ }
+#Geopotential height
+'gh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ }
+#Relative humidity
+'r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
#Boundary layer height
'blh' = {
discipline = 0 ;
@@ -350,6 +557,42 @@
parameterCategory = 3 ;
parameterNumber = 22 ;
}
+#10 metre U wind component
+'u10' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#10 metre V wind component
+'v10' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre temperature
+'t2m' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre dewpoint temperature
+'d2m' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Surface short-wave (solar) radiation downwards
'ssrd' = {
discipline = 0 ;
@@ -358,6 +601,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Land-sea mask
+'lsm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Surface roughness (climatological)
'sr' = {
discipline = 2 ;
@@ -374,6 +624,22 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface net short-wave (solar) radiation
+'ssr' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface net long-wave (thermal) radiation
+'str' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Top net short-wave (solar) radiation
'tsr' = {
discipline = 0 ;
@@ -382,22 +648,44 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ;
}
-#Eastward turbulent surface stress
+#Top net long-wave (thermal) radiation
+'ttr' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress
'ewss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Sunshine duration
+'sund' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Brightness temperature
+'btmp' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 4 ;
+ }
#Eastward gravity wave surface stress
'lgws' = {
discipline = 0 ;
@@ -447,6 +735,15 @@
parameterCategory = 14 ;
parameterNumber = 1 ;
}
+#10 metre wind speed
+'si10' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Top net short-wave (solar) radiation, clear sky
'tsrc' = {
discipline = 0 ;
@@ -500,14 +797,14 @@
'iews' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous northward turbulent surface stress
'inss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous surface sensible heat flux
@@ -532,6 +829,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfGeneratingProcess = 9 ;
}
+#Skin temperature
+'skt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Temperature of snow layer
'tsn' = {
discipline = 2 ;
@@ -724,6 +1028,20 @@
parameterCategory = 0 ;
parameterNumber = 89 ;
}
+#U-component of atmospheric surface momentum flux
+'utaua' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#V-component of atmospheric surface momentum flux
+'vtaua' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 18 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#U-component of surface momentum flux into ocean
'utauo' = {
discipline = 10 ;
@@ -858,6 +1176,15 @@
scaleFactorOfUpperWavePeriodLimit = 0 ;
scaledValueOfUpperWavePeriodLimit = 30 ;
}
+#Significant wave height of all waves with period larger than 10s
+'sh10' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfWavePeriodInterval = 3 ;
+ scaleFactorOfLowerWavePeriodLimit = 0 ;
+ scaledValueOfLowerWavePeriodLimit = 10 ;
+ }
#Significant wave height of first swell partition
'swh1' = {
discipline = 10 ;
@@ -912,6 +1239,30 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
+#Time domain maximum individual crest height
+'tdcmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 94 ;
+ }
+#Time domain maximum individual wave height
+'tdhmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 95 ;
+ }
+#Space time maximum individual crest height
+'stcmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 96 ;
+ }
+#Space time maximum individual wave height
+'sthmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 97 ;
+ }
#Wave Spectral Skewness
'wss' = {
discipline = 10 ;
@@ -948,6 +1299,34 @@
parameterCategory = 0 ;
parameterNumber = 84 ;
}
+#Time-mean mean zero-crossing wave period
+'avg_mp2' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean significant height of combined wind waves and swell
+'avg_swh' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean peak wave period
+'avg_pp1d' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 34 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean wave period
+'avg_mwp' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean sea water temperature in the upper 300 m
'mswt300m' = {
discipline = 10 ;
@@ -3114,6 +3493,386 @@
parameterCategory = 1 ;
parameterNumber = 30 ;
}
+#Vertical divergence
+'vdiv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 59 ;
+ }
+#Drag thermal coefficient
+'dtc' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Drag evaporation coefficient
+'dec' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 61 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Pressure departure from hydrostatic state
+'pdhs' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 46 ;
+ }
+#Surface net radiation flux (SW and LW)
+'snrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Top net radiation flux (SW and LW)
+'tnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ }
+#Time-mean top net radiation flux (SW and LW)
+'mtnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Global irradiance on tilted surfaces
+'gits' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 47 ;
+ }
+#Eady growth rate
+'eagr' = {
+ discipline = 0 ;
+ parameterCategory = 21 ;
+ parameterNumber = 22 ;
+ }
+#Tropical cyclones track density
+'tdtc' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 4 ;
+ }
+#Canopy air temperature
+'cant' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 63 ;
+ }
+#Soil wetness index (total layer)
+'swit' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Soil wetness index (root zone)
+'swir' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 167 ;
+ }
+#Soil wetness index (layer)
+'swil' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 151 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Distance downward from roof surface
+'ddrf' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Distance inward from outer wall surface
+'diws' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Distance downward from road surface
+'ddrd' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Renewable power capacity
+'rpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production rate
+'rppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production
+'rpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Wind power capacity
+'wpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production rate
+'wppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production
+'wpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Solar photovoltaic (PV) power capacity
+'pvpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production rate
+'pvppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production
+'pvpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Graupel (snow pellets) precipitation
+'tgrp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 75 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated total lightning flash density
+'litotint' = {
+ discipline = 0 ;
+ parameterCategory = 17 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum total column integrated graupel (snow pellets)
+'maxtcg' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 74 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Minimum visibility
+'minvis' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Geometric height of theta level above ground
+'hthg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 107 ;
+ }
+#Pressure at cloud base
+'pcdb' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 2 ;
+ }
+#Geometric height of adiabatic condensation level above ground
+'hacg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 5 ;
+ }
+#Geometric height of free convection level above ground
+'hfcg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 14 ;
+ }
+#Geometric height of neutral buoyancy level above ground
+'hnbg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 16 ;
+ }
+#Geometric height of atmospheric isothermal level above ground
+'haig' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 20 ;
+ }
+#Roof temperature
+'rft' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Wall temperature
+'wlt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 186 ;
+ }
+#Road temperature
+'rdt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Snow depth water equivalent on roof
+'sdrf' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Snow depth water equivalent on road
+'sdrd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Urban canyon temperature
+'uct' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Urban canyon specific humidity
+'ucq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Convective snowfall water equivalent
+'csfwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 55 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall water equivalent
+'lsfwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 56 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Lake surface temperature
+'lslt' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ }
+#Surface bulk Richardson number
+'sbrn' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Time-maximum 2 metre relative humidity
+'mx2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Time-minimum 2 metre relative humidity
+'mn2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Surface roughness for heat
+'srhe' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 47 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Surface roughness for moisture
+'srmo' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 48 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Burned area
'fba' = {
discipline = 2 ;
@@ -3156,6 +3915,60 @@
parameterCategory = 4 ;
parameterNumber = 25 ;
}
+#Live leaf fuel load
+'llfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ }
+#Live wood fuel load
+'lwfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 28 ;
+ }
+#Dead leaf fuel load
+'dlfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 29 ;
+ }
+#Dead wood fuel load
+'dwfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 30 ;
+ }
+#Live fuel moisture content
+'lfmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 31 ;
+ }
+#Fine dead leaf moisture content
+'fdlmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 32 ;
+ }
+#Dense dead leaf moisture content
+'ddlmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 33 ;
+ }
+#Fine dead wood moisture content
+'fdwmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 34 ;
+ }
+#Dense dead wood moisture content
+'ddwmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 35 ;
+ }
#Time-integrated total column vertically-integrated eastward geopotential flux
'tvige' = {
discipline = 0 ;
@@ -3745,6 +4558,22 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
+#Mean eastward turbulent surface stress
+'metss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean northward turbulent surface stress
+'mntss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 63 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean evaporation rate
'mer' = {
discipline = 0 ;
@@ -3919,6 +4748,331 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean evapotranspiration flux
+'metrf' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time integral of potential evapotranspiration rate
+'tipet' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean potential evapotranspiration rate
+'mpet' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean volumetric soil moisture
+'mvsw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth water equivalent
+'msd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean skin temperature
+'mskt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow density
+'mrsn' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 61 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low vegetation cover
+'mcvl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 53 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high vegetation cover
+'mcvh' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 54 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea ice area fraction
+'mci' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea surface temperature
+'msst' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, low vegetation
+'mlai_lv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 55 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, high vegetation
+'mlai_hv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 56 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column liquid water
+'mtclw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 69 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column cloud ice water
+'mtciw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 70 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre specific humidity
+'m2sh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer temperature
+'mlmlt' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer depth
+'mlmld' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre relative humidity
+'m2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean fraction of snow cover
+'mfscov' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 121 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean soil temperature
+'msot' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth
+'msde' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow cover
+'msnowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean geopotential
+'mz' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature
+'mt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean U component of wind
+'mu' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean V component of wind
+'mv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean specific humidity
+'mq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean surface pressure
+'msp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertical velocity
+'mw' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column water
+'mtcw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically-integrated water vapour
+'mtcwv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean sea level pressure
+'mmsl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean relative humidity
+'mr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean boundary layer height
+'mblh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre U wind component
+'m10u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre V wind component
+'m10v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre dewpoint temperature
+'m2d' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature of snow layer
+'mtsn' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast surface roughness
+'mfsr' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast logarithm of surface roughness for heat
+'mflsr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 54 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Cross sectional area of flow in channel
'chcross' = {
discipline = 1 ;
@@ -4023,6 +5177,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
+#Lake depth
+'lakdph' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River depth
+'rivdph' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River outflow of water
+'rivout' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ }
+#Floodplain outflow of water
+'fldout' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Floodpath outflow of water
+'pthflw' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
#Latitude
'lat' = {
discipline = 0 ;
@@ -4123,6 +5311,138 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Latent heat net flux
+'lhtfl' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Heat index
+'heatx' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Wind chill factor
+'wcf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Minimum dew point depression
+'mindpd' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Snow phase change heat flux
+'snohf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Vapor pressure
+'vapp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Large scale precipitation (non-convective)
+'ncpcp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Snowfall rate water equivalent
+'srweq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Convective snow
+'snoc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 14 ;
+ }
+#Large scale snow
+'snol' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 15 ;
+ }
+#Snow age
+'snoag' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 17 ;
+ }
+#Absolute humidity
+'absh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 18 ;
+ }
+#Precipitation type
+'ptype' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 19 ;
+ }
+#Integrated liquid water
+'iliqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 20 ;
+ }
+#Condensate
+'tcond' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 21 ;
+ }
+#Cloud mixing ratio
+'clwmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 22 ;
+ }
+#Ice water mixing ratio
+'icmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 23 ;
+ }
+#Rain mixing ratio
+'rwmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 24 ;
+ }
+#Snow mixing ratio
+'snmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal moisture convergence
+'mconv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 26 ;
+ }
+#Maximum relative humidity
+'maxrh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 27 ;
+ }
+#Maximum absolute humidity
+'maxah' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 28 ;
+ }
#Total snowfall
'asnow' = {
discipline = 0 ;
@@ -4131,6 +5451,579 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Precipitable water category
+'pwcat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 30 ;
+ }
+#Hail
+'hail' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 31 ;
+ }
+#Graupel (snow pellets)
+'grle' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 32 ;
+ }
+#Categorical rain
+'crain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 33 ;
+ }
+#Categorical freezing rain
+'cfrzr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 34 ;
+ }
+#Categorical ice pellets
+'cicep' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 35 ;
+ }
+#Categorical snow
+'csnow' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 36 ;
+ }
+#Convective precipitation rate
+'cprat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 37 ;
+ }
+#Horizontal moisture divergence
+'mdiv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 38 ;
+ }
+#Percent frozen precipitation
+'cpofp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 39 ;
+ }
+#Potential evaporation
+'pevap' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 40 ;
+ }
+#Snow cover
+'snowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ }
+#Rain fraction of total cloud water
+'frain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 43 ;
+ }
+#Rime factor
+'rime' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 44 ;
+ }
+#Total column integrated rain
+'tcolr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 45 ;
+ }
+#Total column integrated snow
+'tcols' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 46 ;
+ }
+#Large scale water precipitation (non-convective)
+'lswp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 47 ;
+ }
+#Convective water precipitation
+'cwp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 48 ;
+ }
+#Total water precipitation
+'twatp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 49 ;
+ }
+#Total snow precipitation
+'tsnowp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column water (Vertically integrated total water (vapour + cloud water/ice))
+'tcwat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ }
+#Total precipitation rate
+'tprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Total snowfall rate water equivalent
+'tsrwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 53 ;
+ }
+#Large scale precipitation rate
+'lsprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 54 ;
+ }
+#Total snowfall rate
+'tsrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 57 ;
+ }
+#Convective snowfall rate
+'csrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 58 ;
+ }
+#Large scale snowfall rate
+'lssrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 59 ;
+ }
+#Water equivalent of accumulated snow depth (deprecated)
+'sdwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Rain precipitation rate
+'rprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 65 ;
+ }
+#Snow precipitation rate
+'sprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ }
+#Freezing rain precipitation rate
+'fprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 67 ;
+ }
+#Ice pellets precipitation rate
+'iprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 68 ;
+ }
+#Maximum wind speed
+'maxgust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 21 ;
+ }
+#Wind speed (gust)
+'gust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ }
+#u-component of wind (gust)
+'ugust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 23 ;
+ }
+#v-component of wind (gust)
+'vgust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 24 ;
+ }
+#Vertical speed shear
+'vwsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal momentum flux
+'mflx' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 26 ;
+ }
+#U-component storm motion
+'ustm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 27 ;
+ }
+#V-component storm motion
+'vstm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 28 ;
+ }
+#Drag coefficient
+'cd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 29 ;
+ }
+#Frictional velocity
+'fricv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 30 ;
+ }
+#Pressure reduced to MSL
+'prmsl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ }
+#Altimeter setting
+'alts' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Thickness
+'thick' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Pressure altitude
+'presalt' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Density altitude
+'denalt' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#5-wave geopotential height
+'wavh5' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Zonal flux of gravity wave stress
+'u-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Meridional flux of gravity wave stress
+'v-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#5-wave geopotential height anomaly
+'wava5' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 19 ;
+ }
+#Net short-wave radiation flux (top of atmosphere)
+'nswrt' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Downward short-wave radiation flux
+'dswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 7 ;
+ }
+#Upward short-wave radiation flux
+'uswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 8 ;
+ }
+#Net short wave radiation flux
+'nswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ }
+#Photosynthetically active radiation
+'photar' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 10 ;
+ }
+#Net short-wave radiation flux, clear sky
+'nswrfcs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 11 ;
+ }
+#Downward UV radiation
+'dwuvr' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 12 ;
+ }
+#UV index (under clear sky)
+'uviucs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ }
+#UV index
+'uvi' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 51 ;
+ }
+#Net long wave radiation flux (surface)
+'nlwrs' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 0 ;
+ }
+#Net long wave radiation flux (top of atmosphere)
+'nlwrt' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 1 ;
+ }
+#Downward long-wave radiation flux
+'dlwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 3 ;
+ }
+#Upward long-wave radiation flux
+'ulwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 4 ;
+ }
+#Net long wave radiation flux
+'nlwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ }
+#Net long-wave radiation flux, clear sky
+'nlwrcs' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 6 ;
+ }
+#Cloud Ice
+'cice' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 0 ;
+ }
+#Cloud water
+'cwat' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Cloud amount
+'cdca' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Cloud type
+'cdct' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Thunderstorm maximum tops
+'tmaxt' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 9 ;
+ }
+#Thunderstorm coverage
+'thunc' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 10 ;
+ }
+#Cloud top
+'cdct' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 12 ;
+ }
+#Ceiling
+'ceil' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 13 ;
+ }
+#Non-convective cloud cover
+'cdlyr' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 14 ;
+ }
+#Cloud work function
+'cwork' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 15 ;
+ }
+#Convective cloud efficiency
+'cuefi' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 16 ;
+ }
+#Total condensate
+'tcond' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 17 ;
+ }
+#Total column-integrated cloud water
+'tcolw' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 18 ;
+ }
+#Total column-integrated cloud ice
+'tcoli' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 19 ;
+ }
+#Total column-integrated condensate
+'tcolc' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 20 ;
+ }
+#Ice fraction of total condensate
+'fice' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 21 ;
+ }
+#Cloud ice mixing ratio
+'cdcimr' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 23 ;
+ }
+#Sunshine
+'suns' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ }
+#Horizontal extent of cumulonimbus (CB)
+'p260120' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 25 ;
+ }
+#K index
+'kx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 2 ;
+ }
+#KO index
+'kox' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 3 ;
+ }
+#Total totals index
+'totalx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 4 ;
+ }
+#Sweat index
+'sx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 5 ;
+ }
+#Storm relative helicity
+'hlcy' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 8 ;
+ }
+#Energy helicity index
+'ehlx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 9 ;
+ }
+#Surface lifted index
+'lftx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 10 ;
+ }
+#Best (4-layer) lifted index
+'lftx4' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 11 ;
+ }
+#Aerosol type
+'aerot' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 0 ;
+ }
+#Total ozone
+'tozne' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 0 ;
+ }
#Total column integrated ozone
'tcioz' = {
discipline = 0 ;
@@ -4139,6 +6032,588 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Base spectrum width
+'bswid' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 0 ;
+ }
+#Base reflectivity
+'bref' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 1 ;
+ }
+#Base radial velocity
+'brvel' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 2 ;
+ }
+#Vertically-integrated liquid
+'veril' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 3 ;
+ }
+#Layer-maximum base reflectivity
+'lmaxbr' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 4 ;
+ }
+#Precipitation
+'prec' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 5 ;
+ }
+#Air concentration of Caesium 137
+'acces' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 0 ;
+ }
+#Air concentration of Iodine 131
+'aciod' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 1 ;
+ }
+#Air concentration of radioactive pollutant
+'acradp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 2 ;
+ }
+#Ground deposition of Caesium 137
+'gdces' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 3 ;
+ }
+#Ground deposition of Iodine 131
+'gdiod' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 4 ;
+ }
+#Ground deposition of radioactive pollutant
+'gdradp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 5 ;
+ }
+#Time-integrated air concentration of caesium pollutant
+'tiaccp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 6 ;
+ }
+#Time-integrated air concentration of iodine pollutant
+'tiacip' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 7 ;
+ }
+#Time-integrated air concentration of radioactive pollutant
+'tiacrp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 8 ;
+ }
+#Volcanic ash
+'volash' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 4 ;
+ }
+#Icing top
+'icit' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 5 ;
+ }
+#Icing base
+'icib' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 6 ;
+ }
+#Icing
+'ici' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 7 ;
+ }
+#Turbulence top
+'turbt' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 8 ;
+ }
+#Turbulence base
+'turbb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 9 ;
+ }
+#Turbulence
+'turb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 10 ;
+ }
+#Turbulent kinetic energy
+'tke' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 11 ;
+ }
+#Planetary boundary layer regime
+'pblreg' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 12 ;
+ }
+#Contrail intensity
+'conti' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 13 ;
+ }
+#Contrail engine type
+'contet' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 14 ;
+ }
+#Contrail top
+'contt' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 15 ;
+ }
+#Contrail base
+'contb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 16 ;
+ }
+#Maximum snow albedo
+'mxsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 17 ;
+ }
+#Snow free albedo
+'snfalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 18 ;
+ }
+#Icing
+'p260151' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 20 ;
+ }
+#In-cloud turbulence
+'p260164' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 21 ;
+ }
+#Relative clear air turbulence (RCAT)
+'rcat' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 22 ;
+ }
+#Supercooled large droplet probability (see Note 4)
+'p260166' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 23 ;
+ }
+#Arbitrary text string
+'var190m0' = {
+ discipline = 0 ;
+ parameterCategory = 190 ;
+ parameterNumber = 0 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'tsec' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
+'ffldg' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
+'ffldro' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Remotely sensed snow cover
+'rssc' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
+#Elevation of snow covered terrain
+'esct' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Snow water equivalent percent of normal
+'swepon' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Baseflow-groundwater runoff
+'bgrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Storm surface runoff
+'ssrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
+'cppop' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
+'pposp' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Probability of 0.01 inch of precipitation (POP)
+'pop' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Vegetation
+'veg' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Water runoff
+'watr' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Evapotranspiration
+'evapt' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Model terrain height
+'mterh' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Land use
+'landu' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Ground heat flux
+'gflux' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Moisture availability
+'mstav' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Exchange coefficient
+'sfexc' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Plant canopy surface water
+'cnwat' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Blackadar mixing length scale
+'bmixl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Canopy conductance
+'ccond' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ }
+#Minimal stomatal resistance
+'rsmin' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Solar parameter in canopy conductance
+'rcs' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Temperature parameter in canopy conductance
+'rct' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
+#Soil moisture parameter in canopy conductance
+'rcsol' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 20 ;
+ }
+#Humidity parameter in canopy conductance
+'rcq' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#Column-integrated soil water
+'cisoilw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 23 ;
+ }
+#Heat flux
+'hflux' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+ }
+#Volumetric soil moisture
+'vsw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ }
+#Volumetric wilting point
+'vwiltm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 27 ;
+ }
+#Number of soil layers in root zone
+'rlyrs' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Liquid volumetric soil moisture (non-frozen)
+'liqvsm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Volumetric transpiration stress-onset (soil moisture)
+'voltso' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Transpiration stress-onset (soil moisture)
+'transo' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Volumetric direct evaporation cease (soil moisture)
+'voldec' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Direct evaporation cease (soil moisture)
+'direc' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#Soil porosity
+'soilp' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Volumetric saturation of soil moisture
+'vsosm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Saturation of soil moisture
+'satosm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#Estimated precipitation
+'estp' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Instantaneous rain rate
+'irrate' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Cloud top height
+'ctoph' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Cloud top height quality indicator
+'ctophqi' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Estimated u component of wind
+'estu' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Estimated v component of wind
+'estv' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Number of pixels used
+'npixu' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 6 ;
+ }
+#Solar zenith angle
+'solza' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Relative azimuth angle
+'raza' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 8 ;
+ }
+#Reflectance in 0.6 micron channel
+'rfl06' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Reflectance in 0.8 micron channel
+'rfl08' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Reflectance in 1.6 micron channel
+'rfl16' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ }
+#Reflectance in 3.9 micron channel
+'rfl39' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Atmospheric divergence
+'atmdiv' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Direction of wind waves
+'wvdir' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Primary wave direction
+'dirpw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Primary wave mean period
+'perpw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Secondary wave mean period
+'persw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Current direction
+'dirc' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Current speed
+'spc' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Geometric vertical velocity
+'wz' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 9 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'tsec' = {
+ discipline = 10 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
#2 metre relative humidity
'r2' = {
discipline = 0 ;
@@ -4195,26 +6670,6 @@
parameterCategory = 4 ;
parameterNumber = 14 ;
}
-#Evaporation in the last 6 hours
-'eva06' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 6 ;
- }
-#Evaporation in the last 24 hours
-'eva24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
#Fraction of snow cover
'fscov' = {
discipline = 0 ;
@@ -4353,6 +6808,13 @@
parameterCategory = 3 ;
parameterNumber = 19 ;
}
+#Leaf Area Index
+'lai' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Accumulated surface upward short-wave radiation flux, clear sky
'auswrf_cs' = {
discipline = 0 ;
@@ -4375,104 +6837,29 @@
parameterCategory = 0 ;
parameterNumber = 39 ;
}
-#Time-mean evapotranspiration rate in the last 24h
-'avg_et24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Potential evapotranspiration rate
'pet' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 40 ;
}
-#Time-integrated potential evapotranspiration rate in the last 24h
-'acc_pet24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean potential evapotranspiration rate in the last 24h
-'avg_pet24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean volumetric soil moisture
-'avg_swv24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Water runoff and drainage rate
'rod' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 42 ;
}
-#Time-integrated water runoff and drainage rate in the last 24h
-'acc_rod24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean water runoff and drainage rate in the last 24h
-'avg_rod24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow depth water equivalent
-'avg_sd24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 60 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean skin temperature
-'avg_skt24' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Snow melt rate
'smr' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
}
-#Time-integrated snow melt rate in the last 24h
-'acc_smr24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
+#Forecast albedo
+'al' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 1 ;
}
#Cloudy brightness temperature
'clbt' = {
@@ -4735,6 +7122,52 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 255 ;
}
+#Time-integrated eastward turbulent surface stress due to orographic form drag
+'etssofd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to orographic form drag
+'ntssofd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 65 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress due to surface roughness
+'etsssr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to surface roughness
+'ntsssr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 67 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Saturation specific humidity with respect to water
+'sqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 168 ;
+ }
+#Total column integrated saturation specific humidity with respect to water
+'tcsqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 169 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Universal thermal climate index
'utci' = {
discipline = 20 ;
@@ -5671,6 +8104,54 @@
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
+#Sea surface salinity
+'sss' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
+#Vertically integrated sea water practical salinity in the upper 300 m
+'sc300v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Vertically integrated sea water practical salinity in the upper 700 m
+'sc700v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Total column vertically integrated sea water practical salinity
+'scbtv' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
#Sea water practical salinity
'so' = {
discipline = 10 ;
@@ -5733,7 +8214,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
}
#Sea water potential temperature tendency due to newtonian relaxation
'thetaodmp' = {
@@ -6779,6 +9262,13 @@
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface height with inverse barometer correction
+'avg_zosib' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 20 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean average sea water potential temperature in the upper 300m
'avg_pt300m' = {
discipline = 10 ;
@@ -6792,6 +9282,58 @@
scaleFactorOfSecondFixedSurface = 0 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface salinity
+'avg_sss' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 300 m
+'avg_sc300v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 700 m
+'avg_sc700v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically integrated sea water practical salinity
+'avg_scbtv' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean sea water practical salinity
'avg_so' = {
discipline = 10 ;
@@ -6861,7 +9403,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean sea water potential temperature tendency due to newtonian relaxation
@@ -6936,6 +9480,15 @@
typeOfSecondFixedSurface = 168 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea water salinity
+'avg_salo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean net short wave radiation rate at sea surface
'avg_ssr_sea' = {
discipline = 0 ;
@@ -7122,6 +9675,8 @@
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
}
#Mass mixing ratio
'mass_mixrat' = {
@@ -7451,6 +10006,56 @@
parameterCategory = 20 ;
parameterNumber = 59 ;
}
+#Mass mixing ratio from volcanoes
+'mass_mixrat_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 2 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Total column vertically-integrated mass density from volcanoes
+'tc_mdens_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Dry deposition velocity from volcanoes
+'drydep_vel_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 15 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Pressure tendency
+'ptend' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ }
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ }
+#Geometrical height
+'h' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Standard deviation of height
+'hstdv' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 7 ;
+ }
#Virtual potential temperature
'vptmp' = {
discipline = 0 ;
@@ -7463,12 +10068,222 @@
parameterCategory = 0 ;
parameterNumber = 3 ;
}
+#Maximum temperature
+'tmax' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Minimum temperature
+'tmin' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Dew point temperature
+'dpt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Lapse rate
+'lapr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Visibility
+'vis' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ }
+#Radar spectra (1)
+'rdsp1' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 6 ;
+ }
+#Radar spectra (2)
+'rdsp2' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 7 ;
+ }
+#Radar spectra (3)
+'rdsp3' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 8 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 0 ;
+ }
+#Temperature anomaly
+'ta' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 9 ;
+ }
+#Pressure anomaly
+'presa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 8 ;
+ }
+#Geopotential height anomaly
+'gpa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 9 ;
+ }
+#Wave spectra (1)
+'wvsp1' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Wave spectra (2)
+'wvsp2' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Wave spectra (3)
+'wvsp3' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind direction
'wdir' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 0 ;
}
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
+#Absolute vorticity
+'absv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 10 ;
+ }
+#Absolute divergence
+'absd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 11 ;
+ }
+#Vertical u-component shear
+'vucsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ }
+#Vertical v-component shear
+'vvcsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ }
+#Precipitable water
+'pwat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Saturation deficit
+'satd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Precipitation rate
+'prate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Thunderstorm probability
+'tstm' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 2 ;
+ }
+#Convective precipitation (water)
+'acpcp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Mixed layer depth
+'mld' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 3 ;
+ }
+#Transient thermocline depth
+'tthdp' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 2 ;
+ }
+#Main thermocline anomaly
+'mtha' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Best lifted index (to 500 hPa)
+'bli' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 1 ;
+ }
+#Soil moisture content
+'ssw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Salinity
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Density
+'den' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Direction of ice drift
+'diced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#Speed of ice drift
+'siced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Ice divergence
+'iced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
#Snowmelt
'snom' = {
discipline = 2 ;
@@ -7477,17 +10292,87 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Direction of swell waves
+'swdir' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Secondary wave direction
+'dirsw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 0 ;
+ }
+#Global radiation flux
+'grad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Radiance (with respect to wave number)
+'lwrad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 5 ;
+ }
+#Radiance (with respect to wave length)
+'swrad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 6 ;
+ }
+#Wind mixing energy
+'wmixe' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 19 ;
+ }
+#10 metre wind gust of at least 15 m/s
+'fg10g15' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 15 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#10 metre wind gust of at least 20 m/s
+'fg10g20' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Period corresponding to maximum individual wave height
'tmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 23 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'hmax' = {
discipline = 10 ;
parameterCategory = 0 ;
- parameterNumber = 24 ;
+ parameterNumber = 93 ;
}
#Model bathymetry
'wmb' = {
@@ -7675,20 +10560,6 @@
parameterCategory = 0 ;
parameterNumber = 44 ;
}
-#Eastward sea water velocity
-'uoe' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 160 ;
- }
-#Northward sea water velocity
-'von' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 160 ;
- }
#Skin reservoir content
'srcrea' = {
discipline = 2 ;
@@ -7881,6 +10752,14 @@
parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean surface net radiation flux (SW and LW)
+'msnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Surface runoff
'sro' = {
discipline = 2 ;
@@ -7955,12 +10834,47 @@
typeOfGeneratingProcess = 20 ;
is_chemical = 1 ;
}
+#Convective inhibition
+'cin' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 7 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Orography
+'orog' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Friction velocity
'zust' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
+#Mean 2 metre temperature
+'mean2t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean of 10 metre wind speed
+'mean10ws' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Lake total depth
'dl' = {
discipline = 1 ;
@@ -8061,6 +10975,12 @@
parameterCategory = 19 ;
parameterNumber = 43 ;
}
+#Soil moisture
+'sm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
#10 metre u-component of neutral wind
'u10n' = {
discipline = 0 ;
@@ -8079,1957 +10999,6 @@
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
-#U-component surface stokes drift
-'ust' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#V-component surface stokes drift
-'vst' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
-#100 metre U wind component
-'u100' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#100 metre V wind component
-'v100' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Total precipitation of at least 10 mm
-'tpg10' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 10 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Total precipitation of at least 20 mm
-'tpg20' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Stream function
-'strf' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 4 ;
- }
-#Velocity potential
-'vp' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 5 ;
- }
-#Potential temperature
-'pt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Pressure
-'pres' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- }
-#Convective available potential energy
-'cape' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Potential vorticity
-'pv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 14 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 2 ;
- lengthOfTimeRange = 6 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 3 ;
- lengthOfTimeRange = 6 ;
- }
-#Geopotential
-'z' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 4 ;
- }
-#Temperature
-'t' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#U component of wind
-'u' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#V component of wind
-'v' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Specific humidity
-'q' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Surface pressure
-'sp' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Vertical velocity
-'w' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 8 ;
- }
-#Total column water
-'tcw' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Vorticity (relative)
-'vo' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 12 ;
- }
-#Surface sensible heat flux
-'sshf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface latent heat flux
-'slhf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Mean sea level pressure
-'msl' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 101 ;
- }
-#Divergence
-'d' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 13 ;
- }
-#Geopotential height
-'gh' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- }
-#Relative humidity
-'r' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#10 metre U wind component
-'u10' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#10 metre V wind component
-'v10' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre temperature
-'t2m' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre dewpoint temperature
-'d2m' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Land-sea mask
-'lsm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Surface net short-wave (solar) radiation
-'ssr' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface net long-wave (thermal) radiation
-'str' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Top net long-wave (thermal) radiation
-'ttr' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 8 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Sunshine duration
-'sund' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Brightness temperature
-'btmp' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 4 ;
- }
-#10 metre wind speed
-'si10' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 1 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Skin temperature
-'skt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Latent heat net flux
-'lhtfl' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Heat index
-'heatx' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Wind chill factor
-'wcf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Minimum dew point depression
-'mindpd' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Snow phase change heat flux
-'snohf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Vapor pressure
-'vapp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Large scale precipitation (non-convective)
-'ncpcp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Snowfall rate water equivalent
-'srweq' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Convective snow
-'snoc' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 14 ;
- }
-#Large scale snow
-'snol' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 15 ;
- }
-#Snow age
-'snoag' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 17 ;
- }
-#Absolute humidity
-'absh' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 18 ;
- }
-#Precipitation type
-'ptype' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 19 ;
- }
-#Integrated liquid water
-'iliqw' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 20 ;
- }
-#Condensate
-'tcond' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 21 ;
- }
-#Cloud mixing ratio
-'clwmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 22 ;
- }
-#Ice water mixing ratio
-'icmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 23 ;
- }
-#Rain mixing ratio
-'rwmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 24 ;
- }
-#Snow mixing ratio
-'snmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 25 ;
- }
-#Horizontal moisture convergence
-'mconv' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 26 ;
- }
-#Maximum relative humidity
-'maxrh' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 27 ;
- }
-#Maximum absolute humidity
-'maxah' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 28 ;
- }
-#Precipitable water category
-'pwcat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 30 ;
- }
-#Hail
-'hail' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 31 ;
- }
-#Graupel (snow pellets)
-'grle' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 32 ;
- }
-#Categorical rain
-'crain' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 33 ;
- }
-#Categorical freezing rain
-'cfrzr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 34 ;
- }
-#Categorical ice pellets
-'cicep' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 35 ;
- }
-#Categorical snow
-'csnow' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 36 ;
- }
-#Convective precipitation rate
-'cprat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 37 ;
- }
-#Horizontal moisture divergence
-'mdiv' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 38 ;
- }
-#Percent frozen precipitation
-'cpofp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 39 ;
- }
-#Potential evaporation
-'pevap' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 40 ;
- }
-#Snow cover
-'snowc' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 42 ;
- }
-#Rain fraction of total cloud water
-'frain' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 43 ;
- }
-#Rime factor
-'rime' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 44 ;
- }
-#Total column integrated rain
-'tcolr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 45 ;
- }
-#Total column integrated snow
-'tcols' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 46 ;
- }
-#Large scale water precipitation (non-convective)
-'lswp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 47 ;
- }
-#Convective water precipitation
-'cwp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 48 ;
- }
-#Total water precipitation
-'twatp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 49 ;
- }
-#Total snow precipitation
-'tsnowp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 50 ;
- }
-#Total column water (Vertically integrated total water (vapour + cloud water/ice))
-'tcwat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- }
-#Total precipitation rate
-'tprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Total snowfall rate water equivalent
-'tsrwe' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 53 ;
- }
-#Large scale precipitation rate
-'lsprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 54 ;
- }
-#Total snowfall rate
-'tsrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 57 ;
- }
-#Convective snowfall rate
-'csrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 58 ;
- }
-#Large scale snowfall rate
-'lssrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 59 ;
- }
-#Water equivalent of accumulated snow depth (deprecated)
-'sdwe' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Rain precipitation rate
-'rprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 65 ;
- }
-#Snow precipitation rate
-'sprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 66 ;
- }
-#Freezing rain precipitation rate
-'fprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 67 ;
- }
-#Ice pellets precipitation rate
-'iprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 68 ;
- }
-#Momentum flux, u component
-'uflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 17 ;
- }
-#Momentum flux, v component
-'vflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 18 ;
- }
-#Maximum wind speed
-'maxgust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 21 ;
- }
-#Wind speed (gust)
-'gust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- }
-#u-component of wind (gust)
-'ugust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 23 ;
- }
-#v-component of wind (gust)
-'vgust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 24 ;
- }
-#Vertical speed shear
-'vwsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 25 ;
- }
-#Horizontal momentum flux
-'mflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 26 ;
- }
-#U-component storm motion
-'ustm' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 27 ;
- }
-#V-component storm motion
-'vstm' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 28 ;
- }
-#Drag coefficient
-'cd' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 29 ;
- }
-#Frictional velocity
-'fricv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 30 ;
- }
-#Pressure reduced to MSL
-'prmsl' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 1 ;
- }
-#Altimeter setting
-'alts' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Thickness
-'thick' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Pressure altitude
-'presalt' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Density altitude
-'denalt' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#5-wave geopotential height
-'wavh5' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Zonal flux of gravity wave stress
-'p260081' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Meridional flux of gravity wave stress
-'p260082' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#5-wave geopotential height anomaly
-'p260084' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 19 ;
- }
-#Net short-wave radiation flux (top of atmosphere)
-'nswrt' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Downward short-wave radiation flux
-'dswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 7 ;
- }
-#Upward short-wave radiation flux
-'uswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 8 ;
- }
-#Net short wave radiation flux
-'nswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- }
-#Photosynthetically active radiation
-'photar' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 10 ;
- }
-#Net short-wave radiation flux, clear sky
-'nswrfcs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 11 ;
- }
-#Downward UV radiation
-'dwuvr' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 12 ;
- }
-#UV index (under clear sky)
-'uviucs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 50 ;
- }
-#UV index
-'uvi' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 51 ;
- }
-#Net long wave radiation flux (surface)
-'nlwrs' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 0 ;
- }
-#Net long wave radiation flux (top of atmosphere)
-'nlwrt' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 1 ;
- }
-#Downward long-wave radiation flux
-'dlwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 3 ;
- }
-#Upward long-wave radiation flux
-'ulwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 4 ;
- }
-#Net long wave radiation flux
-'nlwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- }
-#Net long-wave radiation flux, clear sky
-'nlwrcs' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 6 ;
- }
-#Cloud Ice
-'cice' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 0 ;
- }
-#Cloud water
-'cwat' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 6 ;
- }
-#Cloud amount
-'cdca' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 7 ;
- }
-#Cloud type
-'cdct' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 8 ;
- }
-#Thunderstorm maximum tops
-'tmaxt' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 9 ;
- }
-#Thunderstorm coverage
-'thunc' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 10 ;
- }
-#Cloud top
-'cdct' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 12 ;
- }
-#Ceiling
-'ceil' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 13 ;
- }
-#Non-convective cloud cover
-'cdlyr' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 14 ;
- }
-#Cloud work function
-'cwork' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 15 ;
- }
-#Convective cloud efficiency
-'cuefi' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 16 ;
- }
-#Total condensate
-'tcond' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 17 ;
- }
-#Total column-integrated cloud water
-'tcolw' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 18 ;
- }
-#Total column-integrated cloud ice
-'tcoli' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 19 ;
- }
-#Total column-integrated condensate
-'tcolc' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 20 ;
- }
-#Ice fraction of total condensate
-'fice' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 21 ;
- }
-#Cloud ice mixing ratio
-'cdcimr' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 23 ;
- }
-#Sunshine
-'suns' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- }
-#Horizontal extent of cumulonimbus (CB)
-'p260120' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 25 ;
- }
-#K index
-'kx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 2 ;
- }
-#KO index
-'kox' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 3 ;
- }
-#Total totals index
-'totalx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 4 ;
- }
-#Sweat index
-'sx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 5 ;
- }
-#Storm relative helicity
-'hlcy' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 8 ;
- }
-#Energy helicity index
-'ehlx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 9 ;
- }
-#Surface lifted index
-'lftx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 10 ;
- }
-#Best (4-layer) lifted index
-'lftx4' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 11 ;
- }
-#Aerosol type
-'aerot' = {
- discipline = 0 ;
- parameterCategory = 13 ;
- parameterNumber = 0 ;
- }
-#Total ozone
-'tozne' = {
- discipline = 0 ;
- parameterCategory = 14 ;
- parameterNumber = 0 ;
- }
-#Base spectrum width
-'bswid' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 0 ;
- }
-#Base reflectivity
-'bref' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 1 ;
- }
-#Base radial velocity
-'brvel' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 2 ;
- }
-#Vertically-integrated liquid
-'veril' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 3 ;
- }
-#Layer-maximum base reflectivity
-'lmaxbr' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 4 ;
- }
-#Precipitation
-'prec' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 5 ;
- }
-#Air concentration of Caesium 137
-'acces' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 0 ;
- }
-#Air concentration of Iodine 131
-'aciod' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 1 ;
- }
-#Air concentration of radioactive pollutant
-'acradp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 2 ;
- }
-#Ground deposition of Caesium 137
-'gdces' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 3 ;
- }
-#Ground deposition of Iodine 131
-'gdiod' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 4 ;
- }
-#Ground deposition of radioactive pollutant
-'gdradp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 5 ;
- }
-#Time-integrated air concentration of caesium pollutant
-'tiaccp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 6 ;
- }
-#Time-integrated air concentration of iodine pollutant
-'tiacip' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 7 ;
- }
-#Time-integrated air concentration of radioactive pollutant
-'tiacrp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 8 ;
- }
-#Volcanic ash
-'volash' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 4 ;
- }
-#Icing top
-'icit' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 5 ;
- }
-#Icing base
-'icib' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 6 ;
- }
-#Icing
-'ici' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 7 ;
- }
-#Turbulence top
-'turbt' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 8 ;
- }
-#Turbulence base
-'turbb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 9 ;
- }
-#Turbulence
-'turb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 10 ;
- }
-#Turbulent kinetic energy
-'tke' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 11 ;
- }
-#Planetary boundary layer regime
-'pblreg' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 12 ;
- }
-#Contrail intensity
-'conti' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 13 ;
- }
-#Contrail engine type
-'contet' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 14 ;
- }
-#Contrail top
-'contt' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 15 ;
- }
-#Contrail base
-'contb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 16 ;
- }
-#Maximum snow albedo
-'mxsalb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 17 ;
- }
-#Snow free albedo
-'snfalb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 18 ;
- }
-#Icing
-'p260163' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 20 ;
- }
-#In-cloud turbulence
-'p260164' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 21 ;
- }
-#Relative clear air turbulence (RCAT)
-'rcat' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 22 ;
- }
-#Supercooled large droplet probability (see Note 4)
-'p260166' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 23 ;
- }
-#Arbitrary text string
-'var190m0' = {
- discipline = 0 ;
- parameterCategory = 190 ;
- parameterNumber = 0 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'tsec' = {
- discipline = 0 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
-'ffldg' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
-'ffldro' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Remotely sensed snow cover
-'rssc' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Elevation of snow covered terrain
-'esct' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Snow water equivalent percent of normal
-'swepon' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Baseflow-groundwater runoff
-'bgrun' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Storm surface runoff
-'ssrun' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
-'cppop' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
-'pposp' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Probability of 0.01 inch of precipitation (POP)
-'pop' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Vegetation
-'veg' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Water runoff
-'watr' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Evapotranspiration
-'evapt' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Model terrain height
-'mterh' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Land use
-'landu' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Ground heat flux
-'gflux' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Moisture availability
-'mstav' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Exchange coefficient
-'sfexc' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Plant canopy surface water
-'cnwat' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Blackadar mixing length scale
-'bmixl' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Canopy conductance
-'ccond' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 15 ;
- }
-#Minimal stomatal resistance
-'rsmin' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Solar parameter in canopy conductance
-'rcs' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 18 ;
- }
-#Temperature parameter in canopy conductance
-'rct' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 19 ;
- }
-#Soil moisture parameter in canopy conductance
-'rcsol' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 20 ;
- }
-#Humidity parameter in canopy conductance
-'rcq' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#Column-integrated soil water
-'cisoilw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 23 ;
- }
-#Heat flux
-'hflux' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 24 ;
- }
-#Volumetric soil moisture
-'vsw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- }
-#Volumetric wilting point
-'vwiltm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 27 ;
- }
-#Number of soil layers in root zone
-'rlyrs' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Liquid volumetric soil moisture (non-frozen)
-'liqvsm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Volumetric transpiration stress-onset (soil moisture)
-'voltso' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Transpiration stress-onset (soil moisture)
-'transo' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Volumetric direct evaporation cease (soil moisture)
-'voldec' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Direct evaporation cease (soil moisture)
-'direc' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#Soil porosity
-'soilp' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Volumetric saturation of soil moisture
-'vsosm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Saturation of soil moisture
-'satosm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#Estimated precipitation
-'estp' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Instantaneous rain rate
-'irrate' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Cloud top height
-'ctoph' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Cloud top height quality indicator
-'ctophqi' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Estimated u component of wind
-'estu' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Estimated v component of wind
-'estv' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Number of pixels used
-'npixu' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 6 ;
- }
-#Solar zenith angle
-'solza' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Relative azimuth angle
-'raza' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 8 ;
- }
-#Reflectance in 0.6 micron channel
-'rfl06' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Reflectance in 0.8 micron channel
-'rfl08' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Reflectance in 1.6 micron channel
-'rfl16' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 11 ;
- }
-#Reflectance in 3.9 micron channel
-'rfl39' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Atmospheric divergence
-'atmdiv' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Direction of wind waves
-'wvdir' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Primary wave direction
-'dirpw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Primary wave mean period
-'perpw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Secondary wave mean period
-'persw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Current direction
-'dirc' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Current speed
-'spc' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Geometric vertical velocity
-'wz' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 9 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'tsec' = {
- discipline = 10 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Forecast albedo
-'al' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 1 ;
- }
-#Pressure tendency
-'ptend' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 2 ;
- }
-#ICAO Standard Atmosphere reference height
-'icaht' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 3 ;
- }
-#Geometrical height
-'h' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Standard deviation of height
-'hstdv' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 7 ;
- }
-#Maximum temperature
-'tmax' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Minimum temperature
-'tmin' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Dew point temperature
-'dpt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Lapse rate
-'lapr' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Visibility
-'vis' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 0 ;
- }
-#Radar spectra (1)
-'rdsp1' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 6 ;
- }
-#Radar spectra (2)
-'rdsp2' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 7 ;
- }
-#Radar spectra (3)
-'rdsp3' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 8 ;
- }
-#Parcel lifted index (to 500 hPa)
-'pli' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 0 ;
- }
-#Temperature anomaly
-'ta' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 9 ;
- }
-#Pressure anomaly
-'presa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 8 ;
- }
-#Geopotential height anomaly
-'gpa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 9 ;
- }
-#Wave spectra (1)
-'wvsp1' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Wave spectra (2)
-'wvsp2' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Wave spectra (3)
-'wvsp3' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Sigma coordinate vertical velocity
-'sgcvv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Absolute vorticity
-'absv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 10 ;
- }
-#Absolute divergence
-'absd' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 11 ;
- }
-#Vertical u-component shear
-'vucsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 15 ;
- }
-#Vertical v-component shear
-'vvcsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 16 ;
- }
-#U-component of current
-'ucurr' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#V-component of current
-'vcurr' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Precipitable water
-'pwat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Saturation deficit
-'satd' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Precipitation rate
-'prate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Thunderstorm probability
-'tstm' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 2 ;
- }
-#Convective precipitation (water)
-'acpcp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Mixed layer depth
-'mld' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 3 ;
- }
-#Transient thermocline depth
-'tthdp' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 2 ;
- }
-#Main thermocline anomaly
-'mtha' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Best lifted index (to 500 hPa)
-'bli' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 1 ;
- }
-#Soil moisture content
-'ssw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Salinity
-'s' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Density
-'den' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Direction of ice drift
-'diced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#Speed of ice drift
-'siced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Ice divergence
-'iced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Direction of swell waves
-'swdir' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Secondary wave direction
-'dirsw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Net short-wave radiation flux (surface)
-'nswrs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 0 ;
- }
-#Global radiation flux
-'grad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Radiance (with respect to wave number)
-'lwrad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 5 ;
- }
-#Radiance (with respect to wave length)
-'swrad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 6 ;
- }
-#Wind mixing energy
-'wmixe' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 19 ;
- }
-#10 metre wind gust of at least 15 m/s
-'fg10g15' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 15 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#10 metre wind gust of at least 20 m/s
-'fg10g20' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Convective inhibition
-'cin' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 7 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Orography
-'orog' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Soil moisture
-'sm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
#Soil temperature
'st' = {
discipline = 2 ;
@@ -10089,4 +11058,34 @@
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
+ }
+#U-component surface stokes drift
+'ust' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#V-component surface stokes drift
+'vst' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
+#100 metre U wind component
+'u100' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#100 metre V wind component
+'v100' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
}
diff --git a/definitions/grib2/cfVarName.legacy.def b/definitions/grib2/cfVarName.legacy.def
index ab51bf25c..40909c342 100644
--- a/definitions/grib2/cfVarName.legacy.def
+++ b/definitions/grib2/cfVarName.legacy.def
@@ -52,3 +52,131 @@
parameterCategory = 3 ;
parameterNumber = 9 ;
}
+#Instantaneous eastward turbulent surface stress
+'iews' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 38 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Instantaneous northward turbulent surface stress
+'inss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 37 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Evaporation in the last 6 hours
+'eva06' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 79 ;
+ typeOfFirstFixedSurface = 1 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 6 ;
+}
+#Time-mean evapotranspiration rate in the last 24h
+'avg_et24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated potential evapotranspiration rate in the last 24h
+'acc_pet24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean potential evapotranspiration rate in the last 24h
+'avg_pet24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean volumetric soil moisture
+'avg_swv24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated water runoff and drainage rate in the last 24h
+'acc_rod24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean water runoff and drainage rate in the last 24h
+'avg_rod24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean snow depth water equivalent
+'avg_sd24' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean skin temperature
+'avg_skt24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated snow melt rate in the last 24h
+'acc_smr24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 41 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Upward sea water velocity
+'wo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+}
+#Time-mean upward sea water velocity
+'avg_wo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+}
+#Maximum individual wave height
+'hmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+}
diff --git a/definitions/grib2/combinationOfAttributesOfTileConcept.def b/definitions/grib2/combinationOfAttributesOfTileConcept.def
new file mode 100644
index 000000000..a220e5f32
--- /dev/null
+++ b/definitions/grib2/combinationOfAttributesOfTileConcept.def
@@ -0,0 +1,41 @@
+# Concept combinationOfAttributesOfTile
+
+'UNDEF' = {attributeOfTile = [0];}
+'UNMOD' = {attributeOfTile = [1];}
+'SNOW' = {attributeOfTile = [2];}
+'FLOOD' = {attributeOfTile = [3];}
+'ICE' = {attributeOfTile = [4];}
+'ITCW' = {attributeOfTile = [5];}
+'ITCS' = {attributeOfTile = [6];}
+'AGG' = {attributeOfTile = [7];}
+
+'SNOW_FLOOD' = {attributeOfTile = [2,3];}
+'SNOW_ICE' = {attributeOfTile = [2,4];}
+'SNOW_ITCW' = {attributeOfTile = [2,5];}
+'SNOW_ITCS' = {attributeOfTile = [2,6];}
+'FLOOD_ICE' = {attributeOfTile = [3,4];}
+'FLOOD_ITCW' = {attributeOfTile = [3,5];}
+'FLOOD_ITCS' = {attributeOfTile = [3,6];}
+'ICE_ITCW' = {attributeOfTile = [4,5];}
+'ICE_ITCS' = {attributeOfTile = [4,6];}
+'ITCW_ITCS' = {attributeOfTile = [5,6];}
+
+'SNOW_FLOOD_ICE' = {attributeOfTile = [2,3,4];}
+'SNOW_FLOOD_ITCW' = {attributeOfTile = [2,3,5];}
+'SNOW_FLOOD_ITCS' = {attributeOfTile = [2,3,6];}
+'SNOW_ICE_ITCW' = {attributeOfTile = [2,4,5];}
+'SNOW_ICE_ITCS' = {attributeOfTile = [2,4,6];}
+'SNOW_ITCW_ITCS' = {attributeOfTile = [2,5,6];}
+'FLOOD_ICE_ITCW' = {attributeOfTile = [3,4,5];}
+'FLOOD_ICE_ITCS' = {attributeOfTile = [3,4,6];}
+'FLOOD_ITCW_ITCS' = {attributeOfTile = [3,5,6];}
+'ICE_ITCW_ITCS' = {attributeOfTile = [4,5,6];}
+
+'SNOW_FLOOD_ICE_ITCW' = {attributeOfTile = [2,3,4,5];}
+'SNOW_FLOOD_ICE_ITCS' = {attributeOfTile = [2,3,4,6];}
+'SNOW_FLOOD_ITCW_ITCS' = {attributeOfTile = [2,3,5,6];}
+'SNOW_ICE_ITCW_ITCS' = {attributeOfTile = [2,4,5,6];}
+'FLOOD_ICE_ITCW_ITCS' = {attributeOfTile = [3,4,5,6];}
+
+'SNOW_FLOOD_ICE_ITCW_ITCS' = {attributeOfTile = [2,3,4,5,6];}
+
diff --git a/definitions/grib2/destineLocalVersion.table b/definitions/grib2/destineLocalVersion.table
new file mode 100644
index 000000000..5d488d2ae
--- /dev/null
+++ b/definitions/grib2/destineLocalVersion.table
@@ -0,0 +1 @@
+1 1 MARS labeling
diff --git a/definitions/grib2/destine_activity.table b/definitions/grib2/destine_activity.table
new file mode 100644
index 000000000..b7c3e8d86
--- /dev/null
+++ b/definitions/grib2/destine_activity.table
@@ -0,0 +1,6 @@
+0 unknown unknown
+1 CMIP6 Coupled Model Intercomparison Project Phase 6
+2 ScenarioMIP Scenario Model Intercomparison Project
+3 HighResMIP High Resolution Model Intercomparison Project
+4 story-nudging Climate storylines by nudging to reanalysis
+65535 65535 Missing
diff --git a/definitions/grib2/destine_dataset.table b/definitions/grib2/destine_dataset.table
new file mode 100644
index 000000000..58b82fc41
--- /dev/null
+++ b/definitions/grib2/destine_dataset.table
@@ -0,0 +1,6 @@
+0 unknown unknown
+1 climate-dt Climate change adaptation digital twin
+2 extremes-dt Weather and geophysical extremes digital twin
+3 on-demand-climate-dt On-demand climate change adaptation digital twin
+4 on-demand-extremes-dt On-demand weather and geophysical extremes digital twin
+65535 65535 Missing
diff --git a/definitions/grib2/destine_experiment.table b/definitions/grib2/destine_experiment.table
new file mode 100644
index 000000000..864ef9260
--- /dev/null
+++ b/definitions/grib2/destine_experiment.table
@@ -0,0 +1,14 @@
+0 unknown unknown
+1 hist Historical
+2 cont Control
+3 amip Atmospheric Model Intercomparison Project
+4 SSP1-1.9 Shared Socio-economic Pathways 1-1.9
+5 SSP1-2.6 Shared Socio-economic Pathways 1-2.6
+6 SSP2-4.5 Shared Socio-economic Pathways 2-4.5
+7 SSP3-7.0 Shared Socio-economic Pathways 3-7.0
+8 SSP5-8.5 Shared Socio-economic Pathways 5-8.5
+9 Tplus1.5K Warmer world at 1.5 degrees K above pre-industrial temperatures
+10 Tplus2.0K Warmer world at 2.0 degrees K above pre-industrial temperatures
+11 Tplus3.0K Warmer world at 3.0 degrees K above pre-industrial temperatures
+12 Tplus4.0K Warmer world at 4.0 degrees K above pre-industrial temperatures
+65535 65535 Missing
diff --git a/definitions/grib2/destine_model.table b/definitions/grib2/destine_model.table
new file mode 100644
index 000000000..1e33fbac1
--- /dev/null
+++ b/definitions/grib2/destine_model.table
@@ -0,0 +1,6 @@
+0 unknown unknown
+1 IFS IFS with no ocean model
+2 IFS-NEMO IFS with NEMO ocean model
+3 IFS-FESOM IFS with FESOM ocean model
+4 ICON ICON with no ocean model
+65535 65535 Missing
diff --git a/definitions/grib2/destine_resolution.table b/definitions/grib2/destine_resolution.table
new file mode 100644
index 000000000..1df78ebbc
--- /dev/null
+++ b/definitions/grib2/destine_resolution.table
@@ -0,0 +1,4 @@
+0 unknown unknown
+1 standard Standard resolution model output with longer availability
+2 high High resolution model output with limited availability
+65535 65535 Missing
diff --git a/definitions/grib2/grib2LocalSectionNumber.98.table b/definitions/grib2/grib2LocalSectionNumber.98.table
index dcb8e84cd..26d0b1ec0 100644
--- a/definitions/grib2/grib2LocalSectionNumber.98.table
+++ b/definitions/grib2/grib2LocalSectionNumber.98.table
@@ -21,6 +21,7 @@
39 39 4DVar model errors for long window 4Dvar system
41 41 The Flood Awareness System
42 42 Lead Centre for Wave Forecast Verification
+43 43 EERIE project MARS labelling
60 60 Ocean data analysis date and analysis time
192 192 Multiple ECMWF local definitions
300 300 Multi-dimensional parameters (deprecated)
diff --git a/definitions/grib2/local.82.0.def b/definitions/grib2/local.82.0.def
index e7f911843..010389e75 100644
--- a/definitions/grib2/local.82.0.def
+++ b/definitions/grib2/local.82.0.def
@@ -1,12 +1,6 @@
-#########################
-#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
-#################################
-### LOCAL SECTION DESCRIPTION ###
-#################################
-
#
# This piece of definition is common to all SMHI definitions
# It is only accessed through "include" statement inside local.82.x.def
@@ -15,13 +9,11 @@
codetable[1] marsClass "mars/eswi/class.table" : dump,lowercase;
codetable[1] marsType "mars/eswi/type.table" : dump,lowercase,string_type;
codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type;
-ksec1expver[4] experimentVersionNumber = "0000" : dump;
+ksec1expver[4] experimentVersionNumber = "0000" : dump;
# For now, Ensemble stuff is desactivated because it is not used yet
# instead we use a padding of 2
-#unsigned[1] perturbationNumber : dump;
-#unsigned[1] numberOfForecastsInEnsemble : dump;
+#unsigned[1] perturbationNumber : dump;
+#unsigned[1] numberOfForecastsInEnsemble : dump;
pad reservedNeedNotBePresent(2);
codetable[1] marsModel "mars/eswi/model.table" : dump,lowercase,string_type;
-
-
diff --git a/definitions/grib2/local.82.82.def b/definitions/grib2/local.82.82.def
index c6e2bbe95..19122045b 100644
--- a/definitions/grib2/local.82.82.def
+++ b/definitions/grib2/local.82.82.def
@@ -1,15 +1,9 @@
-#########################
-#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
-#################################
-### LOCAL SECTION DESCRIPTION ###
-#################################
# base local definition
include "grib2/local.82.0.def";
unsigned[1] marsExperimentOffset = 0 : dump, long_type;
-
diff --git a/definitions/grib2/local.82.83.def b/definitions/grib2/local.82.83.def
index 4b76a8cd1..199c3709b 100644
--- a/definitions/grib2/local.82.83.def
+++ b/definitions/grib2/local.82.83.def
@@ -1,21 +1,14 @@
-#################################################
-#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
-#################################
-### LOCAL SECTION DESCRIPTION ###
-#################################
-
# base file: contains keywords always present
include "grib2/local.82.0.def";
# extra keywords specific to local definition 83 (MATCH)
-codetable[1] matchSort "grib1/localConcepts/eswi/sort.table" : dump,long_type;
-codetable[1] matchTimeRepres "grib1/localConcepts/eswi/timerepres.table" : dump,long_type;
-codetable[1] matchLandType "grib1/localConcepts/eswi/landtype.table" : dump,long_type;
-codetable[2] matchAerosolBinNumber "grib1/localConcepts/eswi/aerosolbinnumber.table" : dump,long_type;
-unsigned[2] meanSize : dump;
-
+codetable[1] matchSort "grib1/localConcepts/eswi/sort.table" : dump,long_type;
+codetable[1] matchTimeRepres "grib1/localConcepts/eswi/timerepres.table" : dump,long_type;
+codetable[1] matchLandType "grib1/localConcepts/eswi/landtype.table" : dump,long_type;
+codetable[2] matchAerosolBinNumber "grib1/localConcepts/eswi/aerosolbinnumber.table" : dump,long_type;
+unsigned[2] meanSize : dump;
diff --git a/definitions/grib2/local.82.def b/definitions/grib2/local.82.def
index 2e38242c3..66a428194 100644
--- a/definitions/grib2/local.82.def
+++ b/definitions/grib2/local.82.def
@@ -3,20 +3,12 @@
alias localDefinitionNumber=grib2LocalSectionNumber;
template localSection "grib2/local.[centreForLocal:l].[grib2LocalSectionNumber:l].def";
-#####################
### MARS LABELING ###
-#####################
-
template mars_labeling "grib2/mars_labeling.82.def";
template_nofail marsKeywords "mars/eswi/grib2.[stream:s].[type:s].def";
-###################
### LS LABELING ###
-###################
-
template ls_labeling "grib2/ls_labeling.82.def";
-
position offsetAfterLocalSection;
-
diff --git a/definitions/grib2/local.98.1.def b/definitions/grib2/local.98.1.def
index b8b49723e..1afea9783 100644
--- a/definitions/grib2/local.98.1.def
+++ b/definitions/grib2/local.98.1.def
@@ -1,3 +1 @@
-label "_local 98.1";
-
-
+label "_x";
diff --git a/definitions/grib2/local.98.28.def b/definitions/grib2/local.98.28.def
index eeb30d063..cf801b6fc 100644
--- a/definitions/grib2/local.98.28.def
+++ b/definitions/grib2/local.98.28.def
@@ -1,4 +1,6 @@
-# Local Definition 28 - COSMO local area EPS
+# (C) Copyright 2005- ECMWF.
+
+# Local definition 28 - COSMO local area EPS
unsigned[4] baseDateEPS : dump;
unsigned[2] baseTimeEPS : dump;
diff --git a/definitions/grib2/local.98.42.def b/definitions/grib2/local.98.42.def
index 1bb73af47..48b891ed9 100644
--- a/definitions/grib2/local.98.42.def
+++ b/definitions/grib2/local.98.42.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-# Definition 42 - WMO Lead Centre for Wave Forecast Verification (LC-WFV)
+# Local definition 42 - WMO Lead Centre for Wave Forecast Verification (LC-WFV)
codetable[2] lcwfvSuiteName "grib2/lcwfv_suiteName.table" : dump;
alias mars.origin = lcwfvSuiteName;
diff --git a/definitions/grib2/local.98.43.def b/definitions/grib2/local.98.43.def
new file mode 100644
index 000000000..3728cd185
--- /dev/null
+++ b/definitions/grib2/local.98.43.def
@@ -0,0 +1,21 @@
+# (C) Copyright 2005- ECMWF.
+
+# Local definition 43 - Class ed EERIE project climate keywords
+
+# CMIP related activity keyword
+codetable[2] activity "grib2/destine_activity.table" ;
+alias mars.activity = activity;
+
+# CMIP related experiment keyword
+codetable[2] experiment "grib2/destine_experiment.table" ;
+alias mars.experiment = experiment;
+
+# Climate run realization keyword, which relates to an initial condition perturbation
+unsigned[1] realization = 255 ;
+alias mars.realization = realization;
+
+# Remove mars domain from this data
+unalias mars.domain;
+
+# Add some padding just in case we want more keys in the future
+pad padding_loc43(30);
diff --git a/definitions/grib2/local.destine.1.def b/definitions/grib2/local.destine.1.def
new file mode 100644
index 000000000..ccb9bfbfd
--- /dev/null
+++ b/definitions/grib2/local.destine.1.def
@@ -0,0 +1,7 @@
+# DestinE MARS layout
+
+# Base keywords for all datasets
+include "grib2/local.destine.base.def"
+
+# Keywords based on dataset
+template_nofail datasetTemplate "grib2/local.destine.[dataset:s].def";
diff --git a/definitions/grib2/local.destine.base.def b/definitions/grib2/local.destine.base.def
new file mode 100644
index 000000000..9a87b6b9a
--- /dev/null
+++ b/definitions/grib2/local.destine.base.def
@@ -0,0 +1,4 @@
+# DestinE MARS base keywords
+
+codetable[2] dataset "grib2/destine_dataset.table" : dump;
+alias mars.dataset = dataset;
\ No newline at end of file
diff --git a/definitions/grib2/local.destine.climate-dt.def b/definitions/grib2/local.destine.climate-dt.def
new file mode 100644
index 000000000..61df737fc
--- /dev/null
+++ b/definitions/grib2/local.destine.climate-dt.def
@@ -0,0 +1,19 @@
+# DestinE MARS ClimateDT keywords
+
+codetable[2] activity "grib2/destine_activity.table" : dump;
+alias mars.activity = activity;
+
+codetable[2] experiment "grib2/destine_experiment.table" : dump;
+alias mars.experiment = experiment;
+
+unsigned[1] generation = 255 : dump;
+alias mars.generation = generation;
+
+codetable[2] model "grib2/destine_model.table" : dump;
+alias mars.model = model;
+
+unsigned[1] realization = 255 : dump;
+alias mars.realization = realization;
+
+codetable[2] resolution "grib2/destine_resolution.table" : dump;
+alias mars.resolution = resolution;
diff --git a/definitions/grib2/localConcepts/cerise/cfName.def b/definitions/grib2/localConcepts/cerise/cfName.def
new file mode 100644
index 000000000..741709b44
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/cfName.def
@@ -0,0 +1,53 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'lwe_thickness_of_stratiform_precipitation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'lwe_thickness_of_convective_precipitation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'lwe_thickness_of_snowfall_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'cloud_area_fraction' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'lwe_thickness_of_water_evaporation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+}
diff --git a/definitions/grib2/localConcepts/cerise/cfVarName.def b/definitions/grib2/localConcepts/cerise/cfVarName.def
new file mode 100644
index 000000000..0ccc6c90f
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/cfVarName.def
@@ -0,0 +1,258 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'sro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'ssro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum temperature at 2 metres in the last 24 hours
+'mx2t24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Minimum temperature at 2 metres in the last 24 hours
+'mn2t24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Snow depth
+'sd' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'lsp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'cp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'sf' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'tcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'e' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'lcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Runoff
+'ro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total precipitation
+'tp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'fal' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Mean surface runoff rate
+'msror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'mssror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Potential evaporation
+'pev' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean snow depth
+'msd_m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'mlcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'mmcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'mhcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'mfal_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean large-scale precipitation rate
+'mlsprt' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean convective precipitation rate
+'cprate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total snowfall rate
+'mtsfr' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Evaporation
+'erate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean runoff rate
+'mrort' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total precipitation rate
+'tprate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total cloud cover
+'meantcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+}
diff --git a/definitions/grib2/localConcepts/cerise/name.def b/definitions/grib2/localConcepts/cerise/name.def
new file mode 100644
index 000000000..cac36cdea
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/name.def
@@ -0,0 +1,258 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'Surface runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'Sub-surface runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum temperature at 2 metres in the last 24 hours
+'Maximum temperature at 2 metres in the last 24 hours' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Minimum temperature at 2 metres in the last 24 hours
+'Minimum temperature at 2 metres in the last 24 hours' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Snow depth
+'Snow depth' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'Large-scale precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'Convective precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'Snowfall' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'Total cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'Evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'Low cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Runoff
+'Runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total precipitation
+'Total precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'Forecast albedo' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Mean surface runoff rate
+'Mean surface runoff rate' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'Mean sub-surface runoff rate' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Potential evaporation
+'Potential evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean snow depth
+'Time-mean snow depth' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'Time-mean low cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'Time-mean medium cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'Time-mean high cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'Time-mean forecast albedo' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean large-scale precipitation rate
+'Mean large-scale precipitation rate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean convective precipitation rate
+'Mean convective precipitation rate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total snowfall rate
+'Mean total snowfall rate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Evaporation
+'Evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean runoff rate
+'Mean runoff rate' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total precipitation rate
+'Mean total precipitation rate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total cloud cover
+'Mean total cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+}
diff --git a/definitions/grib2/localConcepts/cerise/paramId.def b/definitions/grib2/localConcepts/cerise/paramId.def
new file mode 100644
index 000000000..c4af1e971
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/paramId.def
@@ -0,0 +1,258 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'8' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'9' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum temperature at 2 metres in the last 24 hours
+'51' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Minimum temperature at 2 metres in the last 24 hours
+'52' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Snow depth
+'141' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'142' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'143' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'144' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'164' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'182' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'186' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Runoff
+'205' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total precipitation
+'228' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'243' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Mean surface runoff rate
+'172008' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'172009' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Potential evaporation
+'228251' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean snow depth
+'235141' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'235186' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'235187' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'235188' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'235243' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean large-scale precipitation rate
+'172142' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean convective precipitation rate
+'172143' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total snowfall rate
+'172144' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Evaporation
+'172182' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean runoff rate
+'172205' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total precipitation rate
+'172228' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total cloud cover
+'228006' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+}
diff --git a/definitions/grib2/localConcepts/cerise/shortName.def b/definitions/grib2/localConcepts/cerise/shortName.def
new file mode 100644
index 000000000..0ccc6c90f
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/shortName.def
@@ -0,0 +1,258 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'sro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'ssro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum temperature at 2 metres in the last 24 hours
+'mx2t24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Minimum temperature at 2 metres in the last 24 hours
+'mn2t24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Snow depth
+'sd' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'lsp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'cp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'sf' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'tcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'e' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'lcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Runoff
+'ro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total precipitation
+'tp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'fal' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Mean surface runoff rate
+'msror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'mssror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Potential evaporation
+'pev' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean snow depth
+'msd_m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'mlcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'mmcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'mhcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'mfal_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean large-scale precipitation rate
+'mlsprt' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean convective precipitation rate
+'cprate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total snowfall rate
+'mtsfr' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Evaporation
+'erate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean runoff rate
+'mrort' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total precipitation rate
+'tprate' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total cloud cover
+'meantcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+}
diff --git a/definitions/grib2/localConcepts/cerise/units.def b/definitions/grib2/localConcepts/cerise/units.def
new file mode 100644
index 000000000..afc663307
--- /dev/null
+++ b/definitions/grib2/localConcepts/cerise/units.def
@@ -0,0 +1,258 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum temperature at 2 metres in the last 24 hours
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Minimum temperature at 2 metres in the last 24 hours
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 24 ;
+ }
+#Snow depth
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Mean surface runoff rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Potential evaporation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean snow depth
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean large-scale precipitation rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean convective precipitation rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total snowfall rate
+'m of water equivalent s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Evaporation
+'m of water equivalent s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean runoff rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total precipitation rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean total cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+}
diff --git a/definitions/grib2/localConcepts/destine/destineOriginConcept.def b/definitions/grib2/localConcepts/destine/destineOriginConcept.def
new file mode 100644
index 000000000..aabe1dca6
--- /dev/null
+++ b/definitions/grib2/localConcepts/destine/destineOriginConcept.def
@@ -0,0 +1,10 @@
+# Concept destineOrigin
+"DWD" = { centre=98; subCentre=78; }
+"Meteo-France" = { centre=98; subCentre=84; }
+"Meteo-France" = { centre=98; subCentre=85; }
+"MPI-M" = { centre=98; subCentre=252; }
+"AWI" = { centre=98; subCentre=253; }
+"BSC" = { centre=98; subCentre=1000; }
+"CSC" = { centre=98; subCentre=1001; }
+"DKRZ" = { centre=98; subCentre=1002; }
+"Climate DT consortium (CSC,AWI,BSC,MPI-M)" = { centre=98; subCentre=1003; }
diff --git a/definitions/grib2/localConcepts/destine/gridSpecificationConcept.def b/definitions/grib2/localConcepts/destine/gridSpecificationConcept.def
new file mode 100644
index 000000000..1ae35446d
--- /dev/null
+++ b/definitions/grib2/localConcepts/destine/gridSpecificationConcept.def
@@ -0,0 +1,13 @@
+# Concept gridSpecification
+'H16' = {numberOfDataPoints=3072; gridDefinitionTemplateNumber=150; Nside=16;}
+'H32' = {numberOfDataPoints=12288; gridDefinitionTemplateNumber=150; Nside=32;}
+'H64' = {numberOfDataPoints=49152; gridDefinitionTemplateNumber=150; Nside=64;}
+'H128' = {numberOfDataPoints=196608; gridDefinitionTemplateNumber=150; Nside=128;}
+'H256' = {numberOfDataPoints=786432; gridDefinitionTemplateNumber=150; Nside=256;}
+'H512' = {numberOfDataPoints=3145728; gridDefinitionTemplateNumber=150; Nside=512;}
+'H1024' = {numberOfDataPoints=12582912; gridDefinitionTemplateNumber=150; Nside=1024;}
+'O1280' = {numberOfDataPoints=6599680; gridDefinitionTemplateNumber=40; Nj=2560;}
+'O2560' = {numberOfDataPoints=26306560; gridDefinitionTemplateNumber=40; Nj=5120;}
+'O8000' = {numberOfDataPoints=256288000; gridDefinitionTemplateNumber=40; Nj=16000;}
+'F90' = {numberOfDataPoints=65160; gridDefinitionTemplateNumber=0; Ni=360; Nj=181; }
+'F360' = {numberOfDataPoints=1038240; gridDefinitionTemplateNumber=0; Ni=1440; Nj=721; }
diff --git a/definitions/grib2/localConcepts/ecmf/cfName.def b/definitions/grib2/localConcepts/ecmf/cfName.def
index f32ddc9a7..2ef70fa76 100644
--- a/definitions/grib2/localConcepts/ecmf/cfName.def
+++ b/definitions/grib2/localConcepts/ecmf/cfName.def
@@ -476,48 +476,12 @@
parameterCategory = 218 ;
parameterNumber = 200 ;
}
-#Sea water potential temperature
-'sea_water_potential_temperature' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'sea_water_practical_salinity' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'upward_sea_water_velocity' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
-#Sea water sigma theta
-'sea_water_sigma_theta' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Ocean barotropic stream function
'ocean_barotropic_streamfunction' = {
discipline = 192 ;
parameterCategory = 151 ;
parameterNumber = 147 ;
}
-#Surface downward eastward stress
-'surface_downward_eastward_stress' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'surface_downward_northward_stress' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Carbon dioxide mass mixing ratio
'mass_fraction_of_carbon_dioxide_in_air' = {
discipline = 192 ;
diff --git a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def
index e3b2b9750..b343a5b2c 100644
--- a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def
@@ -148,3 +148,39 @@
parameterCategory = 128 ;
parameterNumber = 206 ;
}
+#Sea water potential temperature
+'sea_water_potential_temperature' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'sea_water_practical_salinity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'upward_sea_water_velocity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'sea_water_sigma_theta' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'surface_downward_eastward_stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'surface_downward_northward_stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def
index 4f85bb57e..6794b74a6 100644
--- a/definitions/grib2/localConcepts/ecmf/cfVarName.def
+++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def
@@ -224,18 +224,6 @@
typeOfStatisticalProcessing = 3 ;
lengthOfTimeRange = 24 ;
}
-#Mean temperature at 2 metres in the last 24 hours
-'mean2t24' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours
-'mn2d24' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 56 ;
- }
#Observation count
'obct' = {
discipline = 192 ;
@@ -548,12 +536,6 @@
parameterCategory = 128 ;
parameterNumber = 123 ;
}
-#Surface emissivity
-'emis' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 124 ;
- }
#Vertically integrated total energy
'vite' = {
discipline = 192 ;
@@ -624,18 +606,6 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Surface net radiation
-'snr' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 149 ;
- }
-#Top net radiation
-'tnr' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 150 ;
- }
#Logarithm of surface pressure
'lnsp' = {
discipline = 0 ;
@@ -2597,6 +2567,24 @@
parameterCategory = 171 ;
parameterNumber = 122 ;
}
+#Mean surface runoff rate
+'msror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'mssror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Volcanic ash aerosol mixing ratio
'aermr13' = {
discipline = 192 ;
@@ -13843,6 +13831,214 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean snow depth
+'msd_m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'mlcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'mmcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'mhcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'mfal_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 1
+'covar_t2m_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 1
+'covar_rh2m_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 1
+'covar_ssm_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 2
+'covar_t2m_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 2
+'covar_rh2m_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 2
+'covar_ssm_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 3
+'covar_t2m_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 3
+'covar_rh2m_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 3
+'covar_ssm_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 1
+'covar_t2m_stl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 1
+'covar_rh2m_stl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 2
+'covar_t2m_stl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 2
+'covar_rh2m_stl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 3
+'covar_t2m_stl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 205 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 3
+'covar_rh2m_stl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 206 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 1
+'covar_t2m_tsn1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 207 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 1
+'covar_rh2m_tsn1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 208 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 2
+'covar_t2m_tsn2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 209 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 2
+'covar_rh2m_tsn2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 210 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 3
+'covar_t2m_tsn3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 211 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 3
+'covar_rh2m_tsn3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 212 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
#Surface roughness length for heat
'srlh' = {
localTablesVersion = 1 ;
@@ -14235,18 +14431,6 @@
parameterCategory = 129 ;
parameterNumber = 54 ;
}
-#Mean 2 metre temperature in the last 24 hours gradient
-'mean2t24grd' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours gradient
-'mn2d24grd' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 56 ;
- }
#Downward UV radiation at the surface gradient
'uvbgrd' = {
discipline = 192 ;
@@ -15519,12 +15703,6 @@
parameterCategory = 130 ;
parameterNumber = 231 ;
}
-#Mean vertical velocity
-'mvv' = {
- discipline = 192 ;
- parameterCategory = 130 ;
- parameterNumber = 232 ;
- }
#2m temperature anomaly of at least +2K
't2ag2' = {
discipline = 192 ;
@@ -16423,30 +16601,6 @@
parameterCategory = 140 ;
parameterNumber = 200 ;
}
-#Standard deviation wave height
-'sdhs' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 240 ;
- }
-#Mean of 10 metre wind speed
-'mu10' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 241 ;
- }
-#Mean wind direction
-'mdwi' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 242 ;
- }
-#Standard deviation of 10 metre wind speed
-'sdu' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 243 ;
- }
#2D wave spectra (multiple)
'd2sp' = {
discipline = 192 ;
@@ -16663,24 +16817,6 @@
parameterCategory = 151 ;
parameterNumber = 128 ;
}
-#Sea water potential temperature
-'thetao' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'so' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'wo' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
#Modulus of strain rate tensor
'mst' = {
discipline = 192 ;
@@ -16705,12 +16841,6 @@
parameterCategory = 151 ;
parameterNumber = 137 ;
}
-#Sea water sigma theta
-'sigmat' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Richardson number
'rn' = {
discipline = 192 ;
@@ -16783,18 +16913,6 @@
parameterCategory = 151 ;
parameterNumber = 152 ;
}
-#Surface downward eastward stress
-'taueo' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'tauno' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Turbulent kinetic energy input
'tki' = {
discipline = 192 ;
@@ -17395,198 +17513,6 @@
parameterCategory = 160 ;
parameterNumber = 254 ;
}
-#Surface geopotential
-'p51.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 51 ;
- }
-#Vertical integral of temperature
-'vit' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 54 ;
- }
-#Vertical integral of cloud liquid water
-'vilw' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 56 ;
- }
-#Vertical integral of cloud frozen water
-'viiw' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 57 ;
- }
-#Vertical integral of ozone
-'vioz' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 58 ;
- }
-#Vertical integral of energy conversion
-'viec' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 64 ;
- }
-#Vertical integral of eastward mass flux
-'vimae' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 65 ;
- }
-#Vertical integral of northward mass flux
-'viman' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 66 ;
- }
-#Vertical integral of eastward kinetic energy flux
-'vikee' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 67 ;
- }
-#Vertical integral of northward kinetic energy flux
-'viken' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 68 ;
- }
-#Vertical integral of eastward geopotential flux
-'vige' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 73 ;
- }
-#Vertical integral of northward geopotential flux
-'vign' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 74 ;
- }
-#Vertical integral of eastward total energy flux
-'vitoee' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 75 ;
- }
-#Vertical integral of northward total energy flux
-'vitoen' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 76 ;
- }
-#Vertical integral of eastward ozone flux
-'vioze' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 77 ;
- }
-#Vertical integral of northward ozone flux
-'viozn' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 78 ;
- }
-#Vertical integral of divergence of mass flux
-'vimad' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 81 ;
- }
-#Vertical integral of divergence of kinetic energy flux
-'viked' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 82 ;
- }
-#Vertical integral of divergence of thermal energy flux
-'vithed' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 83 ;
- }
-#Vertical integral of divergence of geopotential flux
-'vigd' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 85 ;
- }
-#Vertical integral of divergence of total energy flux
-'vitoed' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 86 ;
- }
-#Vertical integral of divergence of ozone flux
-'viozd' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 87 ;
- }
-#Variance of geopotential
-'p206.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 206 ;
- }
-#Covariance of geopotential/temperature
-'p207.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 207 ;
- }
-#Variance of temperature
-'p208.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 208 ;
- }
-#Covariance of geopotential/specific humidity
-'p209.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 209 ;
- }
-#Covariance of temperature/specific humidity
-'p210.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 210 ;
- }
-#Variance of specific humidity
-'p211.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 211 ;
- }
-#Covariance of u component/geopotential
-'p212.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 212 ;
- }
-#Covariance of u component/temperature
-'p213.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 213 ;
- }
-#Covariance of u component/specific humidity
-'p214.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 214 ;
- }
-#Variance of u component
-'p215.162' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 215 ;
- }
#Covariance of v component/geopotential
'p216.162' = {
discipline = 192 ;
@@ -18837,21 +18763,30 @@
}
#Mean large-scale precipitation rate
'mlsprt' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 142 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean convective precipitation rate
'cprate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 143 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total snowfall rate
'mtsfr' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 144 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Boundary layer dissipation
'bldrate' = {
@@ -18859,24 +18794,6 @@
parameterCategory = 172 ;
parameterNumber = 145 ;
}
-#Mean surface sensible heat flux
-'msshfl' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 146 ;
- }
-#Mean surface latent heat flux
-'mslhfl' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 147 ;
- }
-#Mean surface net radiation flux
-'msnrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 149 ;
- }
#Mean short-wave heating rate
'mswhr' = {
discipline = 192 ;
@@ -18889,59 +18806,14 @@
parameterCategory = 172 ;
parameterNumber = 154 ;
}
-#Mean surface downward solar radiation flux
-'msdsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 169 ;
- }
-#Mean surface downward thermal radiation flux
-'msdtrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 175 ;
- }
-#Mean surface net solar radiation flux
-'msnsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 176 ;
- }
-#Mean surface net thermal radiation flux
-'msntrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 177 ;
- }
-#Mean top net solar radiation flux
-'mtnsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 178 ;
- }
-#Mean top net thermal radiation flux
-'mtntrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 179 ;
- }
-#East-West surface stress rate of accumulation
-'ewssra' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 180 ;
- }
-#North-South surface stress rate of accumulation
-'nsssra' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 181 ;
- }
#Evaporation
'erate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 182 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean sunshine duration rate
'msdr' = {
@@ -18969,45 +18841,21 @@
}
#Mean runoff rate
'mrort' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 205 ;
- }
-#Top net solar radiation, clear sky
-'p208.172' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 208 ;
- }
-#Top net thermal radiation, clear sky
-'p209.172' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 209 ;
- }
-#Surface net solar radiation, clear sky
-'p210.172' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 210 ;
- }
-#Surface net thermal radiation, clear sky
-'p211.172' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 211 ;
- }
-#Solar insolation rate of accumulation
-'soira' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 212 ;
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total precipitation rate
'tprate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 228 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Convective snowfall
'p239.172' = {
@@ -21697,23 +21545,15 @@
parameterCategory = 220 ;
parameterNumber = 228 ;
}
-#Mean temperature at 2 metres
-'mean2t' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 4 ;
- }
-#Mean of 10 metre wind speed
-'mean10ws' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 5 ;
- }
#Mean total cloud cover
'meantcc' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 6 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Surface temperature significance
'sts' = {
diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def
index d7faa1e1d..c1c9099b5 100644
--- a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def
@@ -1309,3 +1309,465 @@
parameterCategory = 140 ;
parameterNumber = 249 ;
}
+#Mean temperature at 2 metres
+'mean2t' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 4 ;
+}
+#Mean surface net radiation flux
+'msnrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 149 ;
+}
+#Surface net radiation
+'snr' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 149 ;
+}
+#Top net radiation
+'tnr' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 150 ;
+}
+#Surface emissivity
+'emis' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 124 ;
+}
+#Vertical integral of water vapour
+'p55.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 55 ;
+}
+#Snow depth
+'sdsien' = {
+ discipline = 192 ;
+ parameterCategory = 190 ;
+ parameterNumber = 141 ;
+}
+#Mean total snowfall rate
+'mtsfr' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 144 ;
+}
+#Evaporation
+'erate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 182 ;
+}
+#Mean total precipitation rate
+'tprate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 228 ;
+}
+#Mean large-scale precipitation rate
+'mlsprt' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 142 ;
+}
+#Mean convective precipitation rate
+'cprate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 143 ;
+}
+#Mean runoff rate
+'mrort' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 205 ;
+}
+#Mean total cloud cover
+'meantcc' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 6 ;
+}
+#Mean of 10 metre wind speed
+'mean10ws' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 5 ;
+}
+#Sea water potential temperature
+'thetao' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'so' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'wo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'sigmat' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'taueo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'tauno' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
+#Surface geopotential
+'p51.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+}
+#Vertical integral of temperature
+'vit' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+}
+#Vertical integral of cloud liquid water
+'vilw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+}
+#Vertical integral of cloud frozen water
+'viiw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+}
+#Vertical integral of ozone
+'vioz' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+}
+#Vertical integral of energy conversion
+'viec' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+}
+#Vertical integral of eastward mass flux
+'vimae' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+}
+#Vertical integral of northward mass flux
+'viman' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+}
+#Vertical integral of eastward kinetic energy flux
+'vikee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+}
+#Vertical integral of northward kinetic energy flux
+'viken' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+}
+#Vertical integral of eastward geopotential flux
+'vige' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+}
+#Vertical integral of northward geopotential flux
+'vign' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+}
+#Vertical integral of eastward total energy flux
+'vitoee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+}
+#Vertical integral of northward total energy flux
+'vitoen' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+}
+#Vertical integral of eastward ozone flux
+'vioze' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+}
+#Vertical integral of northward ozone flux
+'viozn' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+}
+#Vertical integral of divergence of mass flux
+'vimad' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+}
+#Vertical integral of divergence of kinetic energy flux
+'viked' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+}
+#Vertical integral of divergence of thermal energy flux
+'vithed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+}
+#Vertical integral of divergence of geopotential flux
+'vigd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+}
+#Vertical integral of divergence of total energy flux
+'vitoed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+}
+#Vertical integral of divergence of ozone flux
+'viozd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+}
+#Variance of geopotential
+'p206.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+}
+#Covariance of geopotential/temperature
+'p207.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+}
+#Variance of temperature
+'p208.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+}
+#Covariance of geopotential/specific humidity
+'p209.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+}
+#Covariance of temperature/specific humidity
+'p210.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+}
+#Variance of specific humidity
+'p211.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+}
+#Covariance of u component/geopotential
+'p212.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+}
+#Covariance of u component/temperature
+'p213.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+}
+#Covariance of u component/specific humidity
+'p214.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+}
+#Variance of u component
+'p215.162' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
+#Mean vertical velocity
+'mvv' = {
+ discipline = 192 ;
+ parameterCategory = 130 ;
+ parameterNumber = 232 ;
+}
+#Mean surface sensible heat flux
+'msshfl' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 146 ;
+}
+#Mean surface latent heat flux
+'mslhfl' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 147 ;
+}
+#Mean temperature at 2 metres in the last 24 hours
+'mean2t24' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre temperature in the last 24 hours gradient
+'mean2t24grd' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours
+'mn2d24' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 56 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours gradient
+'mn2d24grd' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 56 ;
+}
+#Mean surface downward solar radiation flux
+'msdsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 169 ;
+}
+#Mean surface downward thermal radiation flux
+'msdtrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 175 ;
+}
+#Mean surface net solar radiation flux
+'msnsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 176 ;
+}
+#Mean surface net thermal radiation flux
+'msntrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 177 ;
+}
+#Mean top net solar radiation flux
+'mtnsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 178 ;
+}
+#Mean top net thermal radiation flux
+'mtntrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 179 ;
+}
+#East-West surface stress rate of accumulation
+'ewssra' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 180 ;
+}
+#North-South surface stress rate of accumulation
+'nsssra' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 181 ;
+}
+#Standard deviation wave height
+'sdhs' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 240 ;
+}
+#Mean of 10 metre wind speed
+'mu10' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 241 ;
+}
+#Mean wind direction
+'mdwi' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 242 ;
+}
+#Standard deviation of 10 metre wind speed
+'sdu' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 243 ;
+}
+#Top net solar radiation, clear sky
+'p208.172' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 208 ;
+}
+#Top net thermal radiation, clear sky
+'p209.172' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 209 ;
+}
+#Surface net solar radiation, clear sky
+'p210.172' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 210 ;
+}
+#Surface net thermal radiation, clear sky
+'p211.172' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 211 ;
+}
+#Solar insolation rate of accumulation
+'soira' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 212 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/marsLevtypeConcept.def b/definitions/grib2/localConcepts/ecmf/marsLevtypeConcept.def
index 8a568ab6f..1f2c64121 100644
--- a/definitions/grib2/localConcepts/ecmf/marsLevtypeConcept.def
+++ b/definitions/grib2/localConcepts/ecmf/marsLevtypeConcept.def
@@ -6,3 +6,4 @@
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=5;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=6;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=7;}
+'sfc' = {typeOfFirstFixedSurface=254;}
diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def
index 1d626bf3d..c5d77647c 100644
--- a/definitions/grib2/localConcepts/ecmf/name.def
+++ b/definitions/grib2/localConcepts/ecmf/name.def
@@ -224,18 +224,6 @@
typeOfStatisticalProcessing = 3 ;
lengthOfTimeRange = 24 ;
}
-#Mean temperature at 2 metres in the last 24 hours
-'Mean temperature at 2 metres in the last 24 hours' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours
-'Mean 2 metre dewpoint temperature in the last 24 hours' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 56 ;
- }
#Observation count
'Observation count' = {
discipline = 192 ;
@@ -548,12 +536,6 @@
parameterCategory = 128 ;
parameterNumber = 123 ;
}
-#Surface emissivity
-'Surface emissivity' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 124 ;
- }
#Vertically integrated total energy
'Vertically integrated total energy' = {
discipline = 192 ;
@@ -624,18 +606,6 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Surface net radiation
-'Surface net radiation' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 149 ;
- }
-#Top net radiation
-'Top net radiation' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 150 ;
- }
#Logarithm of surface pressure
'Logarithm of surface pressure' = {
discipline = 0 ;
@@ -2597,6 +2567,24 @@
parameterCategory = 171 ;
parameterNumber = 122 ;
}
+#Mean surface runoff rate
+'Mean surface runoff rate' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'Mean sub-surface runoff rate' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Volcanic ash aerosol mixing ratio
'Volcanic ash aerosol mixing ratio' = {
discipline = 192 ;
@@ -13843,6 +13831,214 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean snow depth
+'Time-mean snow depth' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'Time-mean low cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'Time-mean medium cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'Time-mean high cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'Time-mean forecast albedo' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 1
+'Covariance between 2-metre temperature and volumetric soil water layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 1
+'Covariance between 2-metre relative humidity and volumetric soil water layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 1
+'Covariance between surface soil moisture and volumetric soil water layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 2
+'Covariance between 2-metre temperature and volumetric soil water layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 2
+'Covariance between 2-metre relative humidity and volumetric soil water layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 2
+'Covariance between surface soil moisture and volumetric soil water layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 3
+'Covariance between 2-metre temperature and volumetric soil water layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 3
+'Covariance between 2-metre relative humidity and volumetric soil water layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 3
+'Covariance between surface soil moisture and volumetric soil water layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 1
+'Covariance between 2-metre temperature and soil temperature layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 1
+'Covariance between 2-metre relative humidity and soil temperature layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 2
+'Covariance between 2-metre temperature and soil temperature layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 2
+'Covariance between 2-metre relative humidity and soil temperature layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 3
+'Covariance between 2-metre temperature and soil temperature layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 205 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 3
+'Covariance between 2-metre relative humidity and soil temperature layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 206 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 1
+'Covariance between 2-metre temperature and temperature of snow layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 207 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 1
+'Covariance between 2-metre relative humidity and temperature of snow layer 1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 208 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 2
+'Covariance between 2-metre temperature and temperature of snow layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 209 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 2
+'Covariance between 2-metre relative humidity and temperature of snow layer 2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 210 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 3
+'Covariance between 2-metre temperature and temperature of snow layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 211 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 3
+'Covariance between 2-metre relative humidity and temperature of snow layer 3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 212 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
#Surface roughness length for heat
'Surface roughness length for heat' = {
localTablesVersion = 1 ;
@@ -14235,18 +14431,6 @@
parameterCategory = 129 ;
parameterNumber = 54 ;
}
-#Mean 2 metre temperature in the last 24 hours gradient
-'Mean 2 metre temperature in the last 24 hours gradient' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours gradient
-'Mean 2 metre dewpoint temperature in the last 24 hours gradient' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 56 ;
- }
#Downward UV radiation at the surface gradient
'Downward UV radiation at the surface gradient' = {
discipline = 192 ;
@@ -15519,12 +15703,6 @@
parameterCategory = 130 ;
parameterNumber = 231 ;
}
-#Mean vertical velocity
-'Mean vertical velocity' = {
- discipline = 192 ;
- parameterCategory = 130 ;
- parameterNumber = 232 ;
- }
#2m temperature anomaly of at least +2K
'2m temperature anomaly of at least +2K' = {
discipline = 192 ;
@@ -16423,30 +16601,6 @@
parameterCategory = 140 ;
parameterNumber = 200 ;
}
-#Standard deviation wave height
-'Standard deviation wave height' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 240 ;
- }
-#Mean of 10 metre wind speed
-'Mean of 10 metre wind speed' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 241 ;
- }
-#Mean wind direction
-'Mean wind direction' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 242 ;
- }
-#Standard deviation of 10 metre wind speed
-'Standard deviation of 10 metre wind speed' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 243 ;
- }
#2D wave spectra (multiple)
'2D wave spectra (multiple)' = {
discipline = 192 ;
@@ -16663,24 +16817,6 @@
parameterCategory = 151 ;
parameterNumber = 128 ;
}
-#Sea water potential temperature
-'Sea water potential temperature' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'Sea water practical salinity' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'Upward sea water velocity' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
#Modulus of strain rate tensor
'Modulus of strain rate tensor' = {
discipline = 192 ;
@@ -16705,12 +16841,6 @@
parameterCategory = 151 ;
parameterNumber = 137 ;
}
-#Sea water sigma theta
-'Sea water sigma theta' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Richardson number
'Richardson number' = {
discipline = 192 ;
@@ -16783,18 +16913,6 @@
parameterCategory = 151 ;
parameterNumber = 152 ;
}
-#Surface downward eastward stress
-'Surface downward eastward stress' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'Surface downward northward stress' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Turbulent kinetic energy input
'Turbulent kinetic energy input' = {
discipline = 192 ;
@@ -17395,198 +17513,6 @@
parameterCategory = 160 ;
parameterNumber = 254 ;
}
-#Surface geopotential
-'Surface geopotential' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 51 ;
- }
-#Vertical integral of temperature
-'Vertical integral of temperature' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 54 ;
- }
-#Vertical integral of cloud liquid water
-'Vertical integral of cloud liquid water' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 56 ;
- }
-#Vertical integral of cloud frozen water
-'Vertical integral of cloud frozen water' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 57 ;
- }
-#Vertical integral of ozone
-'Vertical integral of ozone' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 58 ;
- }
-#Vertical integral of energy conversion
-'Vertical integral of energy conversion' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 64 ;
- }
-#Vertical integral of eastward mass flux
-'Vertical integral of eastward mass flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 65 ;
- }
-#Vertical integral of northward mass flux
-'Vertical integral of northward mass flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 66 ;
- }
-#Vertical integral of eastward kinetic energy flux
-'Vertical integral of eastward kinetic energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 67 ;
- }
-#Vertical integral of northward kinetic energy flux
-'Vertical integral of northward kinetic energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 68 ;
- }
-#Vertical integral of eastward geopotential flux
-'Vertical integral of eastward geopotential flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 73 ;
- }
-#Vertical integral of northward geopotential flux
-'Vertical integral of northward geopotential flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 74 ;
- }
-#Vertical integral of eastward total energy flux
-'Vertical integral of eastward total energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 75 ;
- }
-#Vertical integral of northward total energy flux
-'Vertical integral of northward total energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 76 ;
- }
-#Vertical integral of eastward ozone flux
-'Vertical integral of eastward ozone flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 77 ;
- }
-#Vertical integral of northward ozone flux
-'Vertical integral of northward ozone flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 78 ;
- }
-#Vertical integral of divergence of mass flux
-'Vertical integral of divergence of mass flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 81 ;
- }
-#Vertical integral of divergence of kinetic energy flux
-'Vertical integral of divergence of kinetic energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 82 ;
- }
-#Vertical integral of divergence of thermal energy flux
-'Vertical integral of divergence of thermal energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 83 ;
- }
-#Vertical integral of divergence of geopotential flux
-'Vertical integral of divergence of geopotential flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 85 ;
- }
-#Vertical integral of divergence of total energy flux
-'Vertical integral of divergence of total energy flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 86 ;
- }
-#Vertical integral of divergence of ozone flux
-'Vertical integral of divergence of ozone flux' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 87 ;
- }
-#Variance of geopotential
-'Variance of geopotential' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 206 ;
- }
-#Covariance of geopotential/temperature
-'Covariance of geopotential/temperature' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 207 ;
- }
-#Variance of temperature
-'Variance of temperature' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 208 ;
- }
-#Covariance of geopotential/specific humidity
-'Covariance of geopotential/specific humidity' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 209 ;
- }
-#Covariance of temperature/specific humidity
-'Covariance of temperature/specific humidity' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 210 ;
- }
-#Variance of specific humidity
-'Variance of specific humidity' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 211 ;
- }
-#Covariance of u component/geopotential
-'Covariance of u component/geopotential' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 212 ;
- }
-#Covariance of u component/temperature
-'Covariance of u component/temperature' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 213 ;
- }
-#Covariance of u component/specific humidity
-'Covariance of u component/specific humidity' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 214 ;
- }
-#Variance of u component
-'Variance of u component' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 215 ;
- }
#Covariance of v component/geopotential
'Covariance of v component/geopotential' = {
discipline = 192 ;
@@ -18837,21 +18763,30 @@
}
#Mean large-scale precipitation rate
'Mean large-scale precipitation rate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 142 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean convective precipitation rate
'Mean convective precipitation rate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 143 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total snowfall rate
'Mean total snowfall rate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 144 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Boundary layer dissipation
'Boundary layer dissipation' = {
@@ -18859,24 +18794,6 @@
parameterCategory = 172 ;
parameterNumber = 145 ;
}
-#Mean surface sensible heat flux
-'Mean surface sensible heat flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 146 ;
- }
-#Mean surface latent heat flux
-'Mean surface latent heat flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 147 ;
- }
-#Mean surface net radiation flux
-'Mean surface net radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 149 ;
- }
#Mean short-wave heating rate
'Mean short-wave heating rate' = {
discipline = 192 ;
@@ -18889,59 +18806,14 @@
parameterCategory = 172 ;
parameterNumber = 154 ;
}
-#Mean surface downward solar radiation flux
-'Mean surface downward solar radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 169 ;
- }
-#Mean surface downward thermal radiation flux
-'Mean surface downward thermal radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 175 ;
- }
-#Mean surface net solar radiation flux
-'Mean surface net solar radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 176 ;
- }
-#Mean surface net thermal radiation flux
-'Mean surface net thermal radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 177 ;
- }
-#Mean top net solar radiation flux
-'Mean top net solar radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 178 ;
- }
-#Mean top net thermal radiation flux
-'Mean top net thermal radiation flux' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 179 ;
- }
-#East-West surface stress rate of accumulation
-'East-West surface stress rate of accumulation' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 180 ;
- }
-#North-South surface stress rate of accumulation
-'North-South surface stress rate of accumulation' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 181 ;
- }
#Evaporation
'Evaporation' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 182 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean sunshine duration rate
'Mean sunshine duration rate' = {
@@ -18969,45 +18841,21 @@
}
#Mean runoff rate
'Mean runoff rate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 205 ;
- }
-#Top net solar radiation, clear sky
-'Top net solar radiation, clear sky' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 208 ;
- }
-#Top net thermal radiation, clear sky
-'Top net thermal radiation, clear sky' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 209 ;
- }
-#Surface net solar radiation, clear sky
-'Surface net solar radiation, clear sky' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 210 ;
- }
-#Surface net thermal radiation, clear sky
-'Surface net thermal radiation, clear sky' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 211 ;
- }
-#Solar insolation rate of accumulation
-'Solar insolation rate of accumulation' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 212 ;
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total precipitation rate
'Mean total precipitation rate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 228 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Convective snowfall
'Convective snowfall' = {
@@ -21697,23 +21545,15 @@
parameterCategory = 220 ;
parameterNumber = 228 ;
}
-#Mean temperature at 2 metres
-'Mean temperature at 2 metres' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 4 ;
- }
-#Mean of 10 metre wind speed
-'Mean of 10 metre wind speed' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 5 ;
- }
#Mean total cloud cover
'Mean total cloud cover' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 6 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Surface temperature significance
'Surface temperature significance' = {
diff --git a/definitions/grib2/localConcepts/ecmf/name.legacy.def b/definitions/grib2/localConcepts/ecmf/name.legacy.def
index c7a877462..7a451911c 100644
--- a/definitions/grib2/localConcepts/ecmf/name.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/name.legacy.def
@@ -1309,3 +1309,465 @@
parameterCategory = 140 ;
parameterNumber = 249 ;
}
+#Mean temperature at 2 metres
+'Mean temperature at 2 metres' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 4 ;
+}
+#Mean surface net radiation flux
+'Mean surface net radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 149 ;
+}
+#Surface net radiation
+'Surface net radiation' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 149 ;
+}
+#Top net radiation
+'Top net radiation' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 150 ;
+}
+#Surface emissivity
+'Surface emissivity' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 124 ;
+}
+#Vertical integral of water vapour
+'Vertical integral of water vapour' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 55 ;
+}
+#Snow depth
+'Snow depth' = {
+ discipline = 192 ;
+ parameterCategory = 190 ;
+ parameterNumber = 141 ;
+}
+#Mean total snowfall rate
+'Mean total snowfall rate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 144 ;
+}
+#Evaporation
+'Evaporation' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 182 ;
+}
+#Mean total precipitation rate
+'Mean total precipitation rate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 228 ;
+}
+#Mean large-scale precipitation rate
+'Mean large-scale precipitation rate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 142 ;
+}
+#Mean convective precipitation rate
+'Mean convective precipitation rate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 143 ;
+}
+#Mean runoff rate
+'Mean runoff rate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 205 ;
+}
+#Mean total cloud cover
+'Mean total cloud cover' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 6 ;
+}
+#Mean of 10 metre wind speed
+'Mean of 10 metre wind speed' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 5 ;
+}
+#Sea water potential temperature
+'Sea water potential temperature' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'Sea water practical salinity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'Upward sea water velocity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'Sea water sigma theta' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'Surface downward eastward stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'Surface downward northward stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
+#Surface geopotential
+'Surface geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+}
+#Vertical integral of temperature
+'Vertical integral of temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+}
+#Vertical integral of cloud liquid water
+'Vertical integral of cloud liquid water' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+}
+#Vertical integral of cloud frozen water
+'Vertical integral of cloud frozen water' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+}
+#Vertical integral of ozone
+'Vertical integral of ozone' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+}
+#Vertical integral of energy conversion
+'Vertical integral of energy conversion' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+}
+#Vertical integral of eastward mass flux
+'Vertical integral of eastward mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+}
+#Vertical integral of northward mass flux
+'Vertical integral of northward mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+}
+#Vertical integral of eastward kinetic energy flux
+'Vertical integral of eastward kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+}
+#Vertical integral of northward kinetic energy flux
+'Vertical integral of northward kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+}
+#Vertical integral of eastward geopotential flux
+'Vertical integral of eastward geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+}
+#Vertical integral of northward geopotential flux
+'Vertical integral of northward geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+}
+#Vertical integral of eastward total energy flux
+'Vertical integral of eastward total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+}
+#Vertical integral of northward total energy flux
+'Vertical integral of northward total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+}
+#Vertical integral of eastward ozone flux
+'Vertical integral of eastward ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+}
+#Vertical integral of northward ozone flux
+'Vertical integral of northward ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+}
+#Vertical integral of divergence of mass flux
+'Vertical integral of divergence of mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+}
+#Vertical integral of divergence of kinetic energy flux
+'Vertical integral of divergence of kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+}
+#Vertical integral of divergence of thermal energy flux
+'Vertical integral of divergence of thermal energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+}
+#Vertical integral of divergence of geopotential flux
+'Vertical integral of divergence of geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+}
+#Vertical integral of divergence of total energy flux
+'Vertical integral of divergence of total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+}
+#Vertical integral of divergence of ozone flux
+'Vertical integral of divergence of ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+}
+#Variance of geopotential
+'Variance of geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+}
+#Covariance of geopotential/temperature
+'Covariance of geopotential/temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+}
+#Variance of temperature
+'Variance of temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+}
+#Covariance of geopotential/specific humidity
+'Covariance of geopotential/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+}
+#Covariance of temperature/specific humidity
+'Covariance of temperature/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+}
+#Variance of specific humidity
+'Variance of specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+}
+#Covariance of u component/geopotential
+'Covariance of u component/geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+}
+#Covariance of u component/temperature
+'Covariance of u component/temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+}
+#Covariance of u component/specific humidity
+'Covariance of u component/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+}
+#Variance of u component
+'Variance of u component' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
+#Mean vertical velocity
+'Mean vertical velocity' = {
+ discipline = 192 ;
+ parameterCategory = 130 ;
+ parameterNumber = 232 ;
+}
+#Mean surface sensible heat flux
+'Mean surface sensible heat flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 146 ;
+}
+#Mean surface latent heat flux
+'Mean surface latent heat flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 147 ;
+}
+#Mean temperature at 2 metres in the last 24 hours
+'Mean temperature at 2 metres in the last 24 hours' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre temperature in the last 24 hours gradient
+'Mean 2 metre temperature in the last 24 hours gradient' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours
+'Mean 2 metre dewpoint temperature in the last 24 hours' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 56 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours gradient
+'Mean 2 metre dewpoint temperature in the last 24 hours gradient' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 56 ;
+}
+#Mean surface downward solar radiation flux
+'Mean surface downward solar radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 169 ;
+}
+#Mean surface downward thermal radiation flux
+'Mean surface downward thermal radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 175 ;
+}
+#Mean surface net solar radiation flux
+'Mean surface net solar radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 176 ;
+}
+#Mean surface net thermal radiation flux
+'Mean surface net thermal radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 177 ;
+}
+#Mean top net solar radiation flux
+'Mean top net solar radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 178 ;
+}
+#Mean top net thermal radiation flux
+'Mean top net thermal radiation flux' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 179 ;
+}
+#East-West surface stress rate of accumulation
+'East-West surface stress rate of accumulation' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 180 ;
+}
+#North-South surface stress rate of accumulation
+'North-South surface stress rate of accumulation' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 181 ;
+}
+#Standard deviation wave height
+'Standard deviation wave height' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 240 ;
+}
+#Mean of 10 metre wind speed
+'Mean of 10 metre wind speed' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 241 ;
+}
+#Mean wind direction
+'Mean wind direction' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 242 ;
+}
+#Standard deviation of 10 metre wind speed
+'Standard deviation of 10 metre wind speed' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 243 ;
+}
+#Top net solar radiation, clear sky
+'Top net solar radiation, clear sky' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 208 ;
+}
+#Top net thermal radiation, clear sky
+'Top net thermal radiation, clear sky' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 209 ;
+}
+#Surface net solar radiation, clear sky
+'Surface net solar radiation, clear sky' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 210 ;
+}
+#Surface net thermal radiation, clear sky
+'Surface net thermal radiation, clear sky' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 211 ;
+}
+#Solar insolation rate of accumulation
+'Solar insolation rate of accumulation' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 212 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def
index 9886c1f16..12fe43ab4 100644
--- a/definitions/grib2/localConcepts/ecmf/paramId.def
+++ b/definitions/grib2/localConcepts/ecmf/paramId.def
@@ -224,18 +224,6 @@
typeOfStatisticalProcessing = 3 ;
lengthOfTimeRange = 24 ;
}
-#Mean temperature at 2 metres in the last 24 hours
-'55' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours
-'56' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 56 ;
- }
#Observation count
'62' = {
discipline = 192 ;
@@ -548,12 +536,6 @@
parameterCategory = 128 ;
parameterNumber = 123 ;
}
-#Surface emissivity
-'124' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 124 ;
- }
#Vertically integrated total energy
'125' = {
discipline = 192 ;
@@ -624,18 +606,6 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Surface net radiation
-'149' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 149 ;
- }
-#Top net radiation
-'150' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 150 ;
- }
#Logarithm of surface pressure
'152' = {
discipline = 0 ;
@@ -2597,6 +2567,24 @@
parameterCategory = 171 ;
parameterNumber = 122 ;
}
+#Mean surface runoff rate
+'172008' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'172009' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Volcanic ash aerosol mixing ratio
'210013' = {
discipline = 192 ;
@@ -13843,6 +13831,214 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean snow depth
+'235141' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'235186' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'235187' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'235188' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'235243' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 1
+'254001' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 1
+'254002' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 1
+'254003' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 2
+'254004' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 2
+'254005' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 2
+'254006' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 3
+'254007' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 3
+'254008' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 3
+'254009' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 1
+'254010' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 1
+'254011' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 2
+'254012' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 2
+'254013' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 3
+'254014' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 205 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 3
+'254015' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 206 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 1
+'254016' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 207 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 1
+'254017' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 208 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 2
+'254018' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 209 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 2
+'254019' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 210 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 3
+'254020' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 211 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 3
+'254021' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 212 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
#Surface roughness length for heat
'260651' = {
localTablesVersion = 1 ;
@@ -14235,18 +14431,6 @@
parameterCategory = 129 ;
parameterNumber = 54 ;
}
-#Mean 2 metre temperature in the last 24 hours gradient
-'129055' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours gradient
-'129056' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 56 ;
- }
#Downward UV radiation at the surface gradient
'129057' = {
discipline = 192 ;
@@ -15519,12 +15703,6 @@
parameterCategory = 130 ;
parameterNumber = 231 ;
}
-#Mean vertical velocity
-'130232' = {
- discipline = 192 ;
- parameterCategory = 130 ;
- parameterNumber = 232 ;
- }
#2m temperature anomaly of at least +2K
'131001' = {
discipline = 192 ;
@@ -16423,30 +16601,6 @@
parameterCategory = 140 ;
parameterNumber = 200 ;
}
-#Standard deviation wave height
-'140240' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 240 ;
- }
-#Mean of 10 metre wind speed
-'140241' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 241 ;
- }
-#Mean wind direction
-'140242' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 242 ;
- }
-#Standard deviation of 10 metre wind speed
-'140243' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 243 ;
- }
#2D wave spectra (multiple)
'140250' = {
discipline = 192 ;
@@ -16663,24 +16817,6 @@
parameterCategory = 151 ;
parameterNumber = 128 ;
}
-#Sea water potential temperature
-'151129' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'151130' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'151133' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
#Modulus of strain rate tensor
'151134' = {
discipline = 192 ;
@@ -16705,12 +16841,6 @@
parameterCategory = 151 ;
parameterNumber = 137 ;
}
-#Sea water sigma theta
-'151138' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Richardson number
'151139' = {
discipline = 192 ;
@@ -16783,18 +16913,6 @@
parameterCategory = 151 ;
parameterNumber = 152 ;
}
-#Surface downward eastward stress
-'151153' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'151154' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Turbulent kinetic energy input
'151155' = {
discipline = 192 ;
@@ -17395,198 +17513,6 @@
parameterCategory = 160 ;
parameterNumber = 254 ;
}
-#Surface geopotential
-'162051' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 51 ;
- }
-#Vertical integral of temperature
-'162054' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 54 ;
- }
-#Vertical integral of cloud liquid water
-'162056' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 56 ;
- }
-#Vertical integral of cloud frozen water
-'162057' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 57 ;
- }
-#Vertical integral of ozone
-'162058' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 58 ;
- }
-#Vertical integral of energy conversion
-'162064' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 64 ;
- }
-#Vertical integral of eastward mass flux
-'162065' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 65 ;
- }
-#Vertical integral of northward mass flux
-'162066' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 66 ;
- }
-#Vertical integral of eastward kinetic energy flux
-'162067' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 67 ;
- }
-#Vertical integral of northward kinetic energy flux
-'162068' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 68 ;
- }
-#Vertical integral of eastward geopotential flux
-'162073' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 73 ;
- }
-#Vertical integral of northward geopotential flux
-'162074' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 74 ;
- }
-#Vertical integral of eastward total energy flux
-'162075' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 75 ;
- }
-#Vertical integral of northward total energy flux
-'162076' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 76 ;
- }
-#Vertical integral of eastward ozone flux
-'162077' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 77 ;
- }
-#Vertical integral of northward ozone flux
-'162078' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 78 ;
- }
-#Vertical integral of divergence of mass flux
-'162081' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 81 ;
- }
-#Vertical integral of divergence of kinetic energy flux
-'162082' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 82 ;
- }
-#Vertical integral of divergence of thermal energy flux
-'162083' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 83 ;
- }
-#Vertical integral of divergence of geopotential flux
-'162085' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 85 ;
- }
-#Vertical integral of divergence of total energy flux
-'162086' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 86 ;
- }
-#Vertical integral of divergence of ozone flux
-'162087' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 87 ;
- }
-#Variance of geopotential
-'162206' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 206 ;
- }
-#Covariance of geopotential/temperature
-'162207' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 207 ;
- }
-#Variance of temperature
-'162208' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 208 ;
- }
-#Covariance of geopotential/specific humidity
-'162209' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 209 ;
- }
-#Covariance of temperature/specific humidity
-'162210' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 210 ;
- }
-#Variance of specific humidity
-'162211' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 211 ;
- }
-#Covariance of u component/geopotential
-'162212' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 212 ;
- }
-#Covariance of u component/temperature
-'162213' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 213 ;
- }
-#Covariance of u component/specific humidity
-'162214' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 214 ;
- }
-#Variance of u component
-'162215' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 215 ;
- }
#Covariance of v component/geopotential
'162216' = {
discipline = 192 ;
@@ -18837,21 +18763,30 @@
}
#Mean large-scale precipitation rate
'172142' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 142 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean convective precipitation rate
'172143' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 143 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total snowfall rate
'172144' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 144 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Boundary layer dissipation
'172145' = {
@@ -18859,24 +18794,6 @@
parameterCategory = 172 ;
parameterNumber = 145 ;
}
-#Mean surface sensible heat flux
-'172146' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 146 ;
- }
-#Mean surface latent heat flux
-'172147' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 147 ;
- }
-#Mean surface net radiation flux
-'172149' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 149 ;
- }
#Mean short-wave heating rate
'172153' = {
discipline = 192 ;
@@ -18889,59 +18806,14 @@
parameterCategory = 172 ;
parameterNumber = 154 ;
}
-#Mean surface downward solar radiation flux
-'172169' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 169 ;
- }
-#Mean surface downward thermal radiation flux
-'172175' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 175 ;
- }
-#Mean surface net solar radiation flux
-'172176' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 176 ;
- }
-#Mean surface net thermal radiation flux
-'172177' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 177 ;
- }
-#Mean top net solar radiation flux
-'172178' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 178 ;
- }
-#Mean top net thermal radiation flux
-'172179' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 179 ;
- }
-#East-West surface stress rate of accumulation
-'172180' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 180 ;
- }
-#North-South surface stress rate of accumulation
-'172181' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 181 ;
- }
#Evaporation
'172182' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 182 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean sunshine duration rate
'172189' = {
@@ -18969,45 +18841,21 @@
}
#Mean runoff rate
'172205' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 205 ;
- }
-#Top net solar radiation, clear sky
-'172208' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 208 ;
- }
-#Top net thermal radiation, clear sky
-'172209' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 209 ;
- }
-#Surface net solar radiation, clear sky
-'172210' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 210 ;
- }
-#Surface net thermal radiation, clear sky
-'172211' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 211 ;
- }
-#Solar insolation rate of accumulation
-'172212' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 212 ;
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total precipitation rate
'172228' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 228 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Convective snowfall
'172239' = {
@@ -21697,23 +21545,15 @@
parameterCategory = 220 ;
parameterNumber = 228 ;
}
-#Mean temperature at 2 metres
-'228004' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 4 ;
- }
-#Mean of 10 metre wind speed
-'228005' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 5 ;
- }
#Mean total cloud cover
'228006' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 6 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Surface temperature significance
'234139' = {
diff --git a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def
index cb5186931..4413e87b9 100644
--- a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def
@@ -1309,3 +1309,465 @@
parameterCategory = 140 ;
parameterNumber = 249 ;
}
+#Mean temperature at 2 metres
+'228004' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 4 ;
+}
+#Mean surface net radiation flux
+'172149' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 149 ;
+}
+#Surface net radiation
+'149' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 149 ;
+}
+#Top net radiation
+'150' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 150 ;
+}
+#Surface emissivity
+'124' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 124 ;
+}
+#Vertical integral of water vapour
+'162055' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 55 ;
+}
+#Snow depth
+'190141' = {
+ discipline = 192 ;
+ parameterCategory = 190 ;
+ parameterNumber = 141 ;
+}
+#Mean total snowfall rate
+'172144' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 144 ;
+}
+#Evaporation
+'172182' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 182 ;
+}
+#Mean total precipitation rate
+'172228' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 228 ;
+}
+#Mean large-scale precipitation rate
+'172142' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 142 ;
+}
+#Mean convective precipitation rate
+'172143' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 143 ;
+}
+#Mean runoff rate
+'172205' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 205 ;
+}
+#Mean total cloud cover
+'228006' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 6 ;
+}
+#Mean of 10 metre wind speed
+'228005' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 5 ;
+}
+#Sea water potential temperature
+'151129' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'151130' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'151133' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'151138' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'151153' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'151154' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
+#Surface geopotential
+'162051' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+}
+#Vertical integral of temperature
+'162054' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+}
+#Vertical integral of cloud liquid water
+'162056' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+}
+#Vertical integral of cloud frozen water
+'162057' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+}
+#Vertical integral of ozone
+'162058' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+}
+#Vertical integral of energy conversion
+'162064' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+}
+#Vertical integral of eastward mass flux
+'162065' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+}
+#Vertical integral of northward mass flux
+'162066' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+}
+#Vertical integral of eastward kinetic energy flux
+'162067' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+}
+#Vertical integral of northward kinetic energy flux
+'162068' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+}
+#Vertical integral of eastward geopotential flux
+'162073' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+}
+#Vertical integral of northward geopotential flux
+'162074' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+}
+#Vertical integral of eastward total energy flux
+'162075' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+}
+#Vertical integral of northward total energy flux
+'162076' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+}
+#Vertical integral of eastward ozone flux
+'162077' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+}
+#Vertical integral of northward ozone flux
+'162078' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+}
+#Vertical integral of divergence of mass flux
+'162081' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+}
+#Vertical integral of divergence of kinetic energy flux
+'162082' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+}
+#Vertical integral of divergence of thermal energy flux
+'162083' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+}
+#Vertical integral of divergence of geopotential flux
+'162085' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+}
+#Vertical integral of divergence of total energy flux
+'162086' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+}
+#Vertical integral of divergence of ozone flux
+'162087' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+}
+#Variance of geopotential
+'162206' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+}
+#Covariance of geopotential/temperature
+'162207' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+}
+#Variance of temperature
+'162208' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+}
+#Covariance of geopotential/specific humidity
+'162209' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+}
+#Covariance of temperature/specific humidity
+'162210' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+}
+#Variance of specific humidity
+'162211' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+}
+#Covariance of u component/geopotential
+'162212' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+}
+#Covariance of u component/temperature
+'162213' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+}
+#Covariance of u component/specific humidity
+'162214' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+}
+#Variance of u component
+'162215' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
+#Mean vertical velocity
+'130232' = {
+ discipline = 192 ;
+ parameterCategory = 130 ;
+ parameterNumber = 232 ;
+}
+#Mean surface sensible heat flux
+'172146' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 146 ;
+}
+#Mean surface latent heat flux
+'172147' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 147 ;
+}
+#Mean temperature at 2 metres in the last 24 hours
+'55' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre temperature in the last 24 hours gradient
+'129055' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours
+'56' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 56 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours gradient
+'129056' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 56 ;
+}
+#Mean surface downward solar radiation flux
+'172169' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 169 ;
+}
+#Mean surface downward thermal radiation flux
+'172175' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 175 ;
+}
+#Mean surface net solar radiation flux
+'172176' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 176 ;
+}
+#Mean surface net thermal radiation flux
+'172177' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 177 ;
+}
+#Mean top net solar radiation flux
+'172178' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 178 ;
+}
+#Mean top net thermal radiation flux
+'172179' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 179 ;
+}
+#East-West surface stress rate of accumulation
+'172180' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 180 ;
+}
+#North-South surface stress rate of accumulation
+'172181' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 181 ;
+}
+#Standard deviation wave height
+'140240' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 240 ;
+}
+#Mean of 10 metre wind speed
+'140241' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 241 ;
+}
+#Mean wind direction
+'140242' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 242 ;
+}
+#Standard deviation of 10 metre wind speed
+'140243' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 243 ;
+}
+#Top net solar radiation, clear sky
+'172208' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 208 ;
+}
+#Top net thermal radiation, clear sky
+'172209' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 209 ;
+}
+#Surface net solar radiation, clear sky
+'172210' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 210 ;
+}
+#Surface net thermal radiation, clear sky
+'172211' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 211 ;
+}
+#Solar insolation rate of accumulation
+'172212' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 212 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def
index 3d30e0aec..b476da6d8 100644
--- a/definitions/grib2/localConcepts/ecmf/shortName.def
+++ b/definitions/grib2/localConcepts/ecmf/shortName.def
@@ -224,18 +224,6 @@
typeOfStatisticalProcessing = 3 ;
lengthOfTimeRange = 24 ;
}
-#Mean temperature at 2 metres in the last 24 hours
-'mean2t24' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours
-'mn2d24' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 56 ;
- }
#Observation count
'obct' = {
discipline = 192 ;
@@ -548,12 +536,6 @@
parameterCategory = 128 ;
parameterNumber = 123 ;
}
-#Surface emissivity
-'emis' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 124 ;
- }
#Vertically integrated total energy
'vite' = {
discipline = 192 ;
@@ -624,18 +606,6 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Surface net radiation
-'snr' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 149 ;
- }
-#Top net radiation
-'tnr' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 150 ;
- }
#Logarithm of surface pressure
'lnsp' = {
discipline = 0 ;
@@ -2597,6 +2567,24 @@
parameterCategory = 171 ;
parameterNumber = 122 ;
}
+#Mean surface runoff rate
+'msror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'mssror' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Volcanic ash aerosol mixing ratio
'aermr13' = {
discipline = 192 ;
@@ -13843,6 +13831,214 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean snow depth
+'msd_m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'mlcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'mmcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'mhcc_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'mfal_frac' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 1
+'covar_t2m_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 1
+'covar_rh2m_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 1
+'covar_ssm_swvl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 2
+'covar_t2m_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 2
+'covar_rh2m_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 2
+'covar_ssm_swvl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 3
+'covar_t2m_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 3
+'covar_rh2m_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 3
+'covar_ssm_swvl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 1
+'covar_t2m_stl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 1
+'covar_rh2m_stl1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 2
+'covar_t2m_stl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 2
+'covar_rh2m_stl2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 3
+'covar_t2m_stl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 205 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 3
+'covar_rh2m_stl3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 206 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 1
+'covar_t2m_tsn1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 207 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 1
+'covar_rh2m_tsn1' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 208 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 2
+'covar_t2m_tsn2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 209 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 2
+'covar_rh2m_tsn2' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 210 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 3
+'covar_t2m_tsn3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 211 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 3
+'covar_rh2m_tsn3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 212 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
#Surface roughness length for heat
'srlh' = {
localTablesVersion = 1 ;
@@ -14235,18 +14431,6 @@
parameterCategory = 129 ;
parameterNumber = 54 ;
}
-#Mean 2 metre temperature in the last 24 hours gradient
-'mean2t24grd' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours gradient
-'mn2d24grd' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 56 ;
- }
#Downward UV radiation at the surface gradient
'uvbgrd' = {
discipline = 192 ;
@@ -15519,12 +15703,6 @@
parameterCategory = 130 ;
parameterNumber = 231 ;
}
-#Mean vertical velocity
-'mvv' = {
- discipline = 192 ;
- parameterCategory = 130 ;
- parameterNumber = 232 ;
- }
#2m temperature anomaly of at least +2K
'2tag2' = {
discipline = 192 ;
@@ -16423,30 +16601,6 @@
parameterCategory = 140 ;
parameterNumber = 200 ;
}
-#Standard deviation wave height
-'sdhs' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 240 ;
- }
-#Mean of 10 metre wind speed
-'mu10' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 241 ;
- }
-#Mean wind direction
-'mdwi' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 242 ;
- }
-#Standard deviation of 10 metre wind speed
-'sdu' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 243 ;
- }
#2D wave spectra (multiple)
'2dsp' = {
discipline = 192 ;
@@ -16663,24 +16817,6 @@
parameterCategory = 151 ;
parameterNumber = 128 ;
}
-#Sea water potential temperature
-'thetao' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'so' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'wo' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
#Modulus of strain rate tensor
'mst' = {
discipline = 192 ;
@@ -16705,12 +16841,6 @@
parameterCategory = 151 ;
parameterNumber = 137 ;
}
-#Sea water sigma theta
-'sigmat' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Richardson number
'rn' = {
discipline = 192 ;
@@ -16783,18 +16913,6 @@
parameterCategory = 151 ;
parameterNumber = 152 ;
}
-#Surface downward eastward stress
-'taueo' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'tauno' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Turbulent kinetic energy input
'tki' = {
discipline = 192 ;
@@ -17395,198 +17513,6 @@
parameterCategory = 160 ;
parameterNumber = 254 ;
}
-#Surface geopotential
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 51 ;
- }
-#Vertical integral of temperature
-'vit' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 54 ;
- }
-#Vertical integral of cloud liquid water
-'vilw' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 56 ;
- }
-#Vertical integral of cloud frozen water
-'viiw' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 57 ;
- }
-#Vertical integral of ozone
-'vioz' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 58 ;
- }
-#Vertical integral of energy conversion
-'viec' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 64 ;
- }
-#Vertical integral of eastward mass flux
-'vimae' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 65 ;
- }
-#Vertical integral of northward mass flux
-'viman' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 66 ;
- }
-#Vertical integral of eastward kinetic energy flux
-'vikee' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 67 ;
- }
-#Vertical integral of northward kinetic energy flux
-'viken' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 68 ;
- }
-#Vertical integral of eastward geopotential flux
-'vige' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 73 ;
- }
-#Vertical integral of northward geopotential flux
-'vign' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 74 ;
- }
-#Vertical integral of eastward total energy flux
-'vitoee' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 75 ;
- }
-#Vertical integral of northward total energy flux
-'vitoen' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 76 ;
- }
-#Vertical integral of eastward ozone flux
-'vioze' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 77 ;
- }
-#Vertical integral of northward ozone flux
-'viozn' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 78 ;
- }
-#Vertical integral of divergence of mass flux
-'vimad' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 81 ;
- }
-#Vertical integral of divergence of kinetic energy flux
-'viked' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 82 ;
- }
-#Vertical integral of divergence of thermal energy flux
-'vithed' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 83 ;
- }
-#Vertical integral of divergence of geopotential flux
-'vigd' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 85 ;
- }
-#Vertical integral of divergence of total energy flux
-'vitoed' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 86 ;
- }
-#Vertical integral of divergence of ozone flux
-'viozd' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 87 ;
- }
-#Variance of geopotential
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 206 ;
- }
-#Covariance of geopotential/temperature
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 207 ;
- }
-#Variance of temperature
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 208 ;
- }
-#Covariance of geopotential/specific humidity
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 209 ;
- }
-#Covariance of temperature/specific humidity
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 210 ;
- }
-#Variance of specific humidity
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 211 ;
- }
-#Covariance of u component/geopotential
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 212 ;
- }
-#Covariance of u component/temperature
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 213 ;
- }
-#Covariance of u component/specific humidity
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 214 ;
- }
-#Variance of u component
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 215 ;
- }
#Covariance of v component/geopotential
'~' = {
discipline = 192 ;
@@ -18837,21 +18763,30 @@
}
#Mean large-scale precipitation rate
'mlsprt' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 142 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean convective precipitation rate
'cprate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 143 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total snowfall rate
'mtsfr' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 144 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Boundary layer dissipation
'bldrate' = {
@@ -18859,24 +18794,6 @@
parameterCategory = 172 ;
parameterNumber = 145 ;
}
-#Mean surface sensible heat flux
-'msshfl' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 146 ;
- }
-#Mean surface latent heat flux
-'mslhfl' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 147 ;
- }
-#Mean surface net radiation flux
-'msnrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 149 ;
- }
#Mean short-wave heating rate
'mswhr' = {
discipline = 192 ;
@@ -18889,59 +18806,14 @@
parameterCategory = 172 ;
parameterNumber = 154 ;
}
-#Mean surface downward solar radiation flux
-'msdsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 169 ;
- }
-#Mean surface downward thermal radiation flux
-'msdtrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 175 ;
- }
-#Mean surface net solar radiation flux
-'msnsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 176 ;
- }
-#Mean surface net thermal radiation flux
-'msntrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 177 ;
- }
-#Mean top net solar radiation flux
-'mtnsrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 178 ;
- }
-#Mean top net thermal radiation flux
-'mtntrf' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 179 ;
- }
-#East-West surface stress rate of accumulation
-'ewssra' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 180 ;
- }
-#North-South surface stress rate of accumulation
-'nsssra' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 181 ;
- }
#Evaporation
'erate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 182 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean sunshine duration rate
'msdr' = {
@@ -18969,45 +18841,21 @@
}
#Mean runoff rate
'mrort' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 205 ;
- }
-#Top net solar radiation, clear sky
-'~' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 208 ;
- }
-#Top net thermal radiation, clear sky
-'~' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 209 ;
- }
-#Surface net solar radiation, clear sky
-'~' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 210 ;
- }
-#Surface net thermal radiation, clear sky
-'~' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 211 ;
- }
-#Solar insolation rate of accumulation
-'soira' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 212 ;
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total precipitation rate
'tprate' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 228 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Convective snowfall
'~' = {
@@ -21697,23 +21545,15 @@
parameterCategory = 220 ;
parameterNumber = 228 ;
}
-#Mean temperature at 2 metres
-'mean2t' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 4 ;
- }
-#Mean of 10 metre wind speed
-'mean10ws' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 5 ;
- }
#Mean total cloud cover
'meantcc' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 6 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Surface temperature significance
'sts' = {
diff --git a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def
index 7e0d60eed..1a5608823 100644
--- a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def
@@ -1309,3 +1309,465 @@
parameterCategory = 140 ;
parameterNumber = 249 ;
}
+#Mean temperature at 2 metres
+'mean2t' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 4 ;
+}
+#Mean surface net radiation flux
+'msnrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 149 ;
+}
+#Surface net radiation
+'snr' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 149 ;
+}
+#Top net radiation
+'tnr' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 150 ;
+}
+#Surface emissivity
+'emis' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 124 ;
+}
+#Vertical integral of water vapour
+'viwv' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 55 ;
+}
+#Snow depth
+'sdsien' = {
+ discipline = 192 ;
+ parameterCategory = 190 ;
+ parameterNumber = 141 ;
+}
+#Mean total snowfall rate
+'mtsfr' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 144 ;
+}
+#Evaporation
+'erate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 182 ;
+}
+#Mean total precipitation rate
+'tprate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 228 ;
+}
+#Mean large-scale precipitation rate
+'mlsprt' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 142 ;
+}
+#Mean convective precipitation rate
+'cprate' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 143 ;
+}
+#Mean runoff rate
+'mrort' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 205 ;
+}
+#Mean total cloud cover
+'meantcc' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 6 ;
+}
+#Mean of 10 metre wind speed
+'mean10ws' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 5 ;
+}
+#Sea water potential temperature
+'thetao' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'so' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'wo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'sigmat' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'taueo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'tauno' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
+#Surface geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+}
+#Vertical integral of temperature
+'vit' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+}
+#Vertical integral of cloud liquid water
+'vilw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+}
+#Vertical integral of cloud frozen water
+'viiw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+}
+#Vertical integral of ozone
+'vioz' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+}
+#Vertical integral of energy conversion
+'viec' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+}
+#Vertical integral of eastward mass flux
+'vimae' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+}
+#Vertical integral of northward mass flux
+'viman' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+}
+#Vertical integral of eastward kinetic energy flux
+'vikee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+}
+#Vertical integral of northward kinetic energy flux
+'viken' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+}
+#Vertical integral of eastward geopotential flux
+'vige' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+}
+#Vertical integral of northward geopotential flux
+'vign' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+}
+#Vertical integral of eastward total energy flux
+'vitoee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+}
+#Vertical integral of northward total energy flux
+'vitoen' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+}
+#Vertical integral of eastward ozone flux
+'vioze' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+}
+#Vertical integral of northward ozone flux
+'viozn' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+}
+#Vertical integral of divergence of mass flux
+'vimad' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+}
+#Vertical integral of divergence of kinetic energy flux
+'viked' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+}
+#Vertical integral of divergence of thermal energy flux
+'vithed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+}
+#Vertical integral of divergence of geopotential flux
+'vigd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+}
+#Vertical integral of divergence of total energy flux
+'vitoed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+}
+#Vertical integral of divergence of ozone flux
+'viozd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+}
+#Variance of geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+}
+#Covariance of geopotential/temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+}
+#Variance of temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+}
+#Covariance of geopotential/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+}
+#Covariance of temperature/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+}
+#Variance of specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+}
+#Covariance of u component/geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+}
+#Covariance of u component/temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+}
+#Covariance of u component/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+}
+#Variance of u component
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
+#Mean vertical velocity
+'mvv' = {
+ discipline = 192 ;
+ parameterCategory = 130 ;
+ parameterNumber = 232 ;
+}
+#Mean surface sensible heat flux
+'msshfl' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 146 ;
+}
+#Mean surface latent heat flux
+'mslhfl' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 147 ;
+}
+#Mean temperature at 2 metres in the last 24 hours
+'mean2t24' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre temperature in the last 24 hours gradient
+'mean2t24grd' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours
+'mn2d24' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 56 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours gradient
+'mn2d24grd' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 56 ;
+}
+#Mean surface downward solar radiation flux
+'msdsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 169 ;
+}
+#Mean surface downward thermal radiation flux
+'msdtrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 175 ;
+}
+#Mean surface net solar radiation flux
+'msnsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 176 ;
+}
+#Mean surface net thermal radiation flux
+'msntrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 177 ;
+}
+#Mean top net solar radiation flux
+'mtnsrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 178 ;
+}
+#Mean top net thermal radiation flux
+'mtntrf' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 179 ;
+}
+#East-West surface stress rate of accumulation
+'ewssra' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 180 ;
+}
+#North-South surface stress rate of accumulation
+'nsssra' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 181 ;
+}
+#Standard deviation wave height
+'sdhs' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 240 ;
+}
+#Mean of 10 metre wind speed
+'mu10' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 241 ;
+}
+#Mean wind direction
+'mdwi' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 242 ;
+}
+#Standard deviation of 10 metre wind speed
+'sdu' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 243 ;
+}
+#Top net solar radiation, clear sky
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 208 ;
+}
+#Top net thermal radiation, clear sky
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 209 ;
+}
+#Surface net solar radiation, clear sky
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 210 ;
+}
+#Surface net thermal radiation, clear sky
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 211 ;
+}
+#Solar insolation rate of accumulation
+'soira' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 212 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/typeOfLevelConcept.def b/definitions/grib2/localConcepts/ecmf/typeOfLevelConcept.def
new file mode 100644
index 000000000..3044148ff
--- /dev/null
+++ b/definitions/grib2/localConcepts/ecmf/typeOfLevelConcept.def
@@ -0,0 +1,2 @@
+# Concept typeOfLevel
+'abstractLevel' = {typeOfFirstFixedSurface=254;}
diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def
index 26a9c0a22..1629e52b0 100644
--- a/definitions/grib2/localConcepts/ecmf/units.def
+++ b/definitions/grib2/localConcepts/ecmf/units.def
@@ -224,18 +224,6 @@
typeOfStatisticalProcessing = 3 ;
lengthOfTimeRange = 24 ;
}
-#Mean temperature at 2 metres in the last 24 hours
-'K' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours
-'K' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 56 ;
- }
#Observation count
'~' = {
discipline = 192 ;
@@ -548,12 +536,6 @@
parameterCategory = 128 ;
parameterNumber = 123 ;
}
-#Surface emissivity
-'dimensionless' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 124 ;
- }
#Vertically integrated total energy
'J m**-2' = {
discipline = 192 ;
@@ -624,18 +606,6 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Surface net radiation
-'J m**-2' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 149 ;
- }
-#Top net radiation
-'J m**-2' = {
- discipline = 192 ;
- parameterCategory = 128 ;
- parameterNumber = 150 ;
- }
#Logarithm of surface pressure
'Numeric' = {
discipline = 0 ;
@@ -2597,6 +2567,24 @@
parameterCategory = 171 ;
parameterNumber = 122 ;
}
+#Mean surface runoff rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean sub-surface runoff rate
+'m s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Volcanic ash aerosol mixing ratio
'kg kg**-1' = {
discipline = 192 ;
@@ -13843,6 +13831,214 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean snow depth
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean medium cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast albedo
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 1
+'K m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 1
+'% m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 1
+'m**3 m**-3 m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 2
+'K m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 2
+'% m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 2
+'m**3 m**-3 m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and volumetric soil water layer 3
+'K m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and volumetric soil water layer 3
+'% m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between surface soil moisture and volumetric soil water layer 3
+'m**3 m**-3 m**3 m**-3' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 1
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 1
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 2
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 2
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and soil temperature layer 3
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 205 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and soil temperature layer 3
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 206 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 1
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 207 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 1
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 208 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 2
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 209 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 2
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 210 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre temperature and temperature of snow layer 3
+'K K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 211 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
+#Covariance between 2-metre relative humidity and temperature of snow layer 3
+'% K' = {
+ localTablesVersion = 1 ;
+ discipline = 254 ;
+ parameterCategory = 254 ;
+ parameterNumber = 212 ;
+ typeOfFirstFixedSurface = 254 ;
+ }
#Surface roughness length for heat
'm' = {
localTablesVersion = 1 ;
@@ -14235,18 +14431,6 @@
parameterCategory = 129 ;
parameterNumber = 54 ;
}
-#Mean 2 metre temperature in the last 24 hours gradient
-'K' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 55 ;
- }
-#Mean 2 metre dewpoint temperature in the last 24 hours gradient
-'K' = {
- discipline = 192 ;
- parameterCategory = 129 ;
- parameterNumber = 56 ;
- }
#Downward UV radiation at the surface gradient
'J m**-2' = {
discipline = 192 ;
@@ -15519,12 +15703,6 @@
parameterCategory = 130 ;
parameterNumber = 231 ;
}
-#Mean vertical velocity
-'Pa s**-1' = {
- discipline = 192 ;
- parameterCategory = 130 ;
- parameterNumber = 232 ;
- }
#2m temperature anomaly of at least +2K
'%' = {
discipline = 192 ;
@@ -16423,30 +16601,6 @@
parameterCategory = 140 ;
parameterNumber = 200 ;
}
-#Standard deviation wave height
-'m' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 240 ;
- }
-#Mean of 10 metre wind speed
-'m s**-1' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 241 ;
- }
-#Mean wind direction
-'degrees' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 242 ;
- }
-#Standard deviation of 10 metre wind speed
-'m s**-1' = {
- discipline = 192 ;
- parameterCategory = 140 ;
- parameterNumber = 243 ;
- }
#2D wave spectra (multiple)
'm**2 s radian**-1' = {
discipline = 192 ;
@@ -16663,24 +16817,6 @@
parameterCategory = 151 ;
parameterNumber = 128 ;
}
-#Sea water potential temperature
-'deg C' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 129 ;
- }
-#Sea water practical salinity
-'psu' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 130 ;
- }
-#Upward sea water velocity
-'m s**-1' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 133 ;
- }
#Modulus of strain rate tensor
's**-1' = {
discipline = 192 ;
@@ -16705,12 +16841,6 @@
parameterCategory = 151 ;
parameterNumber = 137 ;
}
-#Sea water sigma theta
-'kg m**-3' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 138 ;
- }
#Richardson number
'~' = {
discipline = 192 ;
@@ -16783,18 +16913,6 @@
parameterCategory = 151 ;
parameterNumber = 152 ;
}
-#Surface downward eastward stress
-'N m**-2' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 153 ;
- }
-#Surface downward northward stress
-'N m**-2' = {
- discipline = 192 ;
- parameterCategory = 151 ;
- parameterNumber = 154 ;
- }
#Turbulent kinetic energy input
'J m**-2' = {
discipline = 192 ;
@@ -17395,198 +17513,6 @@
parameterCategory = 160 ;
parameterNumber = 254 ;
}
-#Surface geopotential
-'m**2 s**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 51 ;
- }
-#Vertical integral of temperature
-'K kg m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 54 ;
- }
-#Vertical integral of cloud liquid water
-'kg m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 56 ;
- }
-#Vertical integral of cloud frozen water
-'kg m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 57 ;
- }
-#Vertical integral of ozone
-'kg m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 58 ;
- }
-#Vertical integral of energy conversion
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 64 ;
- }
-#Vertical integral of eastward mass flux
-'kg m**-1 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 65 ;
- }
-#Vertical integral of northward mass flux
-'kg m**-1 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 66 ;
- }
-#Vertical integral of eastward kinetic energy flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 67 ;
- }
-#Vertical integral of northward kinetic energy flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 68 ;
- }
-#Vertical integral of eastward geopotential flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 73 ;
- }
-#Vertical integral of northward geopotential flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 74 ;
- }
-#Vertical integral of eastward total energy flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 75 ;
- }
-#Vertical integral of northward total energy flux
-'W m**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 76 ;
- }
-#Vertical integral of eastward ozone flux
-'kg m**-1 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 77 ;
- }
-#Vertical integral of northward ozone flux
-'kg m**-1 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 78 ;
- }
-#Vertical integral of divergence of mass flux
-'kg m**-2 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 81 ;
- }
-#Vertical integral of divergence of kinetic energy flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 82 ;
- }
-#Vertical integral of divergence of thermal energy flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 83 ;
- }
-#Vertical integral of divergence of geopotential flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 85 ;
- }
-#Vertical integral of divergence of total energy flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 86 ;
- }
-#Vertical integral of divergence of ozone flux
-'kg m**-2 s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 87 ;
- }
-#Variance of geopotential
-'m**4 s**-4' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 206 ;
- }
-#Covariance of geopotential/temperature
-'m**2 K s**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 207 ;
- }
-#Variance of temperature
-'K**2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 208 ;
- }
-#Covariance of geopotential/specific humidity
-'m**2 s**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 209 ;
- }
-#Covariance of temperature/specific humidity
-'K' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 210 ;
- }
-#Variance of specific humidity
-'~' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 211 ;
- }
-#Covariance of u component/geopotential
-'m**3 s**-3' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 212 ;
- }
-#Covariance of u component/temperature
-'m s**-1 K' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 213 ;
- }
-#Covariance of u component/specific humidity
-'m s**-1' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 214 ;
- }
-#Variance of u component
-'m**2 s**-2' = {
- discipline = 192 ;
- parameterCategory = 162 ;
- parameterNumber = 215 ;
- }
#Covariance of v component/geopotential
'm**3 s**-3' = {
discipline = 192 ;
@@ -18837,21 +18763,30 @@
}
#Mean large-scale precipitation rate
'm s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 142 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean convective precipitation rate
'm s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 143 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total snowfall rate
'm of water equivalent s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 144 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Boundary layer dissipation
'W m**-2' = {
@@ -18859,24 +18794,6 @@
parameterCategory = 172 ;
parameterNumber = 145 ;
}
-#Mean surface sensible heat flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 146 ;
- }
-#Mean surface latent heat flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 147 ;
- }
-#Mean surface net radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 149 ;
- }
#Mean short-wave heating rate
'K s**-1' = {
discipline = 192 ;
@@ -18889,59 +18806,14 @@
parameterCategory = 172 ;
parameterNumber = 154 ;
}
-#Mean surface downward solar radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 169 ;
- }
-#Mean surface downward thermal radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 175 ;
- }
-#Mean surface net solar radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 176 ;
- }
-#Mean surface net thermal radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 177 ;
- }
-#Mean top net solar radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 178 ;
- }
-#Mean top net thermal radiation flux
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 179 ;
- }
-#East-West surface stress rate of accumulation
-'N m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 180 ;
- }
-#North-South surface stress rate of accumulation
-'N m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 181 ;
- }
#Evaporation
-'m of water s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 182 ;
+'m of water equivalent s**-1' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean sunshine duration rate
's s**-1' = {
@@ -18969,45 +18841,21 @@
}
#Mean runoff rate
'm s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 205 ;
- }
-#Top net solar radiation, clear sky
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 208 ;
- }
-#Top net thermal radiation, clear sky
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 209 ;
- }
-#Surface net solar radiation, clear sky
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 210 ;
- }
-#Surface net thermal radiation, clear sky
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 211 ;
- }
-#Solar insolation rate of accumulation
-'W m**-2' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 212 ;
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Mean total precipitation rate
'm s**-1' = {
- discipline = 192 ;
- parameterCategory = 172 ;
- parameterNumber = 228 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Convective snowfall
'm of water equivalent s**-1' = {
@@ -21697,23 +21545,15 @@
parameterCategory = 220 ;
parameterNumber = 228 ;
}
-#Mean temperature at 2 metres
-'K' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 4 ;
- }
-#Mean of 10 metre wind speed
-'m s**-1' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 5 ;
- }
#Mean total cloud cover
'(0 - 1)' = {
- discipline = 192 ;
- parameterCategory = 228 ;
- parameterNumber = 6 ;
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
}
#Surface temperature significance
'%' = {
diff --git a/definitions/grib2/localConcepts/ecmf/units.legacy.def b/definitions/grib2/localConcepts/ecmf/units.legacy.def
index 4b5d36486..b6a28f51b 100644
--- a/definitions/grib2/localConcepts/ecmf/units.legacy.def
+++ b/definitions/grib2/localConcepts/ecmf/units.legacy.def
@@ -1309,3 +1309,465 @@
parameterCategory = 140 ;
parameterNumber = 249 ;
}
+#Mean temperature at 2 metres
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 4 ;
+}
+#Mean surface net radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 149 ;
+}
+#Surface net radiation
+'J m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 149 ;
+}
+#Top net radiation
+'J m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 150 ;
+}
+#Surface emissivity
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 124 ;
+}
+#Vertical integral of water vapour
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 55 ;
+}
+#Snow depth
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 190 ;
+ parameterNumber = 141 ;
+}
+#Mean total snowfall rate
+'m of water equivalent s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 144 ;
+}
+#Evaporation
+'m of water s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 182 ;
+}
+#Mean total precipitation rate
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 228 ;
+}
+#Mean large-scale precipitation rate
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 142 ;
+}
+#Mean convective precipitation rate
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 143 ;
+}
+#Mean runoff rate
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 205 ;
+}
+#Mean total cloud cover
+'(0 - 1)' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 6 ;
+}
+#Mean of 10 metre wind speed
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 5 ;
+}
+#Sea water potential temperature
+'deg C' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+}
+#Sea water practical salinity
+'psu' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+}
+#Upward sea water velocity
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+}
+#Sea water sigma theta
+'kg m**-3' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+}
+#Surface downward eastward stress
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+}
+#Surface downward northward stress
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
+#Surface geopotential
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+}
+#Vertical integral of temperature
+'K kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+}
+#Vertical integral of cloud liquid water
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+}
+#Vertical integral of cloud frozen water
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+}
+#Vertical integral of ozone
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+}
+#Vertical integral of energy conversion
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+}
+#Vertical integral of eastward mass flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+}
+#Vertical integral of northward mass flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+}
+#Vertical integral of eastward kinetic energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+}
+#Vertical integral of northward kinetic energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+}
+#Vertical integral of eastward geopotential flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+}
+#Vertical integral of northward geopotential flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+}
+#Vertical integral of eastward total energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+}
+#Vertical integral of northward total energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+}
+#Vertical integral of eastward ozone flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+}
+#Vertical integral of northward ozone flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+}
+#Vertical integral of divergence of mass flux
+'kg m**-2 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+}
+#Vertical integral of divergence of kinetic energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+}
+#Vertical integral of divergence of thermal energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+}
+#Vertical integral of divergence of geopotential flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+}
+#Vertical integral of divergence of total energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+}
+#Vertical integral of divergence of ozone flux
+'kg m**-2 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+}
+#Variance of geopotential
+'m**4 s**-4' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+}
+#Covariance of geopotential/temperature
+'m**2 K s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+}
+#Variance of temperature
+'K**2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+}
+#Covariance of geopotential/specific humidity
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+}
+#Covariance of temperature/specific humidity
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+}
+#Variance of specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+}
+#Covariance of u component/geopotential
+'m**3 s**-3' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+}
+#Covariance of u component/temperature
+'m s**-1 K' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+}
+#Covariance of u component/specific humidity
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+}
+#Variance of u component
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
+#Mean vertical velocity
+'Pa s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 130 ;
+ parameterNumber = 232 ;
+}
+#Mean surface sensible heat flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 146 ;
+}
+#Mean surface latent heat flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 147 ;
+}
+#Mean temperature at 2 metres in the last 24 hours
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre temperature in the last 24 hours gradient
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 55 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 128 ;
+ parameterNumber = 56 ;
+}
+#Mean 2 metre dewpoint temperature in the last 24 hours gradient
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 129 ;
+ parameterNumber = 56 ;
+}
+#Mean surface downward solar radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 169 ;
+}
+#Mean surface downward thermal radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 175 ;
+}
+#Mean surface net solar radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 176 ;
+}
+#Mean surface net thermal radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 177 ;
+}
+#Mean top net solar radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 178 ;
+}
+#Mean top net thermal radiation flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 179 ;
+}
+#East-West surface stress rate of accumulation
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 180 ;
+}
+#North-South surface stress rate of accumulation
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 181 ;
+}
+#Standard deviation wave height
+'m' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 240 ;
+}
+#Mean of 10 metre wind speed
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 241 ;
+}
+#Mean wind direction
+'degrees' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 242 ;
+}
+#Standard deviation of 10 metre wind speed
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 140 ;
+ parameterNumber = 243 ;
+}
+#Top net solar radiation, clear sky
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 208 ;
+}
+#Top net thermal radiation, clear sky
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 209 ;
+}
+#Surface net solar radiation, clear sky
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 210 ;
+}
+#Surface net thermal radiation, clear sky
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 211 ;
+}
+#Solar insolation rate of accumulation
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 172 ;
+ parameterNumber = 212 ;
+}
diff --git a/definitions/grib2/localConcepts/ecmf/unstructuredGridSubtype.def b/definitions/grib2/localConcepts/ecmf/unstructuredGridSubtype.def
index 3f93215f3..0f9911a54 100644
--- a/definitions/grib2/localConcepts/ecmf/unstructuredGridSubtype.def
+++ b/definitions/grib2/localConcepts/ecmf/unstructuredGridSubtype.def
@@ -4,3 +4,5 @@
'V' = { numberOfGridInReference = 3; }
'W' = { numberOfGridInReference = 4; }
'F' = { numberOfGridInReference = 5; }
+'C' = { numberOfGridInReference = 6; }
+'N' = { numberOfGridInReference = 7; }
diff --git a/definitions/grib2/localConcepts/ecmf/unstructuredGridType.def b/definitions/grib2/localConcepts/ecmf/unstructuredGridType.def
index 33dcb3cac..dfcc93e2f 100644
--- a/definitions/grib2/localConcepts/ecmf/unstructuredGridType.def
+++ b/definitions/grib2/localConcepts/ecmf/unstructuredGridType.def
@@ -6,3 +6,5 @@
'eORCA1' = { numberOfGridUsed = 5; }
'eORCA025' = { numberOfGridUsed = 6; }
'eORCA12' = { numberOfGridUsed = 7; }
+'CORE2' = { numberOfGridUsed = 8; }
+'NG5' = { numberOfGridUsed = 9; }
diff --git a/definitions/grib2/localConcepts/era/cfName.def b/definitions/grib2/localConcepts/era/cfName.def
new file mode 100644
index 000000000..f4a8abea5
--- /dev/null
+++ b/definitions/grib2/localConcepts/era/cfName.def
@@ -0,0 +1,72 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Geopotential
+'geopotential' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Temperature
+'air_temperature' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Specific humidity
+'specific_humidity' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Vertical velocity
+'lagrangian_tendency_of_air_pressure' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Sea water potential temperature
+'sea_water_potential_temperature' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+ }
+#Sea water practical salinity
+'sea_water_practical_salinity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+ }
+#Upward sea water velocity
+'upward_sea_water_velocity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+ }
+#Sea water sigma theta
+'sea_water_sigma_theta' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+ }
+#Surface downward eastward stress
+'surface_downward_eastward_stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+ }
+#Surface downward northward stress
+'surface_downward_northward_stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+}
diff --git a/definitions/grib2/localConcepts/era/name.def b/definitions/grib2/localConcepts/era/name.def
new file mode 100644
index 000000000..78a476de6
--- /dev/null
+++ b/definitions/grib2/localConcepts/era/name.def
@@ -0,0 +1,716 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Geopotential
+'Geopotential' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Temperature
+'Temperature' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Specific humidity
+'Specific humidity' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Vertical velocity
+'Vertical velocity' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Logarithm of surface pressure
+'Logarithm of surface pressure' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Temperature difference
+'Temperature difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 130 ;
+ }
+#Specific humidity difference
+'Specific humidity difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 133 ;
+ }
+#Vorticity (relative) difference
+'Vorticity (relative) difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 138 ;
+ }
+#Logarithm of surface pressure difference
+'Logarithm of surface pressure difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 152 ;
+ }
+#Divergence difference
+'Divergence difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 155 ;
+ }
+#Ozone mass mixing ratio difference
+'Ozone mass mixing ratio difference' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 203 ;
+ }
+#Snow depth
+'Snow depth' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Random pattern 1 for sppt
+'Random pattern 1 for sppt' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 1 ;
+ }
+#Random pattern 2 for sppt
+'Random pattern 2 for sppt' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 2 ;
+ }
+#Random pattern 3 for sppt
+'Random pattern 3 for sppt' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 3 ;
+ }
+#Random pattern 1 for SPP scheme
+'Random pattern 1 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 101 ;
+ }
+#Random pattern 2 for SPP scheme
+'Random pattern 2 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 102 ;
+ }
+#Random pattern 3 for SPP scheme
+'Random pattern 3 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 103 ;
+ }
+#Random pattern 4 for SPP scheme
+'Random pattern 4 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 104 ;
+ }
+#Random pattern 5 for SPP scheme
+'Random pattern 5 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 105 ;
+ }
+#Random pattern 6 for SPP scheme
+'Random pattern 6 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 106 ;
+ }
+#Random pattern 7 for SPP scheme
+'Random pattern 7 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 107 ;
+ }
+#Random pattern 8 for SPP scheme
+'Random pattern 8 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 108 ;
+ }
+#Random pattern 9 for SPP scheme
+'Random pattern 9 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 109 ;
+ }
+#Random pattern 10 for SPP scheme
+'Random pattern 10 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 110 ;
+ }
+#Random pattern 11 for SPP scheme
+'Random pattern 11 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 111 ;
+ }
+#Random pattern 12 for SPP scheme
+'Random pattern 12 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 112 ;
+ }
+#Random pattern 13 for SPP scheme
+'Random pattern 13 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 113 ;
+ }
+#Random pattern 14 for SPP scheme
+'Random pattern 14 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 114 ;
+ }
+#Random pattern 15 for SPP scheme
+'Random pattern 15 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 115 ;
+ }
+#Random pattern 16 for SPP scheme
+'Random pattern 16 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 116 ;
+ }
+#Random pattern 17 for SPP scheme
+'Random pattern 17 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 117 ;
+ }
+#Random pattern 18 for SPP scheme
+'Random pattern 18 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 118 ;
+ }
+#Random pattern 19 for SPP scheme
+'Random pattern 19 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 119 ;
+ }
+#Random pattern 20 for SPP scheme
+'Random pattern 20 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 120 ;
+ }
+#Random pattern 21 for SPP scheme
+'Random pattern 21 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 121 ;
+ }
+#Random pattern 22 for SPP scheme
+'Random pattern 22 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 122 ;
+ }
+#Random pattern 23 for SPP scheme
+'Random pattern 23 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 123 ;
+ }
+#Random pattern 24 for SPP scheme
+'Random pattern 24 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 124 ;
+ }
+#Random pattern 25 for SPP scheme
+'Random pattern 25 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 125 ;
+ }
+#Random pattern 26 for SPP scheme
+'Random pattern 26 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 126 ;
+ }
+#Random pattern 27 for SPP scheme
+'Random pattern 27 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 127 ;
+ }
+#Random pattern 28 for SPP scheme
+'Random pattern 28 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 128 ;
+ }
+#Random pattern 29 for SPP scheme
+'Random pattern 29 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 129 ;
+ }
+#Random pattern 30 for SPP scheme
+'Random pattern 30 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 130 ;
+ }
+#Random pattern 31 for SPP scheme
+'Random pattern 31 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 131 ;
+ }
+#Random pattern 32 for SPP scheme
+'Random pattern 32 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 132 ;
+ }
+#Random pattern 33 for SPP scheme
+'Random pattern 33 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 133 ;
+ }
+#Random pattern 34 for SPP scheme
+'Random pattern 34 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 134 ;
+ }
+#Random pattern 35 for SPP scheme
+'Random pattern 35 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 135 ;
+ }
+#Random pattern 36 for SPP scheme
+'Random pattern 36 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 136 ;
+ }
+#Random pattern 37 for SPP scheme
+'Random pattern 37 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 137 ;
+ }
+#Random pattern 38 for SPP scheme
+'Random pattern 38 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 138 ;
+ }
+#Random pattern 39 for SPP scheme
+'Random pattern 39 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 139 ;
+ }
+#Random pattern 40 for SPP scheme
+'Random pattern 40 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 140 ;
+ }
+#Random pattern 41 for SPP scheme
+'Random pattern 41 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 141 ;
+ }
+#Random pattern 42 for SPP scheme
+'Random pattern 42 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 142 ;
+ }
+#Random pattern 43 for SPP scheme
+'Random pattern 43 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 143 ;
+ }
+#Random pattern 44 for SPP scheme
+'Random pattern 44 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 144 ;
+ }
+#Random pattern 45 for SPP scheme
+'Random pattern 45 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 145 ;
+ }
+#Random pattern 46 for SPP scheme
+'Random pattern 46 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 146 ;
+ }
+#Random pattern 47 for SPP scheme
+'Random pattern 47 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 147 ;
+ }
+#Random pattern 48 for SPP scheme
+'Random pattern 48 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 148 ;
+ }
+#Random pattern 49 for SPP scheme
+'Random pattern 49 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 149 ;
+ }
+#Random pattern 50 for SPP scheme
+'Random pattern 50 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 150 ;
+ }
+#Random pattern 51 for SPP scheme
+'Random pattern 51 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 151 ;
+ }
+#Random pattern 52 for SPP scheme
+'Random pattern 52 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 152 ;
+ }
+#Random pattern 53 for SPP scheme
+'Random pattern 53 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 153 ;
+ }
+#Random pattern 54 for SPP scheme
+'Random pattern 54 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 154 ;
+ }
+#Random pattern 55 for SPP scheme
+'Random pattern 55 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 155 ;
+ }
+#Random pattern 56 for SPP scheme
+'Random pattern 56 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 156 ;
+ }
+#Random pattern 57 for SPP scheme
+'Random pattern 57 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 157 ;
+ }
+#Random pattern 58 for SPP scheme
+'Random pattern 58 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 158 ;
+ }
+#Random pattern 59 for SPP scheme
+'Random pattern 59 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 159 ;
+ }
+#Random pattern 60 for SPP scheme
+'Random pattern 60 for SPP scheme' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 160 ;
+ }
+#Evaporation from the top of canopy
+'Evaporation from the top of canopy' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 100 ;
+ }
+#Evaporation from bare soil
+'Evaporation from bare soil' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 101 ;
+ }
+#Evaporation from open water surfaces excluding oceans
+'Evaporation from open water surfaces excluding oceans' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 102 ;
+ }
+#Evaporation from vegetation transpiration
+'Evaporation from vegetation transpiration' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 103 ;
+ }
+#Snow cover
+'Snow cover' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Sea water potential temperature
+'Sea water potential temperature' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+ }
+#Sea water practical salinity
+'Sea water practical salinity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+ }
+#Upward sea water velocity
+'Upward sea water velocity' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+ }
+#Sea water sigma theta
+'Sea water sigma theta' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+ }
+#Surface downward eastward stress
+'Surface downward eastward stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+ }
+#Surface downward northward stress
+'Surface downward northward stress' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+ }
+#Surface geopotential
+'Surface geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+ }
+#Vertical integral of temperature
+'Vertical integral of temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+ }
+#Vertical integral of cloud liquid water
+'Vertical integral of cloud liquid water' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+ }
+#Vertical integral of cloud frozen water
+'Vertical integral of cloud frozen water' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+ }
+#Vertical integral of ozone
+'Vertical integral of ozone' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+ }
+#Vertical integral of energy conversion
+'Vertical integral of energy conversion' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+ }
+#Vertical integral of eastward mass flux
+'Vertical integral of eastward mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+ }
+#Vertical integral of northward mass flux
+'Vertical integral of northward mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+ }
+#Vertical integral of eastward kinetic energy flux
+'Vertical integral of eastward kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+ }
+#Vertical integral of northward kinetic energy flux
+'Vertical integral of northward kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+ }
+#Vertical integral of eastward geopotential flux
+'Vertical integral of eastward geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+ }
+#Vertical integral of northward geopotential flux
+'Vertical integral of northward geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+ }
+#Vertical integral of eastward total energy flux
+'Vertical integral of eastward total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+ }
+#Vertical integral of northward total energy flux
+'Vertical integral of northward total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+ }
+#Vertical integral of eastward ozone flux
+'Vertical integral of eastward ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+ }
+#Vertical integral of northward ozone flux
+'Vertical integral of northward ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+ }
+#Vertical integral of divergence of mass flux
+'Vertical integral of divergence of mass flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+ }
+#Vertical integral of divergence of kinetic energy flux
+'Vertical integral of divergence of kinetic energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+ }
+#Vertical integral of divergence of thermal energy flux
+'Vertical integral of divergence of thermal energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+ }
+#Vertical integral of divergence of geopotential flux
+'Vertical integral of divergence of geopotential flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+ }
+#Vertical integral of divergence of total energy flux
+'Vertical integral of divergence of total energy flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+ }
+#Vertical integral of divergence of ozone flux
+'Vertical integral of divergence of ozone flux' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+ }
+#Variance of geopotential
+'Variance of geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+ }
+#Covariance of geopotential/temperature
+'Covariance of geopotential/temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+ }
+#Variance of temperature
+'Variance of temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+ }
+#Covariance of geopotential/specific humidity
+'Covariance of geopotential/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+ }
+#Covariance of temperature/specific humidity
+'Covariance of temperature/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+ }
+#Variance of specific humidity
+'Variance of specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+ }
+#Covariance of u component/geopotential
+'Covariance of u component/geopotential' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+ }
+#Covariance of u component/temperature
+'Covariance of u component/temperature' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+ }
+#Covariance of u component/specific humidity
+'Covariance of u component/specific humidity' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+ }
+#Variance of u component
+'Variance of u component' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
diff --git a/definitions/grib2/localConcepts/era/paramId.def b/definitions/grib2/localConcepts/era/paramId.def
new file mode 100644
index 000000000..31219cfa9
--- /dev/null
+++ b/definitions/grib2/localConcepts/era/paramId.def
@@ -0,0 +1,716 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Geopotential
+'129' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Temperature
+'130' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Specific humidity
+'133' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Vertical velocity
+'135' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Logarithm of surface pressure
+'152' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Temperature difference
+'200130' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 130 ;
+ }
+#Specific humidity difference
+'200133' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 133 ;
+ }
+#Vorticity (relative) difference
+'200138' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 138 ;
+ }
+#Logarithm of surface pressure difference
+'200152' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 152 ;
+ }
+#Divergence difference
+'200155' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 155 ;
+ }
+#Ozone mass mixing ratio difference
+'200203' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 203 ;
+ }
+#Snow depth
+'3066' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Random pattern 1 for sppt
+'213001' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 1 ;
+ }
+#Random pattern 2 for sppt
+'213002' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 2 ;
+ }
+#Random pattern 3 for sppt
+'213003' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 3 ;
+ }
+#Random pattern 1 for SPP scheme
+'213101' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 101 ;
+ }
+#Random pattern 2 for SPP scheme
+'213102' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 102 ;
+ }
+#Random pattern 3 for SPP scheme
+'213103' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 103 ;
+ }
+#Random pattern 4 for SPP scheme
+'213104' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 104 ;
+ }
+#Random pattern 5 for SPP scheme
+'213105' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 105 ;
+ }
+#Random pattern 6 for SPP scheme
+'213106' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 106 ;
+ }
+#Random pattern 7 for SPP scheme
+'213107' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 107 ;
+ }
+#Random pattern 8 for SPP scheme
+'213108' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 108 ;
+ }
+#Random pattern 9 for SPP scheme
+'213109' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 109 ;
+ }
+#Random pattern 10 for SPP scheme
+'213110' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 110 ;
+ }
+#Random pattern 11 for SPP scheme
+'213111' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 111 ;
+ }
+#Random pattern 12 for SPP scheme
+'213112' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 112 ;
+ }
+#Random pattern 13 for SPP scheme
+'213113' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 113 ;
+ }
+#Random pattern 14 for SPP scheme
+'213114' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 114 ;
+ }
+#Random pattern 15 for SPP scheme
+'213115' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 115 ;
+ }
+#Random pattern 16 for SPP scheme
+'213116' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 116 ;
+ }
+#Random pattern 17 for SPP scheme
+'213117' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 117 ;
+ }
+#Random pattern 18 for SPP scheme
+'213118' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 118 ;
+ }
+#Random pattern 19 for SPP scheme
+'213119' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 119 ;
+ }
+#Random pattern 20 for SPP scheme
+'213120' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 120 ;
+ }
+#Random pattern 21 for SPP scheme
+'213121' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 121 ;
+ }
+#Random pattern 22 for SPP scheme
+'213122' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 122 ;
+ }
+#Random pattern 23 for SPP scheme
+'213123' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 123 ;
+ }
+#Random pattern 24 for SPP scheme
+'213124' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 124 ;
+ }
+#Random pattern 25 for SPP scheme
+'213125' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 125 ;
+ }
+#Random pattern 26 for SPP scheme
+'213126' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 126 ;
+ }
+#Random pattern 27 for SPP scheme
+'213127' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 127 ;
+ }
+#Random pattern 28 for SPP scheme
+'213128' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 128 ;
+ }
+#Random pattern 29 for SPP scheme
+'213129' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 129 ;
+ }
+#Random pattern 30 for SPP scheme
+'213130' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 130 ;
+ }
+#Random pattern 31 for SPP scheme
+'213131' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 131 ;
+ }
+#Random pattern 32 for SPP scheme
+'213132' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 132 ;
+ }
+#Random pattern 33 for SPP scheme
+'213133' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 133 ;
+ }
+#Random pattern 34 for SPP scheme
+'213134' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 134 ;
+ }
+#Random pattern 35 for SPP scheme
+'213135' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 135 ;
+ }
+#Random pattern 36 for SPP scheme
+'213136' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 136 ;
+ }
+#Random pattern 37 for SPP scheme
+'213137' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 137 ;
+ }
+#Random pattern 38 for SPP scheme
+'213138' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 138 ;
+ }
+#Random pattern 39 for SPP scheme
+'213139' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 139 ;
+ }
+#Random pattern 40 for SPP scheme
+'213140' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 140 ;
+ }
+#Random pattern 41 for SPP scheme
+'213141' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 141 ;
+ }
+#Random pattern 42 for SPP scheme
+'213142' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 142 ;
+ }
+#Random pattern 43 for SPP scheme
+'213143' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 143 ;
+ }
+#Random pattern 44 for SPP scheme
+'213144' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 144 ;
+ }
+#Random pattern 45 for SPP scheme
+'213145' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 145 ;
+ }
+#Random pattern 46 for SPP scheme
+'213146' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 146 ;
+ }
+#Random pattern 47 for SPP scheme
+'213147' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 147 ;
+ }
+#Random pattern 48 for SPP scheme
+'213148' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 148 ;
+ }
+#Random pattern 49 for SPP scheme
+'213149' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 149 ;
+ }
+#Random pattern 50 for SPP scheme
+'213150' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 150 ;
+ }
+#Random pattern 51 for SPP scheme
+'213151' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 151 ;
+ }
+#Random pattern 52 for SPP scheme
+'213152' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 152 ;
+ }
+#Random pattern 53 for SPP scheme
+'213153' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 153 ;
+ }
+#Random pattern 54 for SPP scheme
+'213154' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 154 ;
+ }
+#Random pattern 55 for SPP scheme
+'213155' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 155 ;
+ }
+#Random pattern 56 for SPP scheme
+'213156' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 156 ;
+ }
+#Random pattern 57 for SPP scheme
+'213157' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 157 ;
+ }
+#Random pattern 58 for SPP scheme
+'213158' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 158 ;
+ }
+#Random pattern 59 for SPP scheme
+'213159' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 159 ;
+ }
+#Random pattern 60 for SPP scheme
+'213160' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 160 ;
+ }
+#Evaporation from the top of canopy
+'228100' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 100 ;
+ }
+#Evaporation from bare soil
+'228101' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 101 ;
+ }
+#Evaporation from open water surfaces excluding oceans
+'228102' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 102 ;
+ }
+#Evaporation from vegetation transpiration
+'228103' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 103 ;
+ }
+#Snow cover
+'260038' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Sea water potential temperature
+'151129' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+ }
+#Sea water practical salinity
+'151130' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+ }
+#Upward sea water velocity
+'151133' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+ }
+#Sea water sigma theta
+'151138' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+ }
+#Surface downward eastward stress
+'151153' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+ }
+#Surface downward northward stress
+'151154' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+ }
+#Surface geopotential
+'162051' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+ }
+#Vertical integral of temperature
+'162054' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+ }
+#Vertical integral of cloud liquid water
+'162056' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+ }
+#Vertical integral of cloud frozen water
+'162057' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+ }
+#Vertical integral of ozone
+'162058' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+ }
+#Vertical integral of energy conversion
+'162064' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+ }
+#Vertical integral of eastward mass flux
+'162065' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+ }
+#Vertical integral of northward mass flux
+'162066' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+ }
+#Vertical integral of eastward kinetic energy flux
+'162067' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+ }
+#Vertical integral of northward kinetic energy flux
+'162068' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+ }
+#Vertical integral of eastward geopotential flux
+'162073' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+ }
+#Vertical integral of northward geopotential flux
+'162074' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+ }
+#Vertical integral of eastward total energy flux
+'162075' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+ }
+#Vertical integral of northward total energy flux
+'162076' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+ }
+#Vertical integral of eastward ozone flux
+'162077' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+ }
+#Vertical integral of northward ozone flux
+'162078' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+ }
+#Vertical integral of divergence of mass flux
+'162081' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+ }
+#Vertical integral of divergence of kinetic energy flux
+'162082' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+ }
+#Vertical integral of divergence of thermal energy flux
+'162083' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+ }
+#Vertical integral of divergence of geopotential flux
+'162085' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+ }
+#Vertical integral of divergence of total energy flux
+'162086' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+ }
+#Vertical integral of divergence of ozone flux
+'162087' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+ }
+#Variance of geopotential
+'162206' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+ }
+#Covariance of geopotential/temperature
+'162207' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+ }
+#Variance of temperature
+'162208' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+ }
+#Covariance of geopotential/specific humidity
+'162209' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+ }
+#Covariance of temperature/specific humidity
+'162210' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+ }
+#Variance of specific humidity
+'162211' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+ }
+#Covariance of u component/geopotential
+'162212' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+ }
+#Covariance of u component/temperature
+'162213' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+ }
+#Covariance of u component/specific humidity
+'162214' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+ }
+#Variance of u component
+'162215' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
diff --git a/definitions/grib2/localConcepts/era/shortName.def b/definitions/grib2/localConcepts/era/shortName.def
new file mode 100644
index 000000000..beb0f3d79
--- /dev/null
+++ b/definitions/grib2/localConcepts/era/shortName.def
@@ -0,0 +1,716 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Geopotential
+'z' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Temperature
+'t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Specific humidity
+'q' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Vertical velocity
+'w' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Logarithm of surface pressure
+'lnsp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Temperature difference
+'tdiff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 130 ;
+ }
+#Specific humidity difference
+'qdiff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 133 ;
+ }
+#Vorticity (relative) difference
+'vodiff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 138 ;
+ }
+#Logarithm of surface pressure difference
+'lnspdiff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 152 ;
+ }
+#Divergence difference
+'ddiff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 155 ;
+ }
+#Ozone mass mixing ratio difference
+'o3diff' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 203 ;
+ }
+#Snow depth
+'sde' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Random pattern 1 for sppt
+'sppt1' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 1 ;
+ }
+#Random pattern 2 for sppt
+'sppt2' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 2 ;
+ }
+#Random pattern 3 for sppt
+'sppt3' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 3 ;
+ }
+#Random pattern 1 for SPP scheme
+'spp1' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 101 ;
+ }
+#Random pattern 2 for SPP scheme
+'spp2' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 102 ;
+ }
+#Random pattern 3 for SPP scheme
+'spp3' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 103 ;
+ }
+#Random pattern 4 for SPP scheme
+'spp4' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 104 ;
+ }
+#Random pattern 5 for SPP scheme
+'spp5' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 105 ;
+ }
+#Random pattern 6 for SPP scheme
+'spp6' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 106 ;
+ }
+#Random pattern 7 for SPP scheme
+'spp7' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 107 ;
+ }
+#Random pattern 8 for SPP scheme
+'spp8' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 108 ;
+ }
+#Random pattern 9 for SPP scheme
+'spp9' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 109 ;
+ }
+#Random pattern 10 for SPP scheme
+'spp10' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 110 ;
+ }
+#Random pattern 11 for SPP scheme
+'spp11' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 111 ;
+ }
+#Random pattern 12 for SPP scheme
+'spp12' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 112 ;
+ }
+#Random pattern 13 for SPP scheme
+'spp13' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 113 ;
+ }
+#Random pattern 14 for SPP scheme
+'spp14' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 114 ;
+ }
+#Random pattern 15 for SPP scheme
+'spp15' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 115 ;
+ }
+#Random pattern 16 for SPP scheme
+'spp16' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 116 ;
+ }
+#Random pattern 17 for SPP scheme
+'spp17' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 117 ;
+ }
+#Random pattern 18 for SPP scheme
+'spp18' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 118 ;
+ }
+#Random pattern 19 for SPP scheme
+'spp19' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 119 ;
+ }
+#Random pattern 20 for SPP scheme
+'spp20' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 120 ;
+ }
+#Random pattern 21 for SPP scheme
+'spp21' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 121 ;
+ }
+#Random pattern 22 for SPP scheme
+'spp22' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 122 ;
+ }
+#Random pattern 23 for SPP scheme
+'spp23' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 123 ;
+ }
+#Random pattern 24 for SPP scheme
+'spp24' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 124 ;
+ }
+#Random pattern 25 for SPP scheme
+'spp25' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 125 ;
+ }
+#Random pattern 26 for SPP scheme
+'spp26' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 126 ;
+ }
+#Random pattern 27 for SPP scheme
+'spp27' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 127 ;
+ }
+#Random pattern 28 for SPP scheme
+'spp28' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 128 ;
+ }
+#Random pattern 29 for SPP scheme
+'spp29' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 129 ;
+ }
+#Random pattern 30 for SPP scheme
+'spp30' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 130 ;
+ }
+#Random pattern 31 for SPP scheme
+'spp31' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 131 ;
+ }
+#Random pattern 32 for SPP scheme
+'spp32' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 132 ;
+ }
+#Random pattern 33 for SPP scheme
+'spp33' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 133 ;
+ }
+#Random pattern 34 for SPP scheme
+'spp34' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 134 ;
+ }
+#Random pattern 35 for SPP scheme
+'spp35' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 135 ;
+ }
+#Random pattern 36 for SPP scheme
+'spp36' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 136 ;
+ }
+#Random pattern 37 for SPP scheme
+'spp37' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 137 ;
+ }
+#Random pattern 38 for SPP scheme
+'spp38' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 138 ;
+ }
+#Random pattern 39 for SPP scheme
+'spp39' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 139 ;
+ }
+#Random pattern 40 for SPP scheme
+'spp40' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 140 ;
+ }
+#Random pattern 41 for SPP scheme
+'spp41' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 141 ;
+ }
+#Random pattern 42 for SPP scheme
+'spp42' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 142 ;
+ }
+#Random pattern 43 for SPP scheme
+'spp43' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 143 ;
+ }
+#Random pattern 44 for SPP scheme
+'spp44' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 144 ;
+ }
+#Random pattern 45 for SPP scheme
+'spp45' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 145 ;
+ }
+#Random pattern 46 for SPP scheme
+'spp46' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 146 ;
+ }
+#Random pattern 47 for SPP scheme
+'spp47' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 147 ;
+ }
+#Random pattern 48 for SPP scheme
+'spp48' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 148 ;
+ }
+#Random pattern 49 for SPP scheme
+'spp49' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 149 ;
+ }
+#Random pattern 50 for SPP scheme
+'spp50' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 150 ;
+ }
+#Random pattern 51 for SPP scheme
+'spp51' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 151 ;
+ }
+#Random pattern 52 for SPP scheme
+'spp52' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 152 ;
+ }
+#Random pattern 53 for SPP scheme
+'spp53' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 153 ;
+ }
+#Random pattern 54 for SPP scheme
+'spp54' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 154 ;
+ }
+#Random pattern 55 for SPP scheme
+'spp55' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 155 ;
+ }
+#Random pattern 56 for SPP scheme
+'spp56' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 156 ;
+ }
+#Random pattern 57 for SPP scheme
+'spp57' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 157 ;
+ }
+#Random pattern 58 for SPP scheme
+'spp58' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 158 ;
+ }
+#Random pattern 59 for SPP scheme
+'spp59' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 159 ;
+ }
+#Random pattern 60 for SPP scheme
+'spp60' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 160 ;
+ }
+#Evaporation from the top of canopy
+'evatc' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 100 ;
+ }
+#Evaporation from bare soil
+'evabs' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 101 ;
+ }
+#Evaporation from open water surfaces excluding oceans
+'evaow' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 102 ;
+ }
+#Evaporation from vegetation transpiration
+'evavt' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 103 ;
+ }
+#Snow cover
+'snowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Sea water potential temperature
+'thetao' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+ }
+#Sea water practical salinity
+'so' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+ }
+#Upward sea water velocity
+'wo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+ }
+#Sea water sigma theta
+'sigmat' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+ }
+#Surface downward eastward stress
+'taueo' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+ }
+#Surface downward northward stress
+'tauno' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+ }
+#Surface geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+ }
+#Vertical integral of temperature
+'vit' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+ }
+#Vertical integral of cloud liquid water
+'vilw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+ }
+#Vertical integral of cloud frozen water
+'viiw' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+ }
+#Vertical integral of ozone
+'vioz' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+ }
+#Vertical integral of energy conversion
+'viec' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+ }
+#Vertical integral of eastward mass flux
+'vimae' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+ }
+#Vertical integral of northward mass flux
+'viman' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+ }
+#Vertical integral of eastward kinetic energy flux
+'vikee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+ }
+#Vertical integral of northward kinetic energy flux
+'viken' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+ }
+#Vertical integral of eastward geopotential flux
+'vige' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+ }
+#Vertical integral of northward geopotential flux
+'vign' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+ }
+#Vertical integral of eastward total energy flux
+'vitoee' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+ }
+#Vertical integral of northward total energy flux
+'vitoen' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+ }
+#Vertical integral of eastward ozone flux
+'vioze' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+ }
+#Vertical integral of northward ozone flux
+'viozn' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+ }
+#Vertical integral of divergence of mass flux
+'vimad' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+ }
+#Vertical integral of divergence of kinetic energy flux
+'viked' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+ }
+#Vertical integral of divergence of thermal energy flux
+'vithed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+ }
+#Vertical integral of divergence of geopotential flux
+'vigd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+ }
+#Vertical integral of divergence of total energy flux
+'vitoed' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+ }
+#Vertical integral of divergence of ozone flux
+'viozd' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+ }
+#Variance of geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+ }
+#Covariance of geopotential/temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+ }
+#Variance of temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+ }
+#Covariance of geopotential/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+ }
+#Covariance of temperature/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+ }
+#Variance of specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+ }
+#Covariance of u component/geopotential
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+ }
+#Covariance of u component/temperature
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+ }
+#Covariance of u component/specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+ }
+#Variance of u component
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
diff --git a/definitions/grib2/localConcepts/era/units.def b/definitions/grib2/localConcepts/era/units.def
new file mode 100644
index 000000000..95c5b4af8
--- /dev/null
+++ b/definitions/grib2/localConcepts/era/units.def
@@ -0,0 +1,716 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Geopotential
+'m**2 s**-2' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Specific humidity
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Vertical velocity
+'Pa s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Logarithm of surface pressure
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Temperature difference
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 130 ;
+ }
+#Specific humidity difference
+'kg kg**-1' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 133 ;
+ }
+#Vorticity (relative) difference
+'s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 138 ;
+ }
+#Logarithm of surface pressure difference
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 152 ;
+ }
+#Divergence difference
+'s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 155 ;
+ }
+#Ozone mass mixing ratio difference
+'kg kg**-1' = {
+ discipline = 192 ;
+ parameterCategory = 200 ;
+ parameterNumber = 203 ;
+ }
+#Snow depth
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Random pattern 1 for sppt
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 1 ;
+ }
+#Random pattern 2 for sppt
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 2 ;
+ }
+#Random pattern 3 for sppt
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 3 ;
+ }
+#Random pattern 1 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 101 ;
+ }
+#Random pattern 2 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 102 ;
+ }
+#Random pattern 3 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 103 ;
+ }
+#Random pattern 4 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 104 ;
+ }
+#Random pattern 5 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 105 ;
+ }
+#Random pattern 6 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 106 ;
+ }
+#Random pattern 7 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 107 ;
+ }
+#Random pattern 8 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 108 ;
+ }
+#Random pattern 9 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 109 ;
+ }
+#Random pattern 10 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 110 ;
+ }
+#Random pattern 11 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 111 ;
+ }
+#Random pattern 12 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 112 ;
+ }
+#Random pattern 13 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 113 ;
+ }
+#Random pattern 14 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 114 ;
+ }
+#Random pattern 15 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 115 ;
+ }
+#Random pattern 16 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 116 ;
+ }
+#Random pattern 17 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 117 ;
+ }
+#Random pattern 18 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 118 ;
+ }
+#Random pattern 19 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 119 ;
+ }
+#Random pattern 20 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 120 ;
+ }
+#Random pattern 21 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 121 ;
+ }
+#Random pattern 22 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 122 ;
+ }
+#Random pattern 23 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 123 ;
+ }
+#Random pattern 24 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 124 ;
+ }
+#Random pattern 25 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 125 ;
+ }
+#Random pattern 26 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 126 ;
+ }
+#Random pattern 27 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 127 ;
+ }
+#Random pattern 28 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 128 ;
+ }
+#Random pattern 29 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 129 ;
+ }
+#Random pattern 30 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 130 ;
+ }
+#Random pattern 31 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 131 ;
+ }
+#Random pattern 32 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 132 ;
+ }
+#Random pattern 33 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 133 ;
+ }
+#Random pattern 34 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 134 ;
+ }
+#Random pattern 35 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 135 ;
+ }
+#Random pattern 36 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 136 ;
+ }
+#Random pattern 37 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 137 ;
+ }
+#Random pattern 38 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 138 ;
+ }
+#Random pattern 39 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 139 ;
+ }
+#Random pattern 40 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 140 ;
+ }
+#Random pattern 41 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 141 ;
+ }
+#Random pattern 42 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 142 ;
+ }
+#Random pattern 43 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 143 ;
+ }
+#Random pattern 44 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 144 ;
+ }
+#Random pattern 45 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 145 ;
+ }
+#Random pattern 46 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 146 ;
+ }
+#Random pattern 47 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 147 ;
+ }
+#Random pattern 48 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 148 ;
+ }
+#Random pattern 49 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 149 ;
+ }
+#Random pattern 50 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 150 ;
+ }
+#Random pattern 51 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 151 ;
+ }
+#Random pattern 52 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 152 ;
+ }
+#Random pattern 53 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 153 ;
+ }
+#Random pattern 54 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 154 ;
+ }
+#Random pattern 55 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 155 ;
+ }
+#Random pattern 56 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 156 ;
+ }
+#Random pattern 57 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 157 ;
+ }
+#Random pattern 58 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 158 ;
+ }
+#Random pattern 59 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 159 ;
+ }
+#Random pattern 60 for SPP scheme
+'dimensionless' = {
+ discipline = 192 ;
+ parameterCategory = 213 ;
+ parameterNumber = 160 ;
+ }
+#Evaporation from the top of canopy
+'m of water equivalent' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 100 ;
+ }
+#Evaporation from bare soil
+'m of water equivalent' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 101 ;
+ }
+#Evaporation from open water surfaces excluding oceans
+'m of water equivalent' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 102 ;
+ }
+#Evaporation from vegetation transpiration
+'m of water equivalent' = {
+ discipline = 192 ;
+ parameterCategory = 228 ;
+ parameterNumber = 103 ;
+ }
+#Snow cover
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Sea water potential temperature
+'deg C' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 129 ;
+ }
+#Sea water practical salinity
+'psu' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 130 ;
+ }
+#Upward sea water velocity
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 133 ;
+ }
+#Sea water sigma theta
+'kg m**-3' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 138 ;
+ }
+#Surface downward eastward stress
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 153 ;
+ }
+#Surface downward northward stress
+'N m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 151 ;
+ parameterNumber = 154 ;
+ }
+#Surface geopotential
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 51 ;
+ }
+#Vertical integral of temperature
+'K kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 54 ;
+ }
+#Vertical integral of cloud liquid water
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 56 ;
+ }
+#Vertical integral of cloud frozen water
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 57 ;
+ }
+#Vertical integral of ozone
+'kg m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 58 ;
+ }
+#Vertical integral of energy conversion
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 64 ;
+ }
+#Vertical integral of eastward mass flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 65 ;
+ }
+#Vertical integral of northward mass flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 66 ;
+ }
+#Vertical integral of eastward kinetic energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 67 ;
+ }
+#Vertical integral of northward kinetic energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 68 ;
+ }
+#Vertical integral of eastward geopotential flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 73 ;
+ }
+#Vertical integral of northward geopotential flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 74 ;
+ }
+#Vertical integral of eastward total energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 75 ;
+ }
+#Vertical integral of northward total energy flux
+'W m**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 76 ;
+ }
+#Vertical integral of eastward ozone flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 77 ;
+ }
+#Vertical integral of northward ozone flux
+'kg m**-1 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 78 ;
+ }
+#Vertical integral of divergence of mass flux
+'kg m**-2 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 81 ;
+ }
+#Vertical integral of divergence of kinetic energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 82 ;
+ }
+#Vertical integral of divergence of thermal energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 83 ;
+ }
+#Vertical integral of divergence of geopotential flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 85 ;
+ }
+#Vertical integral of divergence of total energy flux
+'W m**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 86 ;
+ }
+#Vertical integral of divergence of ozone flux
+'kg m**-2 s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 87 ;
+ }
+#Variance of geopotential
+'m**4 s**-4' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 206 ;
+ }
+#Covariance of geopotential/temperature
+'m**2 K s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 207 ;
+ }
+#Variance of temperature
+'K**2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 208 ;
+ }
+#Covariance of geopotential/specific humidity
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 209 ;
+ }
+#Covariance of temperature/specific humidity
+'K' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 210 ;
+ }
+#Variance of specific humidity
+'~' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 211 ;
+ }
+#Covariance of u component/geopotential
+'m**3 s**-3' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 212 ;
+ }
+#Covariance of u component/temperature
+'m s**-1 K' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 213 ;
+ }
+#Covariance of u component/specific humidity
+'m s**-1' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 214 ;
+ }
+#Variance of u component
+'m**2 s**-2' = {
+ discipline = 192 ;
+ parameterCategory = 162 ;
+ parameterNumber = 215 ;
+}
diff --git a/definitions/grib2/localConcepts/era6/cfName.def b/definitions/grib2/localConcepts/era6/cfName.def
new file mode 100644
index 000000000..b4593411b
--- /dev/null
+++ b/definitions/grib2/localConcepts/era6/cfName.def
@@ -0,0 +1,62 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Snow depth
+'lwe_thickness_of_surface_snow_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'lwe_thickness_of_stratiform_precipitation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'lwe_thickness_of_convective_precipitation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'lwe_thickness_of_snowfall_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total cloud cover
+'cloud_area_fraction' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'lwe_thickness_of_water_evaporation_amount' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column ozone
+'atmosphere_mass_content_of_ozone' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+}
diff --git a/definitions/grib2/localConcepts/era6/name.def b/definitions/grib2/localConcepts/era6/name.def
index 7a0ddd401..a716f4abd 100644
--- a/definitions/grib2/localConcepts/era6/name.def
+++ b/definitions/grib2/localConcepts/era6/name.def
@@ -1,4 +1,266 @@
# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'Surface runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'Sub-surface runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#UV visible albedo for direct radiation (climatological)
+'UV visible albedo for direct radiation (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for diffuse radiation (climatological)
+'UV visible albedo for diffuse radiation (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation (climatological)
+'Near IR albedo for direct radiation (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for diffuse radiation (climatological)
+'Near IR albedo for diffuse radiation (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Snow albedo
+'Snow albedo' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 192 ;
+ }
+#Snow evaporation
+'Snow evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowmelt
+'Snowmelt' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snow depth
+'Snow depth' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'Large-scale precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'Convective precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'Snowfall' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Logarithm of surface pressure
+'Logarithm of surface pressure' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Total cloud cover
+'Total cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'Evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'Low cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Medium cloud cover
+'Medium cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ }
+#High cloud cover
+'High cloud cover' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ }
+#Skin reservoir content
+'Skin reservoir content' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 205 ;
+ }
+#Runoff
+'Runoff' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column ozone
+'Total column ozone' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Total precipitation
+'Total precipitation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective snowfall
+'Convective snowfall' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall
+'Large-scale snowfall' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'Forecast albedo' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#UV visible albedo for direct radiation, isotropic component (climatological)
+'UV visible albedo for direct radiation, isotropic component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, volumetric component (climatological)
+'UV visible albedo for direct radiation, volumetric component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, geometric component (climatological)
+'UV visible albedo for direct radiation, geometric component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, isotropic component (climatological)
+'Near IR albedo for direct radiation, isotropic component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, volumetric component (climatological)
+'Near IR albedo for direct radiation, volumetric component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, geometric component (climatological)
+'Near IR albedo for direct radiation, geometric component (climatological)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
#Accumulated Carbon Dioxide Net Ecosystem Exchange
'Accumulated Carbon Dioxide Net Ecosystem Exchange' = {
discipline = 2 ;
@@ -50,6 +312,24 @@
constituentType = 3 ;
is_chemical = 1 ;
}
+#Accumulated freezing rain
+'Accumulated freezing rain' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Potential evaporation
+'Potential evaporation' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Time integrated, vertically integrated eastward ozone flux
'Time integrated, vertically integrated eastward ozone flux' = {
discipline = 0 ;
diff --git a/definitions/grib2/localConcepts/era6/paramId.def b/definitions/grib2/localConcepts/era6/paramId.def
index d8bafd40e..48ebc11f2 100644
--- a/definitions/grib2/localConcepts/era6/paramId.def
+++ b/definitions/grib2/localConcepts/era6/paramId.def
@@ -1,4 +1,266 @@
# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'8' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'9' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#UV visible albedo for direct radiation (climatological)
+'15' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for diffuse radiation (climatological)
+'16' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation (climatological)
+'17' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for diffuse radiation (climatological)
+'18' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Snow albedo
+'32' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 192 ;
+ }
+#Snow evaporation
+'44' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowmelt
+'45' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snow depth
+'141' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'142' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'143' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'144' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Logarithm of surface pressure
+'152' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Total cloud cover
+'164' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'182' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'186' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Medium cloud cover
+'187' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ }
+#High cloud cover
+'188' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ }
+#Skin reservoir content
+'198' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 205 ;
+ }
+#Runoff
+'205' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column ozone
+'206' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Total precipitation
+'228' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective snowfall
+'239' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall
+'240' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'243' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#UV visible albedo for direct radiation, isotropic component (climatological)
+'210186' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, volumetric component (climatological)
+'210187' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, geometric component (climatological)
+'210188' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, isotropic component (climatological)
+'210189' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, volumetric component (climatological)
+'210190' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, geometric component (climatological)
+'210191' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
#Accumulated Carbon Dioxide Net Ecosystem Exchange
'228080' = {
discipline = 2 ;
@@ -50,6 +312,24 @@
constituentType = 3 ;
is_chemical = 1 ;
}
+#Accumulated freezing rain
+'228216' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Potential evaporation
+'228251' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Time integrated, vertically integrated eastward ozone flux
'233032' = {
discipline = 0 ;
diff --git a/definitions/grib2/localConcepts/era6/shortName.def b/definitions/grib2/localConcepts/era6/shortName.def
index fb08d337b..02efcff3c 100644
--- a/definitions/grib2/localConcepts/era6/shortName.def
+++ b/definitions/grib2/localConcepts/era6/shortName.def
@@ -1,4 +1,266 @@
# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'sro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'ssro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#UV visible albedo for direct radiation (climatological)
+'aluvp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for diffuse radiation (climatological)
+'aluvd' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation (climatological)
+'alnip' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for diffuse radiation (climatological)
+'alnid' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Snow albedo
+'asn' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 192 ;
+ }
+#Snow evaporation
+'es' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowmelt
+'smlt' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snow depth
+'sd' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'lsp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'cp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'sf' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Logarithm of surface pressure
+'lnsp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Total cloud cover
+'tcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'e' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'lcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Medium cloud cover
+'mcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ }
+#High cloud cover
+'hcc' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ }
+#Skin reservoir content
+'src' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 205 ;
+ }
+#Runoff
+'ro' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column ozone
+'tco3' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Total precipitation
+'tp' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective snowfall
+'csf' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall
+'lsf' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'fal' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#UV visible albedo for direct radiation, isotropic component (climatological)
+'aluvpi' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, volumetric component (climatological)
+'aluvpv' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, geometric component (climatological)
+'aluvpg' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, isotropic component (climatological)
+'alnipi' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, volumetric component (climatological)
+'alnipv' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, geometric component (climatological)
+'alnipg' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
#Accumulated Carbon Dioxide Net Ecosystem Exchange
'aco2nee' = {
discipline = 2 ;
@@ -50,6 +312,24 @@
constituentType = 3 ;
is_chemical = 1 ;
}
+#Accumulated freezing rain
+'fzra' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Potential evaporation
+'pev' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Time integrated, vertically integrated eastward ozone flux
'tvioze' = {
discipline = 0 ;
diff --git a/definitions/grib2/localConcepts/era6/units.def b/definitions/grib2/localConcepts/era6/units.def
index 299d44782..828da275e 100644
--- a/definitions/grib2/localConcepts/era6/units.def
+++ b/definitions/grib2/localConcepts/era6/units.def
@@ -1,4 +1,266 @@
# Automatically generated by ./create_def.pl, do not edit
+#Surface runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Sub-surface runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#UV visible albedo for direct radiation (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for diffuse radiation (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 193 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for diffuse radiation (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 192 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Snow albedo
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 192 ;
+ }
+#Snow evaporation
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 197 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowmelt
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snow depth
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 254 ;
+ }
+#Large-scale precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Snowfall
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Logarithm of surface pressure
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 25 ;
+ typeOfFirstFixedSurface = 105 ;
+ }
+#Total cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Evaporation
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Low cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Medium cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ }
+#High cloud cover
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ }
+#Skin reservoir content
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 205 ;
+ }
+#Runoff
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column ozone
+'kg m**-2' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Total precipitation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Convective snowfall
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 201 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall
+'m of water equivalent' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 202 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Forecast albedo
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#UV visible albedo for direct radiation, isotropic component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, volumetric component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#UV visible albedo for direct radiation, geometric component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, isotropic component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 195 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, volumetric component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 196 ;
+ typeOfGeneratingProcess = 9 ;
+ }
+#Near IR albedo for direct radiation, geometric component (climatological)
+'(0 - 1)' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 194 ;
+ typeOfGeneratingProcess = 9 ;
+ }
#Accumulated Carbon Dioxide Net Ecosystem Exchange
'kg m**-2' = {
discipline = 2 ;
@@ -50,6 +312,24 @@
constituentType = 3 ;
is_chemical = 1 ;
}
+#Accumulated freezing rain
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Potential evaporation
+'m' = {
+ localTablesVersion = 1 ;
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 200 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Time integrated, vertically integrated eastward ozone flux
'kg m**-1' = {
discipline = 0 ;
diff --git a/definitions/grib2/localConcepts/hydro/cfVarName.def b/definitions/grib2/localConcepts/hydro/cfVarName.def
index fd845ff80..19b565498 100644
--- a/definitions/grib2/localConcepts/hydro/cfVarName.def
+++ b/definitions/grib2/localConcepts/hydro/cfVarName.def
@@ -18,31 +18,4 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
- }
-#Time-integrated evapotranspiration rate in the last 24h
-'acc_et24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean total precipitation rate
-'avg_tp24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow melt rate in the last 24h
-'avg_smr24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
}
diff --git a/definitions/grib2/localConcepts/hydro/name.def b/definitions/grib2/localConcepts/hydro/name.def
index a965a0ad2..5390805f1 100644
--- a/definitions/grib2/localConcepts/hydro/name.def
+++ b/definitions/grib2/localConcepts/hydro/name.def
@@ -18,31 +18,4 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
- }
-#Time-integrated evapotranspiration rate in the last 24h
-'Time-integrated evapotranspiration rate in the last 24h' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean total precipitation rate
-'Time-mean total precipitation rate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow melt rate in the last 24h
-'Time-mean snow melt rate in the last 24h' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
}
diff --git a/definitions/grib2/localConcepts/hydro/paramId.def b/definitions/grib2/localConcepts/hydro/paramId.def
index fe0e452fc..dfd704793 100644
--- a/definitions/grib2/localConcepts/hydro/paramId.def
+++ b/definitions/grib2/localConcepts/hydro/paramId.def
@@ -18,31 +18,4 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
- }
-#Time-integrated evapotranspiration rate in the last 24h
-'260434' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean total precipitation rate
-'260441' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow melt rate in the last 24h
-'260477' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
}
diff --git a/definitions/grib2/localConcepts/hydro/shortName.def b/definitions/grib2/localConcepts/hydro/shortName.def
index fd845ff80..19b565498 100644
--- a/definitions/grib2/localConcepts/hydro/shortName.def
+++ b/definitions/grib2/localConcepts/hydro/shortName.def
@@ -18,31 +18,4 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
- }
-#Time-integrated evapotranspiration rate in the last 24h
-'acc_et24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean total precipitation rate
-'avg_tp24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow melt rate in the last 24h
-'avg_smr24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
}
diff --git a/definitions/grib2/localConcepts/hydro/units.def b/definitions/grib2/localConcepts/hydro/units.def
index 0c28cbfb1..60d462f2d 100644
--- a/definitions/grib2/localConcepts/hydro/units.def
+++ b/definitions/grib2/localConcepts/hydro/units.def
@@ -18,31 +18,4 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
- }
-#Time-integrated evapotranspiration rate in the last 24h
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean total precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow melt rate in the last 24h
-'kg m**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
}
diff --git a/definitions/grib2/localConcepts/kwbc/cfVarName.def b/definitions/grib2/localConcepts/kwbc/cfVarName.def
new file mode 100644
index 000000000..06c621dd5
--- /dev/null
+++ b/definitions/grib2/localConcepts/kwbc/cfVarName.def
@@ -0,0 +1,1915 @@
+# Automatically generated by ./create_def.pl, do not edit
+#Convective available potential energy
+'cape' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 6 ;
+ }
+#Snow phase change heat flux
+'snohf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 192 ;
+ }
+#Condensate
+'tcond' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 195 ;
+ }
+#Horizontal moisture convergence
+'mconv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 197 ;
+ }
+#Categorical rain
+'crain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 192 ;
+ }
+#Categorical freezing rain
+'cfrzr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ }
+#Categorical ice pellets
+'cicep' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ }
+#Categorical snow
+'csnow' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ }
+#Convective precipitation rate
+'cprat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 196 ;
+ }
+#Percent frozen precipitation
+'cpofp' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ }
+#Potential evaporation
+'pevap' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 199 ;
+ }
+#Snow cover
+'snowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 201 ;
+ }
+#Rain fraction of total cloud water
+'frain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 202 ;
+ }
+#Rime factor
+'rime' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 203 ;
+ }
+#Total column integrated rain
+'tcolr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 204 ;
+ }
+#Total column integrated snow
+'tcols' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 205 ;
+ }
+#Water equivalent of accumulated snow depth (deprecated)
+'sdwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ }
+#Vertical speed shear
+'vwsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 192 ;
+ }
+#Horizontal momentum flux
+'mflx' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 193 ;
+ }
+#U-component storm motion
+'ustm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 194 ;
+ }
+#V-component storm motion
+'vstm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 195 ;
+ }
+#Drag coefficient
+'cd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 196 ;
+ }
+#Frictional velocity
+'fricv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 197 ;
+ }
+#5-wave geopotential height
+'wavh5' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 193 ;
+ }
+#Zonal flux of gravity wave stress
+'u-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 194 ;
+ }
+#Meridional flux of gravity wave stress
+'v-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 195 ;
+ }
+#5-wave geopotential height anomaly
+'wava5' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 197 ;
+ }
+#Downward short-wave radiation flux
+'dswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 192 ;
+ }
+#Upward short-wave radiation flux
+'uswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 193 ;
+ }
+#UV index
+'uvi' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 196 ;
+ }
+#Downward long-wave radiation flux
+'dlwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 192 ;
+ }
+#Upward long-wave radiation flux
+'ulwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 193 ;
+ }
+#Non-convective cloud cover
+'cdlyr' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 192 ;
+ }
+#Cloud work function
+'cwork' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 193 ;
+ }
+#Convective cloud efficiency
+'cuefi' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 194 ;
+ }
+#Total column-integrated cloud water
+'tcolw' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 196 ;
+ }
+#Total column-integrated cloud ice
+'tcoli' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 197 ;
+ }
+#Total column-integrated condensate
+'tcolc' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 198 ;
+ }
+#Ice fraction of total condensate
+'fice' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 199 ;
+ }
+#Surface lifted index
+'lftx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 192 ;
+ }
+#Best (4-layer) lifted index
+'lftx4' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 193 ;
+ }
+#Ozone mixing ratio
+'o3mr' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 192 ;
+ }
+#Maximum snow albedo
+'mxsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 192 ;
+ }
+#Snow free albedo
+'snfalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 193 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'tsec' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 194 ;
+ }
+#Baseflow-groundwater runoff
+'bgrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 192 ;
+ }
+#Storm surface runoff
+'ssrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 193 ;
+ }
+#Volumetric soil moisture content
+'soilw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 192 ;
+ }
+#Ground heat flux
+'gflux' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 193 ;
+ }
+#Moisture availability
+'mstav' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 194 ;
+ }
+#Exchange coefficient
+'sfexc' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 195 ;
+ }
+#Plant canopy surface water
+'cnwat' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 196 ;
+ }
+#Blackadar mixing length scale
+'bmixl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 197 ;
+ }
+#Canopy conductance
+'ccond' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 199 ;
+ }
+#Minimal stomatal resistance
+'rsmin' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 200 ;
+ }
+#Solar parameter in canopy conductance
+'rcs' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ }
+#Temperature parameter in canopy conductance
+'rct' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ }
+#Soil moisture parameter in canopy conductance
+'rcsol' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 205 ;
+ }
+#Humidity parameter in canopy conductance
+'rcq' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ }
+#Liquid volumetric soil moisture (non-frozen)
+'soill' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 192 ;
+ }
+#Number of soil layers in root zone
+'rlyrs' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 193 ;
+ }
+#Transpiration stress-onset (soil moisture)
+'smref' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 195 ;
+ }
+#Direct evaporation cease (soil moisture)
+'smdry' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 196 ;
+ }
+#Soil porosity
+'poros' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 197 ;
+ }
+#Temperature tendency by all radiation
+'ttrad' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 193 ;
+ }
+#Relative Error Variance
+'rev' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 194 ;
+ }
+#Large Scale Condensate Heating rate
+'lrghr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 195 ;
+ }
+#Deep Convective Heating rate
+'cnvhr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 196 ;
+ }
+#Total Downward Heat Flux at Surface
+'thflx' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 197 ;
+ }
+#Temperature Tendency By All Physics
+'ttdia' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 198 ;
+ }
+#Temperature Tendency By Non-radiation Physics
+'ttphy' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 199 ;
+ }
+#Standard Dev. of IR Temp. over 1x1 deg. area
+'tsd1d' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 200 ;
+ }
+#Shallow Convective Heating rate
+'shahr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ }
+#Vertical Diffusion Heating rate
+'vdfhr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 202 ;
+ }
+#Potential temperature at top of viscous sublayer
+'thz0' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 203 ;
+ }
+#Tropical Cyclone Heat Potential
+'tchp' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 204 ;
+ }
+#Minimum Relative Humidity
+'minrh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 198 ;
+ }
+#Total Icing Potential Diagnostic
+'tipd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 206 ;
+ }
+#Number concentration for ice particles
+'ncip' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 207 ;
+ }
+#Snow temperature
+'snot' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 208 ;
+ }
+#Total column-integrated supercooled liquid water
+'tclsw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 209 ;
+ }
+#Total column-integrated melting ice
+'tcolm' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 210 ;
+ }
+#Evaporation - Precipitation
+'emnp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 211 ;
+ }
+#Sublimation (evaporation from snow)
+'sbsno' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 212 ;
+ }
+#Deep Convective Moistening Rate
+'cnvmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 213 ;
+ }
+#Shallow Convective Moistening Rate
+'shamr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 214 ;
+ }
+#Vertical Diffusion Moistening Rate
+'vdfmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 215 ;
+ }
+#Condensation Pressure of Parcali Lifted From Indicate Surface
+'condp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 216 ;
+ }
+#Large scale moistening rate
+'lrgmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 217 ;
+ }
+#Specific humidity at top of viscous sublayer
+'qz0' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 218 ;
+ }
+#Maximum specific humidity at 2m
+'qmax' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 219 ;
+ }
+#Minimum specific humidity at 2m
+'qmin' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 220 ;
+ }
+#Liquid precipitation (rainfall)
+'arain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 221 ;
+ }
+#Snow temperature, depth-avg
+'snowt' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 222 ;
+ }
+#Total precipitation (nearest grid point)
+'apcpn' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 223 ;
+ }
+#Convective precipitation (nearest grid point)
+'acpcpn' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 224 ;
+ }
+#Freezing Rain
+'frzr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 225 ;
+ }
+#Latitude of U Wind Component of Velocity
+'lauv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 198 ;
+ }
+#Longitude of U Wind Component of Velocity
+'louv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 199 ;
+ }
+#Latitude of V Wind Component of Velocity
+'lavv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 200 ;
+ }
+#Longitude of V Wind Component of Velocity
+'lovv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 201 ;
+ }
+#Latitude of Pressure Point
+'lapp' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 202 ;
+ }
+#Longitude of Pressure Point
+'lopp' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 203 ;
+ }
+#Vertical Eddy Diffusivity Heat exchange
+'vedh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 204 ;
+ }
+#Covariance between Meridional and Zonal Components of the wind.
+'covmz' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 205 ;
+ }
+#Covariance between Temperature and Zonal Components of the wind.
+'covtz' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 206 ;
+ }
+#Covariance between Temperature and Meridional Components of the wind.
+'covtm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 207 ;
+ }
+#Vertical Diffusion Zonal Acceleration
+'vdfua' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 208 ;
+ }
+#Vertical Diffusion Meridional Acceleration
+'vdfva' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 209 ;
+ }
+#Gravity wave drag zonal acceleration
+'gwdu' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 210 ;
+ }
+#Gravity wave drag meridional acceleration
+'gwdv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 211 ;
+ }
+#Convective zonal momentum mixing acceleration
+'cnvu' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 212 ;
+ }
+#Convective meridional momentum mixing acceleration
+'cnvv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 213 ;
+ }
+#Tendency of vertical velocity
+'wtend' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 214 ;
+ }
+#Omega (Dp/Dt) divide by density
+'omgalf' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 215 ;
+ }
+#Convective Gravity wave drag zonal acceleration
+'cngwdu' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 216 ;
+ }
+#Convective Gravity wave drag meridional acceleration
+'cngwdv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 217 ;
+ }
+#Velocity Point Model Surface
+'lmv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 218 ;
+ }
+#Potential Vorticity (Mass-Weighted)
+'pvmww' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 219 ;
+ }
+#MSLP (Eta model reduction)
+'mslet' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 192 ;
+ }
+#MSLP (MAPS System Reduction)
+'mslma' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 198 ;
+ }
+#3-hr pressure tendency (Std. Atmos. Reduction)
+'tslsa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 199 ;
+ }
+#Pressure of level from which parcel was lifted
+'plpl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 200 ;
+ }
+#X-gradient of Log Pressure
+'lpsx' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 201 ;
+ }
+#Y-gradient of Log Pressure
+'lpsy' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 202 ;
+ }
+#X-gradient of Height
+'hgtx' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 203 ;
+ }
+#Y-gradient of Height
+'hgty' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 204 ;
+ }
+#Layer Thickness
+'layth' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 205 ;
+ }
+#Natural Log of Surface Pressure
+'nlgsp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 206 ;
+ }
+#Convective updraft mass flux
+'cnvumf' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 207 ;
+ }
+#Convective downdraft mass flux
+'cnvdmf' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 208 ;
+ }
+#Convective detrainment mass flux
+'cnvdemf' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 209 ;
+ }
+#Mass Point Model Surface
+'lmh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 210 ;
+ }
+#Geopotential Height (nearest grid point)
+'hgtn' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 211 ;
+ }
+#Pressure (nearest grid point)
+'presn' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 212 ;
+ }
+#UV-B downward solar flux
+'duvb' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 194 ;
+ }
+#Clear sky UV-B downward solar flux
+'cduvb' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 195 ;
+ }
+#Clear Sky Downward Solar Flux
+'csdsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 196 ;
+ }
+#Solar Radiative Heating Rate
+'swhr' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 197 ;
+ }
+#Clear Sky Upward Solar Flux
+'csusf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 198 ;
+ }
+#Cloud Forcing Net Solar Flux
+'cfnsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 199 ;
+ }
+#Visible Beam Downward Solar Flux
+'vbdsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 200 ;
+ }
+#Visible Diffuse Downward Solar Flux
+'vddsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 201 ;
+ }
+#Near IR Beam Downward Solar Flux
+'nbdsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 202 ;
+ }
+#Near IR Diffuse Downward Solar Flux
+'nddsf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 203 ;
+ }
+#Downward Total radiation Flux
+'dtrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 204 ;
+ }
+#Upward Total radiation Flux
+'utrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 205 ;
+ }
+#Long-Wave Radiative Heating Rate
+'lwhr' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 194 ;
+ }
+#Clear Sky Upward Long Wave Flux
+'csulf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 195 ;
+ }
+#Clear Sky Downward Long Wave Flux
+'csdlf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 196 ;
+ }
+#Cloud Forcing Net Long Wave Flux
+'cfnlf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 197 ;
+ }
+#Convective Cloud Mass Flux
+'mflux' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 200 ;
+ }
+#Richardson Number
+'ri' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 194 ;
+ }
+#Convective Weather Detection Index
+'cwdi' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 195 ;
+ }
+#Updraft Helicity
+'uphl' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 197 ;
+ }
+#Leaf Area Index
+'lai' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 198 ;
+ }
+#Particulate matter (coarse)
+'pmtc' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 192 ;
+ }
+#Particulate matter (fine)
+'pmtf' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 193 ;
+ }
+#Particulate matter (fine)
+'lpmtf' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 194 ;
+ }
+#Integrated column particulate matter (fine)
+'lipmf' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 195 ;
+ }
+#Ozone Concentration (PPB)
+'ozcon' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 193 ;
+ }
+#Categorical Ozone Concentration
+'ozcat' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 194 ;
+ }
+#Ozone vertical diffusion
+'vdfoz' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 195 ;
+ }
+#Ozone production
+'poz' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 196 ;
+ }
+#Ozone tendency
+'toz' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 197 ;
+ }
+#Ozone production from temperature term
+'pozt' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 198 ;
+ }
+#Ozone production from col ozone term
+'pozo' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 199 ;
+ }
+#Derived radar reflectivity backscatter from rain
+'refzr' = {
+ discipline = 0 ;
+ parameterCategory = 16 ;
+ parameterNumber = 192 ;
+ }
+#Derived radar reflectivity backscatter from ice
+'refzi' = {
+ discipline = 0 ;
+ parameterCategory = 16 ;
+ parameterNumber = 193 ;
+ }
+#Derived radar reflectivity backscatter from parameterized convection
+'refzc' = {
+ discipline = 0 ;
+ parameterCategory = 16 ;
+ parameterNumber = 194 ;
+ }
+#Derived radar reflectivity
+'refd' = {
+ discipline = 0 ;
+ parameterCategory = 16 ;
+ parameterNumber = 195 ;
+ }
+#Maximum/Composite radar reflectivity
+'refc' = {
+ discipline = 0 ;
+ parameterCategory = 16 ;
+ parameterNumber = 196 ;
+ }
+#Lightning
+'ltng' = {
+ discipline = 0 ;
+ parameterCategory = 17 ;
+ parameterNumber = 192 ;
+ }
+#Slight risk convective outlook
+'srcono' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 194 ;
+ }
+#Moderate risk convective outlook
+'mrcono' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 195 ;
+ }
+#High risk convective outlook
+'hrcono' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 196 ;
+ }
+#Tornado probability
+'torprob' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 197 ;
+ }
+#Hail probability
+'hailprob' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 198 ;
+ }
+#Wind probability
+'windprob' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 199 ;
+ }
+#Significant Tornado probability
+'storprob' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 200 ;
+ }
+#Significant Hail probability
+'shailpro' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 201 ;
+ }
+#Significant Wind probability
+'swindpro' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 202 ;
+ }
+#Categorical Thunderstorm (1-yes, 0-no)
+'tstmc' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 203 ;
+ }
+#Number of mixed layers next to surface
+'mixly' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 204 ;
+ }
+#Flight Category
+'flght' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 205 ;
+ }
+#Confidence - Ceiling
+'cicel' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 206 ;
+ }
+#Confidence - Visibility
+'civis' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 207 ;
+ }
+#Confidence - Flight Category
+'ciflt' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 208 ;
+ }
+#Low-Level aviation interest
+'lavni' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 209 ;
+ }
+#High-Level aviation interest
+'havni' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 210 ;
+ }
+#Visible, Black Sky Albedo
+'sbsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 211 ;
+ }
+#Visible, White Sky Albedo
+'swsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 212 ;
+ }
+#Near IR, Black Sky Albedo
+'nbsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 213 ;
+ }
+#Near IR, White Sky Albedo
+'nwsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 214 ;
+ }
+#Total Probability of Severe Thunderstorms (Days 2,3)
+'prsvr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 215 ;
+ }
+#Total Probability of Extreme Severe Thunderstorms (Days 2,3)
+'prsigsvr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 216 ;
+ }
+#Supercooled Large Droplet (SLD) Potential
+'sipd' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 217 ;
+ }
+#Radiative emissivity
+'epsr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 218 ;
+ }
+#Turbulence Potential Forecast Index
+'tpfi' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 219 ;
+ }
+#Volcanic Ash Forecast Transport and Dispersion
+'vaftd' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 232 ;
+ }
+#Latitude (-90 to +90)
+'nlat' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 192 ;
+ }
+#East Longitude (0 - 360)
+'elon' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 193 ;
+ }
+#Model Layer number (From bottom up)
+'mlyno' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 195 ;
+ }
+#Latitude (nearest neighbor) (-90 to +90)
+'nlatn' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 196 ;
+ }
+#East Longitude (nearest neighbor) (0 - 360)
+'elonn' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 197 ;
+ }
+#Probability of Freezing Precipitation
+'cpozp' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 192 ;
+ }
+#Probability of precipitation exceeding flash flood guidance values
+'ppffg' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ }
+#Probability of Wetting Rain, exceeding in 0.10 in a given time period
+'cwr' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ }
+#Vegetation Type
+'vgtyp' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 198 ;
+ }
+#Wilting Point
+'wilt' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 201 ;
+ }
+#Rate of water dropping from canopy to ground
+'rdrip' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 206 ;
+ }
+#Ice-free water surface
+'icwat' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 207 ;
+ }
+#Surface exchange coefficients for T and Q divided by delta z
+'akhs' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 208 ;
+ }
+#Surface exchange coefficients for U and V divided by delta z
+'akms' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 209 ;
+ }
+#Vegetation canopy temperature
+'vegt' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 210 ;
+ }
+#Surface water storage
+'sstor' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 211 ;
+ }
+#Liquid soil moisture content (non-frozen)
+'lsoil' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 212 ;
+ }
+#Open water evaporation (standing water)
+'ewatr' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 213 ;
+ }
+#Groundwater recharge
+'gwrec' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 214 ;
+ }
+#Flood plain recharge
+'qrec' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 215 ;
+ }
+#Roughness length for heat
+'sfcrh' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 216 ;
+ }
+#Normalized Difference Vegetation Index
+'ndvi' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 217 ;
+ }
+#Land-sea coverage (nearest neighbor) [land=1,sea=0]
+'landn' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 218 ;
+ }
+#Asymptotic mixing length scale
+'amixl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 219 ;
+ }
+#Water vapor added by precip assimilation
+'wvinc' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 220 ;
+ }
+#Water condensate added by precip assimilation
+'wcinc' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 221 ;
+ }
+#Water Vapor Flux Convergence (Vertical Int)
+'wvconv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 222 ;
+ }
+#Water Condensate Flux Convergence (Vertical Int)
+'wcconv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 223 ;
+ }
+#Water Vapor Zonal Flux (Vertical Int)
+'wvuflx' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 224 ;
+ }
+#Water Vapor Meridional Flux (Vertical Int)
+'wvvflx' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 225 ;
+ }
+#Water Condensate Zonal Flux (Vertical Int)
+'wcuflx' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 226 ;
+ }
+#Water Condensate Meridional Flux (Vertical Int)
+'wcvflx' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 227 ;
+ }
+#Aerodynamic conductance
+'acond' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 228 ;
+ }
+#Canopy water evaporation
+'evcw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 229 ;
+ }
+#Transpiration
+'trans' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 230 ;
+ }
+#Surface Slope Type
+'sltyp' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 194 ;
+ }
+#Direct evaporation from bare soil
+'evbs' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 198 ;
+ }
+#Land Surface Precipitation Accumulation
+'lspa' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 199 ;
+ }
+#Bare soil surface skin temperature
+'baret' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 200 ;
+ }
+#Average surface skin temperature
+'avsft' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 201 ;
+ }
+#Effective radiative skin temperature
+'radt' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 202 ;
+ }
+#Field Capacity
+'fldcp' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 203 ;
+ }
+#Scatterometer Estimated U Wind Component
+'usct' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 192 ;
+ }
+#Scatterometer Estimated V Wind Component
+'vsct' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ }
+#Wave Steepness
+'wstp' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 192 ;
+ }
+#Ocean Mixed Layer U Velocity
+'omlu' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 192 ;
+ }
+#Ocean Mixed Layer V Velocity
+'omlv' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 193 ;
+ }
+#Barotropic U velocity
+'ubaro' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 194 ;
+ }
+#Barotropic V velocity
+'vbaro' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 195 ;
+ }
+#Storm Surge
+'surge' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 192 ;
+ }
+#Extra Tropical Storm Surge
+'etsrg' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 193 ;
+ }
+#Ocean Surface Elevation Relative to Geoid
+'elevhtml' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 194 ;
+ }
+#Sea Surface Height Relative to Geoid
+'sshg' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 195 ;
+ }
+#Ocean Mixed Layer Potential Density (Reference 2000m)
datasetForLocal
+concept gridSpecification(unknown, "gridSpecificationConcept.def", conceptsDir2, conceptsDir1): no_copy, read_only, dump;
+concept destineOrigin(unknown, "destineOriginConcept.def", conceptsDir2, conceptsDir1): no_copy, dump;
+
+# ECC-1794: DestinE data does not have the domain key
+unalias mars.domain;
+
+# ECC-1796: stepRange indexing for DestinE ExtremesDT and On-Demand ExtremesDT data
+if ( defined(dataset) && !(dataset is "climate-dt") ) {
+ alias mars.step=stepRange;
+}
diff --git a/definitions/grib2/products_12.def b/definitions/grib2/products_12.def
new file mode 100644
index 000000000..35c5f909c
--- /dev/null
+++ b/definitions/grib2/products_12.def
@@ -0,0 +1,5 @@
+# (C) Copyright 2005- ECMWF.
+
+# Destination Earth (DestinE)
+
+include "grib2/products_destine.def"
diff --git a/definitions/grib2/products_crra.def b/definitions/grib2/products_crra.def
index 003a282f0..9d6e33b7c 100644
--- a/definitions/grib2/products_crra.def
+++ b/definitions/grib2/products_crra.def
@@ -75,24 +75,69 @@ concept marsType(unknown) {
}
}
+# get the values from the 1st most outer loop which matter
+meta outerLoopLengthOfTimeRange element(lengthOfTimeRange, 0);
+meta outerLoopTypeOfStatisticalProcessing element(typeOfStatisticalProcessing, 0);
+meta outerLoopTypeOfTimeIncrement element(typeOfTimeIncrement, 0);
+
# See GRIB-205 re no_copy
# Cannot use typeOfProcessedData for stream. See GRIB-911
concept marsStream(unknown) {
- oper = {
- productDefinitionTemplateNumber = 8;
- }
oper = {
productDefinitionTemplateNumber = 0;
}
-
+ oper = {
+ productDefinitionTemplateNumber = 8;
+ }
enda = {
productDefinitionTemplateNumber = 11;
}
enda = {
productDefinitionTemplateNumber = 1;
}
-} : no_copy;
+ moda = {
+ productDefinitionTemplateNumber = 8;
+ outerLoopTypeOfTimeIncrement = 1;
+ }
+ # avgd, mind, maxd
+ dame = {
+ productDefinitionTemplateNumber = 8;
+ outerLoopTypeOfTimeIncrement = 1;
+ outerLoopLengthOfTimeRange = 21;
+ }
+ # accumd
+ dame = {
+ productDefinitionTemplateNumber = 8;
+ outerLoopTypeOfTimeIncrement = 1;
+ outerLoopLengthOfTimeRange = 24;
+ }
+} : no_copy,read_only;
alias mars.stream = marsStream;
alias mars.type = marsType;
+
+if (marsStream is "moda") {
+ meta verificationDate g1verificationdate(dataDate, dataTime, outerLoopLengthOfTimeRange) : read_only;
+ meta monthlyVerificationDate g1monthlydate(verificationDate) : no_copy;
+ alias mars.date = monthlyVerificationDate;
+
+ unalias mars.time;
+ unalias mars.step;
+}
+
+if (marsStream is "dame") {
+ if (!(outerLoopTypeOfStatisticalProcessing == 3 || outerLoopTypeOfStatisticalProcessing == 2)) {
+ # not mind or maxd
+ alias mars.date = validityDate;
+ }
+
+ if (outerLoopLengthOfTimeRange == 24) {
+ # accumd
+ meta verificationDate g1verificationdate(dataDate, dataTime, outerLoopLengthOfTimeRange) : read_only;
+ alias mars.date = verificationDate;
+ }
+
+ unalias mars.time;
+ unalias mars.step;
+}
diff --git a/definitions/grib2/products_destine.def b/definitions/grib2/products_destine.def
new file mode 100644
index 000000000..b1d0c4aee
--- /dev/null
+++ b/definitions/grib2/products_destine.def
@@ -0,0 +1,21 @@
+# (C) Copyright 2005- ECMWF.
+
+alias mars.expver = experimentVersionNumber;
+alias parameter.paramId=paramId;
+alias parameter.shortName=shortName;
+alias parameter.units=units;
+alias parameter.name=name;
+
+alias mars.class = marsClass;
+alias mars.param = paramId;
+
+# Special rule for level type 103 'Specified height level above ground (m)'
+if(typeOfFirstFixedSurface == 103) {
+ # only the parameters above 10m
+ if (level > 10) {
+ constant heightLevelName = 'hl';
+ alias mars.levtype = heightLevelName;
+ # levelist was unaliased in template.4.horizontal.def so we must have it back
+ alias mars.levelist = level;
+ }
+}
\ No newline at end of file
diff --git a/definitions/grib2/section.0.def b/definitions/grib2/section.0.def
index 6cf6abd60..43be85191 100644
--- a/definitions/grib2/section.0.def
+++ b/definitions/grib2/section.0.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-position offsetSection0;
+position offsetSection0;
constant section0Length=16;
ascii[4] identifier = "GRIB" : read_only;
unsigned[2] reserved = missing() : can_be_missing,hidden,read_only,edition_specific;
@@ -8,7 +8,7 @@ codetable[1] discipline ('0.0.table',masterDir,localDir) : dump;
unsigned[1] editionNumber = 2 : edition_specific,dump;
alias ls.edition = editionNumber;
-section_length[8] totalLength;
+section_length[8] totalLength;
position startOfHeaders;
meta section0Pointer section_pointer(offsetSection0,section0Length,0);
diff --git a/definitions/grib2/section.1.def b/definitions/grib2/section.1.def
index 719a9399c..c4e3c21f1 100644
--- a/definitions/grib2/section.1.def
+++ b/definitions/grib2/section.1.def
@@ -6,7 +6,7 @@ meta section1Pointer section_pointer(offsetSection1,section1Length,1);
unsigned[1] numberOfSection = 1 :read_only;
-codetable[2] centre 'common/c-11.table' : dump,string_type;
+codetable[2] centre 'common/c-11.table' : dump,string_type;
alias identificationOfOriginatingGeneratingCentre=centre;
meta centreDescription codetable_title(centre);
@@ -14,7 +14,7 @@ alias parameter.centre=centre;
alias ls.centre=centre;
alias originatingCentre=centre;
-unsigned[2] subCentre : dump;
+unsigned[2] subCentre : dump;
_if (subCentre==98 ) {
alias centreForLocal=subCentre;
@@ -54,20 +54,20 @@ unsigned[1] hour;
unsigned[1] minute;
unsigned[1] second;
-meta dataDate g2date(year,month,day) : dump;
+meta dataDate g2date(year,month,day) : dump;
alias mars.date = dataDate;
alias ls.date = dataDate;
meta julianDay julian_day(dataDate,hour,minute,second) : edition_specific;
-meta dataTime time(hour,minute,second) : dump;
+meta dataTime time(hour,minute,second) : dump;
alias mars.time = dataTime;
# Production status of processed data in this GRIB message
codetable[1] productionStatusOfProcessedData ('1.3.table',masterDir,localDir) : dump;
# Type of processed data in this GRIB message
-codetable[1] typeOfProcessedData ('1.4.table',masterDir,localDir) = 255 : dump,string_type,no_fail;
+codetable[1] typeOfProcessedData ('1.4.table',masterDir,localDir) = 255 : dump,string_type,no_fail;
alias ls.dataType=typeOfProcessedData;
@@ -111,7 +111,7 @@ meta is_aerosol_optical g2_aerosol(productDefinitionTemplateNumber, stepType, 1
transient setCalendarId = 0 ;
transient deleteCalendarId = 0 ;
-alias calendarIdPresent = zero;
+alias calendarIdPresent = false;
if ( ((section1Length > 21) or setCalendarId > 0) and deleteCalendarId == 0) {
alias calendarIdPresent = present;
codetable[2] calendarIdentificationTemplateNumber ('1.5.table',masterDir,localDir) : dump,string_type,no_fail;
diff --git a/definitions/grib2/section.2.def b/definitions/grib2/section.2.def
index f7da1537a..cc7601295 100644
--- a/definitions/grib2/section.2.def
+++ b/definitions/grib2/section.2.def
@@ -14,7 +14,7 @@ transient addEmptySection2 = 0;
if ( addEmptySection2 == 0 ) {
if ( grib2LocalSectionPresent==1 or ( section2Length>5 or new() ) ) {
- alias section2Used=one;
+ alias section2Used=true;
if(productionStatusOfProcessedData == 8 || productionStatusOfProcessedData == 9) {
# This for adding an expver other than prod/test to UERRA
@@ -34,6 +34,12 @@ if ( addEmptySection2 == 0 ) {
template crraSection "grib2/local.crra.[crraLocalVersion:l].def";
}
+ if(productionStatusOfProcessedData == 12 || productionStatusOfProcessedData == 13) {
+ # destine = Destination Earth
+ codetable[2] destineLocalVersion 'grib2/destineLocalVersion.table' = 1 : dump;
+ template destineSection "grib2/local.destine.[destineLocalVersion:l].def";
+ }
+
codetable[2] grib2LocalSectionNumber 'grib2/grib2LocalSectionNumber.[centreForLocal:l].table' = 1 : dump;
if (grib2LocalSectionNumber!=0) {
diff --git a/definitions/grib2/section.3.def b/definitions/grib2/section.3.def
index d8ce26e6f..40f21e591 100644
--- a/definitions/grib2/section.3.def
+++ b/definitions/grib2/section.3.def
@@ -33,7 +33,7 @@ if(numberOfOctectsForNumberOfPoints == 0){
codetable[2] gridDefinitionTemplateNumber ('3.1.table',masterDir,localDir) =0 : dump,edition_specific;
meta gridDefinitionDescription codetable_title(gridDefinitionTemplateNumber);
-alias isRotatedGrid=zero;
+alias isRotatedGrid = false;
if (gridDefinitionTemplateNumber >= 32768) {
template gridDefinitionSection "grib2/local/[centreForLocal]/template.3.[gridDefinitionTemplateNumber:l].def";
diff --git a/definitions/grib2/section.4.def b/definitions/grib2/section.4.def
index 1f646f221..0c45720b1 100644
--- a/definitions/grib2/section.4.def
+++ b/definitions/grib2/section.4.def
@@ -20,7 +20,7 @@ alias numberOfVerticalGridDescriptors=NV ;
transient neitherPresent = 0;
if (centre==7 || centre==46) {
- alias disableGrib1LocalSection=one;
+ alias disableGrib1LocalSection=true;
}
concept datasetForLocal(unknown) {
@@ -28,6 +28,7 @@ concept datasetForLocal(unknown) {
"tigge" = {productionStatusOfProcessedData=5;}
"s2s" = {productionStatusOfProcessedData=6;}
"s2s" = {productionStatusOfProcessedData=7;}
+ "cerise" = {marsClass="ci";}
"era6" = {marsClass="e6";} # for ERA6 parameters with constituentType
"hydro" = {marsClass="ce";} # EFAS/GLOFAS
"hydro" = {marsClass="ul";} # ULYSSES
@@ -38,6 +39,15 @@ concept datasetForLocal(unknown) {
"uerra" = {productionStatusOfProcessedData=11;}
"destine" = {productionStatusOfProcessedData=12;} # Destination Earth
"destine" = {productionStatusOfProcessedData=13;}
+ "era" = {marsClass="e2";}
+ "era" = {marsClass="e4";}
+ "era" = {marsClass="ea";}
+ "era" = {marsClass="ei";}
+ "era" = {marsClass="em";}
+ "era" = {marsClass="ep";}
+ "era" = {marsClass="er";}
+ "era" = {marsClass="et";}
+ "era" = {marsClass="l5";}
"unknown" = { dummy=1; }
}
diff --git a/definitions/grib2/sections.def b/definitions/grib2/sections.def
index ed998ca61..19f6b61db 100644
--- a/definitions/grib2/sections.def
+++ b/definitions/grib2/sections.def
@@ -44,6 +44,8 @@ meta md5Headers md5(startOfHeaders,lengthOfHeaders);
lookup[1] sectionNumber(4) ;
+template_nofail hook_post_meta_data "grib2/post_meta_data.hook.products_[productionStatusOfProcessedData].def";
+
if (!headersOnly) {
if (sectionNumber == 5 or new() ) {
position sectionPosition;
diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def
index 5070fb459..fbecc6945 100644
--- a/definitions/grib2/shortName.def
+++ b/definitions/grib2/shortName.def
@@ -23,6 +23,30 @@
scaleFactorOfLowerLimit = 0 ;
probabilityType = 3 ;
}
+#Total precipitation of at least 10 mm
+'tpg10' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 10 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#Total precipitation of at least 20 mm
+'tpg20' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Total precipitation of at least 40 mm
'tpg40' = {
discipline = 0 ;
@@ -107,6 +131,24 @@
scaleFactorOfLowerLimit = -2 ;
probabilityType = 3 ;
}
+#Stream function
+'strf' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 4 ;
+ }
+#Velocity potential
+'vp' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 5 ;
+ }
+#Potential temperature
+'pt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind speed
'ws' = {
discipline = 0 ;
@@ -230,6 +272,12 @@
parameterCategory = 2 ;
parameterNumber = 6 ;
}
+#Pressure
+'pres' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ }
#Downward UV radiation at the surface
'uvb' = {
discipline = 0 ;
@@ -246,6 +294,20 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Convective available potential energy
+'cape' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Potential vorticity
+'pv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 14 ;
+ }
#Leaf area index, low vegetation
'lai_lv' = {
discipline = 2 ;
@@ -299,6 +361,88 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'mx2t6' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'mn2t6' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Surface emissivity
+'emis' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Geopotential
+'z' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ }
+#Temperature
+'t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#U component of wind
+'u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#V component of wind
+'v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Specific humidity
+'q' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Surface pressure
+'sp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Vertical velocity
+'w' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ }
+#Total column water
+'tcw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Total column vertically-integrated water vapour
'tcwv' = {
discipline = 0 ;
@@ -307,6 +451,12 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Vorticity (relative)
+'vo' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 12 ;
+ }
#Boundary layer dissipation
'bld' = {
discipline = 0 ;
@@ -314,12 +464,69 @@
parameterNumber = 20 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface sensible heat flux
+'sshf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface latent heat flux
+'slhf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Charnock
'chnk' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 76 ;
}
+#Surface net radiation (SW and LW)
+'snr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Top net radiation (SW and LW)
+'tnr' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Mean sea level pressure
+'msl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ }
+#Divergence
+'d' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 13 ;
+ }
+#Geopotential height
+'gh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ }
+#Relative humidity
+'r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
#Boundary layer height
'blh' = {
discipline = 0 ;
@@ -350,6 +557,42 @@
parameterCategory = 3 ;
parameterNumber = 22 ;
}
+#10 metre U wind component
+'10u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#10 metre V wind component
+'10v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre temperature
+'2t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre dewpoint temperature
+'2d' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Surface short-wave (solar) radiation downwards
'ssrd' = {
discipline = 0 ;
@@ -358,6 +601,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Land-sea mask
+'lsm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Surface roughness (climatological)
'sr' = {
discipline = 2 ;
@@ -374,6 +624,22 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface net short-wave (solar) radiation
+'ssr' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface net long-wave (thermal) radiation
+'str' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Top net short-wave (solar) radiation
'tsr' = {
discipline = 0 ;
@@ -382,22 +648,44 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ;
}
-#Eastward turbulent surface stress
+#Top net long-wave (thermal) radiation
+'ttr' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress
'ewss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'nsss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Sunshine duration
+'sund' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Brightness temperature
+'btmp' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 4 ;
+ }
#Eastward gravity wave surface stress
'lgws' = {
discipline = 0 ;
@@ -447,6 +735,15 @@
parameterCategory = 14 ;
parameterNumber = 1 ;
}
+#10 metre wind speed
+'10si' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Top net short-wave (solar) radiation, clear sky
'tsrc' = {
discipline = 0 ;
@@ -500,14 +797,14 @@
'iews' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous northward turbulent surface stress
'inss' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous surface sensible heat flux
@@ -532,6 +829,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfGeneratingProcess = 9 ;
}
+#Skin temperature
+'skt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Temperature of snow layer
'tsn' = {
discipline = 2 ;
@@ -724,6 +1028,20 @@
parameterCategory = 0 ;
parameterNumber = 89 ;
}
+#U-component of atmospheric surface momentum flux
+'utaua' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#V-component of atmospheric surface momentum flux
+'vtaua' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 18 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#U-component of surface momentum flux into ocean
'utauo' = {
discipline = 10 ;
@@ -858,6 +1176,15 @@
scaleFactorOfUpperWavePeriodLimit = 0 ;
scaledValueOfUpperWavePeriodLimit = 30 ;
}
+#Significant wave height of all waves with period larger than 10s
+'sh10' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfWavePeriodInterval = 3 ;
+ scaleFactorOfLowerWavePeriodLimit = 0 ;
+ scaledValueOfLowerWavePeriodLimit = 10 ;
+ }
#Significant wave height of first swell partition
'swh1' = {
discipline = 10 ;
@@ -912,6 +1239,30 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
+#Time domain maximum individual crest height
+'tdcmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 94 ;
+ }
+#Time domain maximum individual wave height
+'tdhmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 95 ;
+ }
+#Space time maximum individual crest height
+'stcmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 96 ;
+ }
+#Space time maximum individual wave height
+'sthmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 97 ;
+ }
#Wave Spectral Skewness
'wss' = {
discipline = 10 ;
@@ -948,6 +1299,34 @@
parameterCategory = 0 ;
parameterNumber = 84 ;
}
+#Time-mean mean zero-crossing wave period
+'avg_mp2' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean significant height of combined wind waves and swell
+'avg_swh' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean peak wave period
+'avg_pp1d' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 34 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean wave period
+'avg_mwp' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean sea water temperature in the upper 300 m
'mswt300m' = {
discipline = 10 ;
@@ -3114,6 +3493,386 @@
parameterCategory = 1 ;
parameterNumber = 30 ;
}
+#Vertical divergence
+'vdiv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 59 ;
+ }
+#Drag thermal coefficient
+'dtc' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Drag evaporation coefficient
+'dec' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 61 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Pressure departure from hydrostatic state
+'pdhs' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 46 ;
+ }
+#Surface net radiation flux (SW and LW)
+'snrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Top net radiation flux (SW and LW)
+'tnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ }
+#Time-mean top net radiation flux (SW and LW)
+'mtnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Global irradiance on tilted surfaces
+'gits' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 47 ;
+ }
+#Eady growth rate
+'eagr' = {
+ discipline = 0 ;
+ parameterCategory = 21 ;
+ parameterNumber = 22 ;
+ }
+#Tropical cyclones track density
+'tdtc' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 4 ;
+ }
+#Canopy air temperature
+'cant' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 63 ;
+ }
+#Soil wetness index (total layer)
+'swit' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Soil wetness index (root zone)
+'swir' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 167 ;
+ }
+#Soil wetness index (layer)
+'swil' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 151 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Distance downward from roof surface
+'ddrf' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Distance inward from outer wall surface
+'diws' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Distance downward from road surface
+'ddrd' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Renewable power capacity
+'rpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production rate
+'rppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production
+'rpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Wind power capacity
+'wpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production rate
+'wppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production
+'wpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Solar photovoltaic (PV) power capacity
+'pvpc' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production rate
+'pvppr' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production
+'pvpp' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Graupel (snow pellets) precipitation
+'tgrp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 75 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated total lightning flash density
+'litotint' = {
+ discipline = 0 ;
+ parameterCategory = 17 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum total column integrated graupel (snow pellets)
+'maxtcg' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 74 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Minimum visibility
+'minvis' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Geometric height of theta level above ground
+'hthg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 107 ;
+ }
+#Pressure at cloud base
+'pcdb' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 2 ;
+ }
+#Geometric height of adiabatic condensation level above ground
+'hacg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 5 ;
+ }
+#Geometric height of free convection level above ground
+'hfcg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 14 ;
+ }
+#Geometric height of neutral buoyancy level above ground
+'hnbg' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 16 ;
+ }
+#Geometric height of atmospheric isothermal level above ground
+'haig' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 20 ;
+ }
+#Roof temperature
+'rft' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Wall temperature
+'wlt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 186 ;
+ }
+#Road temperature
+'rdt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Snow depth water equivalent on roof
+'sdrf' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Snow depth water equivalent on road
+'sdrd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Urban canyon temperature
+'uct' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Urban canyon specific humidity
+'ucq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Convective snowfall water equivalent
+'csfwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 55 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall water equivalent
+'lsfwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 56 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Lake surface temperature
+'lslt' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ }
+#Surface bulk Richardson number
+'sbrn' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Time-maximum 2 metre relative humidity
+'mx2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Time-minimum 2 metre relative humidity
+'mn2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Surface roughness for heat
+'srhe' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 47 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Surface roughness for moisture
+'srmo' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 48 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Burned area
'fba' = {
discipline = 2 ;
@@ -3156,6 +3915,60 @@
parameterCategory = 4 ;
parameterNumber = 25 ;
}
+#Live leaf fuel load
+'llfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ }
+#Live wood fuel load
+'lwfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 28 ;
+ }
+#Dead leaf fuel load
+'dlfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 29 ;
+ }
+#Dead wood fuel load
+'dwfl' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 30 ;
+ }
+#Live fuel moisture content
+'lfmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 31 ;
+ }
+#Fine dead leaf moisture content
+'fdlmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 32 ;
+ }
+#Dense dead leaf moisture content
+'ddlmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 33 ;
+ }
+#Fine dead wood moisture content
+'fdwmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 34 ;
+ }
+#Dense dead wood moisture content
+'ddwmc' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 35 ;
+ }
#Time-integrated total column vertically-integrated eastward geopotential flux
'tvige' = {
discipline = 0 ;
@@ -3745,6 +4558,22 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
+#Mean eastward turbulent surface stress
+'metss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean northward turbulent surface stress
+'mntss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 63 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean evaporation rate
'mer' = {
discipline = 0 ;
@@ -3919,6 +4748,331 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean evapotranspiration flux
+'metrf' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time integral of potential evapotranspiration rate
+'tipet' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean potential evapotranspiration rate
+'mpet' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean volumetric soil moisture
+'mvsw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth water equivalent
+'msd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean skin temperature
+'mskt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow density
+'mrsn' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 61 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low vegetation cover
+'mcvl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 53 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high vegetation cover
+'mcvh' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 54 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea ice area fraction
+'mci' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea surface temperature
+'msst' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, low vegetation
+'mlai_lv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 55 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, high vegetation
+'mlai_hv' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 56 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column liquid water
+'mtclw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 69 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column cloud ice water
+'mtciw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 70 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre specific humidity
+'m2sh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer temperature
+'mlmlt' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer depth
+'mlmld' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre relative humidity
+'m2r' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean fraction of snow cover
+'mfscov' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 121 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean soil temperature
+'msot' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth
+'msde' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow cover
+'msnowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean geopotential
+'mz' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature
+'mt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean U component of wind
+'mu' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean V component of wind
+'mv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean specific humidity
+'mq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean surface pressure
+'msp' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertical velocity
+'mw' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column water
+'mtcw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically-integrated water vapour
+'mtcwv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean sea level pressure
+'mmsl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean relative humidity
+'mr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean boundary layer height
+'mblh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre U wind component
+'m10u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre V wind component
+'m10v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre dewpoint temperature
+'m2d' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature of snow layer
+'mtsn' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast surface roughness
+'mfsr' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast logarithm of surface roughness for heat
+'mflsr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 54 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Cross sectional area of flow in channel
'chcross' = {
discipline = 1 ;
@@ -4023,6 +5177,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
+#Lake depth
+'lakdph' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River depth
+'rivdph' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River outflow of water
+'rivout' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ }
+#Floodplain outflow of water
+'fldout' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Floodpath outflow of water
+'pthflw' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
#Latitude
'lat' = {
discipline = 0 ;
@@ -4123,6 +5311,138 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Latent heat net flux
+'lhtfl' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Heat index
+'heatx' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Wind chill factor
+'wcf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Minimum dew point depression
+'mindpd' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Snow phase change heat flux
+'snohf' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Vapor pressure
+'vapp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Large scale precipitation (non-convective)
+'ncpcp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Snowfall rate water equivalent
+'srweq' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Convective snow
+'snoc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 14 ;
+ }
+#Large scale snow
+'snol' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 15 ;
+ }
+#Snow age
+'snoag' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 17 ;
+ }
+#Absolute humidity
+'absh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 18 ;
+ }
+#Precipitation type
+'ptype' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 19 ;
+ }
+#Integrated liquid water
+'iliqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 20 ;
+ }
+#Condensate
+'tcond' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 21 ;
+ }
+#Cloud mixing ratio
+'clwmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 22 ;
+ }
+#Ice water mixing ratio
+'icmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 23 ;
+ }
+#Rain mixing ratio
+'rwmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 24 ;
+ }
+#Snow mixing ratio
+'snmr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal moisture convergence
+'mconv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 26 ;
+ }
+#Maximum relative humidity
+'maxrh' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 27 ;
+ }
+#Maximum absolute humidity
+'maxah' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 28 ;
+ }
#Total snowfall
'asnow' = {
discipline = 0 ;
@@ -4131,6 +5451,579 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Precipitable water category
+'pwcat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 30 ;
+ }
+#Hail
+'hail' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 31 ;
+ }
+#Graupel (snow pellets)
+'grle' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 32 ;
+ }
+#Categorical rain
+'crain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 33 ;
+ }
+#Categorical freezing rain
+'cfrzr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 34 ;
+ }
+#Categorical ice pellets
+'cicep' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 35 ;
+ }
+#Categorical snow
+'csnow' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 36 ;
+ }
+#Convective precipitation rate
+'cprat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 37 ;
+ }
+#Horizontal moisture divergence
+'mdiv' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 38 ;
+ }
+#Percent frozen precipitation
+'cpofp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 39 ;
+ }
+#Potential evaporation
+'pevap' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 40 ;
+ }
+#Snow cover
+'snowc' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ }
+#Rain fraction of total cloud water
+'frain' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 43 ;
+ }
+#Rime factor
+'rime' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 44 ;
+ }
+#Total column integrated rain
+'tcolr' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 45 ;
+ }
+#Total column integrated snow
+'tcols' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 46 ;
+ }
+#Large scale water precipitation (non-convective)
+'lswp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 47 ;
+ }
+#Convective water precipitation
+'cwp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 48 ;
+ }
+#Total water precipitation
+'twatp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 49 ;
+ }
+#Total snow precipitation
+'tsnowp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column water (Vertically integrated total water (vapour + cloud water/ice))
+'tcwat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ }
+#Total precipitation rate
+'tprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Total snowfall rate water equivalent
+'tsrwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 53 ;
+ }
+#Large scale precipitation rate
+'lsprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 54 ;
+ }
+#Total snowfall rate
+'tsrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 57 ;
+ }
+#Convective snowfall rate
+'csrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 58 ;
+ }
+#Large scale snowfall rate
+'lssrate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 59 ;
+ }
+#Water equivalent of accumulated snow depth (deprecated)
+'sdwe' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Rain precipitation rate
+'rprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 65 ;
+ }
+#Snow precipitation rate
+'sprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ }
+#Freezing rain precipitation rate
+'fprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 67 ;
+ }
+#Ice pellets precipitation rate
+'iprate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 68 ;
+ }
+#Maximum wind speed
+'maxgust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 21 ;
+ }
+#Wind speed (gust)
+'gust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ }
+#u-component of wind (gust)
+'ugust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 23 ;
+ }
+#v-component of wind (gust)
+'vgust' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 24 ;
+ }
+#Vertical speed shear
+'vwsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal momentum flux
+'mflx' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 26 ;
+ }
+#U-component storm motion
+'ustm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 27 ;
+ }
+#V-component storm motion
+'vstm' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 28 ;
+ }
+#Drag coefficient
+'cd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 29 ;
+ }
+#Frictional velocity
+'fricv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 30 ;
+ }
+#Pressure reduced to MSL
+'prmsl' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ }
+#Altimeter setting
+'alts' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Thickness
+'thick' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Pressure altitude
+'presalt' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Density altitude
+'denalt' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#5-wave geopotential height
+'5wavh' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Zonal flux of gravity wave stress
+'u-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Meridional flux of gravity wave stress
+'v-gwd' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#5-wave geopotential height anomaly
+'5wava' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 19 ;
+ }
+#Net short-wave radiation flux (top of atmosphere)
+'nswrt' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Downward short-wave radiation flux
+'dswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 7 ;
+ }
+#Upward short-wave radiation flux
+'uswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 8 ;
+ }
+#Net short wave radiation flux
+'nswrf' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ }
+#Photosynthetically active radiation
+'photar' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 10 ;
+ }
+#Net short-wave radiation flux, clear sky
+'nswrfcs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 11 ;
+ }
+#Downward UV radiation
+'dwuvr' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 12 ;
+ }
+#UV index (under clear sky)
+'uviucs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ }
+#UV index
+'uvi' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 51 ;
+ }
+#Net long wave radiation flux (surface)
+'nlwrs' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 0 ;
+ }
+#Net long wave radiation flux (top of atmosphere)
+'nlwrt' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 1 ;
+ }
+#Downward long-wave radiation flux
+'dlwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 3 ;
+ }
+#Upward long-wave radiation flux
+'ulwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 4 ;
+ }
+#Net long wave radiation flux
+'nlwrf' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ }
+#Net long-wave radiation flux, clear sky
+'nlwrcs' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 6 ;
+ }
+#Cloud Ice
+'cice' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 0 ;
+ }
+#Cloud water
+'cwat' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Cloud amount
+'cdca' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Cloud type
+'cdct' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Thunderstorm maximum tops
+'tmaxt' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 9 ;
+ }
+#Thunderstorm coverage
+'thunc' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 10 ;
+ }
+#Cloud top
+'cdct' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 12 ;
+ }
+#Ceiling
+'ceil' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 13 ;
+ }
+#Non-convective cloud cover
+'cdlyr' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 14 ;
+ }
+#Cloud work function
+'cwork' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 15 ;
+ }
+#Convective cloud efficiency
+'cuefi' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 16 ;
+ }
+#Total condensate
+'tcond' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 17 ;
+ }
+#Total column-integrated cloud water
+'tcolw' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 18 ;
+ }
+#Total column-integrated cloud ice
+'tcoli' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 19 ;
+ }
+#Total column-integrated condensate
+'tcolc' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 20 ;
+ }
+#Ice fraction of total condensate
+'fice' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 21 ;
+ }
+#Cloud ice mixing ratio
+'cdcimr' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 23 ;
+ }
+#Sunshine
+'suns' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ }
+#Horizontal extent of cumulonimbus (CB)
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 25 ;
+ }
+#K index
+'kx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 2 ;
+ }
+#KO index
+'kox' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 3 ;
+ }
+#Total totals index
+'totalx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 4 ;
+ }
+#Sweat index
+'sx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 5 ;
+ }
+#Storm relative helicity
+'hlcy' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 8 ;
+ }
+#Energy helicity index
+'ehlx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 9 ;
+ }
+#Surface lifted index
+'lftx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 10 ;
+ }
+#Best (4-layer) lifted index
+'4lftx' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 11 ;
+ }
+#Aerosol type
+'aerot' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 0 ;
+ }
+#Total ozone
+'tozne' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 0 ;
+ }
#Total column integrated ozone
'tcioz' = {
discipline = 0 ;
@@ -4139,6 +6032,588 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Base spectrum width
+'bswid' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 0 ;
+ }
+#Base reflectivity
+'bref' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 1 ;
+ }
+#Base radial velocity
+'brvel' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 2 ;
+ }
+#Vertically-integrated liquid
+'veril' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 3 ;
+ }
+#Layer-maximum base reflectivity
+'lmaxbr' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 4 ;
+ }
+#Precipitation
+'prec' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 5 ;
+ }
+#Air concentration of Caesium 137
+'acces' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 0 ;
+ }
+#Air concentration of Iodine 131
+'aciod' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 1 ;
+ }
+#Air concentration of radioactive pollutant
+'acradp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 2 ;
+ }
+#Ground deposition of Caesium 137
+'gdces' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 3 ;
+ }
+#Ground deposition of Iodine 131
+'gdiod' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 4 ;
+ }
+#Ground deposition of radioactive pollutant
+'gdradp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 5 ;
+ }
+#Time-integrated air concentration of caesium pollutant
+'tiaccp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 6 ;
+ }
+#Time-integrated air concentration of iodine pollutant
+'tiacip' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 7 ;
+ }
+#Time-integrated air concentration of radioactive pollutant
+'tiacrp' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 8 ;
+ }
+#Volcanic ash
+'volash' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 4 ;
+ }
+#Icing top
+'icit' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 5 ;
+ }
+#Icing base
+'icib' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 6 ;
+ }
+#Icing
+'ici' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 7 ;
+ }
+#Turbulence top
+'turbt' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 8 ;
+ }
+#Turbulence base
+'turbb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 9 ;
+ }
+#Turbulence
+'turb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 10 ;
+ }
+#Turbulent kinetic energy
+'tke' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 11 ;
+ }
+#Planetary boundary layer regime
+'pblreg' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 12 ;
+ }
+#Contrail intensity
+'conti' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 13 ;
+ }
+#Contrail engine type
+'contet' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 14 ;
+ }
+#Contrail top
+'contt' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 15 ;
+ }
+#Contrail base
+'contb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 16 ;
+ }
+#Maximum snow albedo
+'mxsalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 17 ;
+ }
+#Snow free albedo
+'snfalb' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 18 ;
+ }
+#Icing
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 20 ;
+ }
+#In-cloud turbulence
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 21 ;
+ }
+#Relative clear air turbulence (RCAT)
+'rcat' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 22 ;
+ }
+#Supercooled large droplet probability (see Note 4)
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 23 ;
+ }
+#Arbitrary text string
+'var190m0' = {
+ discipline = 0 ;
+ parameterCategory = 190 ;
+ parameterNumber = 0 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'tsec' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
+'ffldg' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
+'ffldro' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Remotely sensed snow cover
+'rssc' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
+#Elevation of snow covered terrain
+'esct' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Snow water equivalent percent of normal
+'swepon' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Baseflow-groundwater runoff
+'bgrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Storm surface runoff
+'ssrun' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
+'cppop' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
+'pposp' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Probability of 0.01 inch of precipitation (POP)
+'pop' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Vegetation
+'veg' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Water runoff
+'watr' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Evapotranspiration
+'evapt' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Model terrain height
+'mterh' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Land use
+'landu' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Ground heat flux
+'gflux' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Moisture availability
+'mstav' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Exchange coefficient
+'sfexc' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Plant canopy surface water
+'cnwat' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Blackadar mixing length scale
+'bmixl' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Canopy conductance
+'ccond' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ }
+#Minimal stomatal resistance
+'rsmin' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Solar parameter in canopy conductance
+'rcs' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Temperature parameter in canopy conductance
+'rct' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
+#Soil moisture parameter in canopy conductance
+'rcsol' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 20 ;
+ }
+#Humidity parameter in canopy conductance
+'rcq' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#Column-integrated soil water
+'cisoilw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 23 ;
+ }
+#Heat flux
+'hflux' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+ }
+#Volumetric soil moisture
+'vsw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ }
+#Volumetric wilting point
+'vwiltm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 27 ;
+ }
+#Number of soil layers in root zone
+'rlyrs' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Liquid volumetric soil moisture (non-frozen)
+'liqvsm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Volumetric transpiration stress-onset (soil moisture)
+'voltso' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Transpiration stress-onset (soil moisture)
+'transo' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Volumetric direct evaporation cease (soil moisture)
+'voldec' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Direct evaporation cease (soil moisture)
+'direc' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#Soil porosity
+'soilp' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Volumetric saturation of soil moisture
+'vsosm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Saturation of soil moisture
+'satosm' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#Estimated precipitation
+'estp' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Instantaneous rain rate
+'irrate' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Cloud top height
+'ctoph' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Cloud top height quality indicator
+'ctophqi' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Estimated u component of wind
+'estu' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Estimated v component of wind
+'estv' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Number of pixels used
+'npixu' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 6 ;
+ }
+#Solar zenith angle
+'solza' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Relative azimuth angle
+'raza' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 8 ;
+ }
+#Reflectance in 0.6 micron channel
+'rfl06' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Reflectance in 0.8 micron channel
+'rfl08' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Reflectance in 1.6 micron channel
+'rfl16' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ }
+#Reflectance in 3.9 micron channel
+'rfl39' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Atmospheric divergence
+'atmdiv' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Direction of wind waves
+'wvdir' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Primary wave direction
+'dirpw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Primary wave mean period
+'perpw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Secondary wave mean period
+'persw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Current direction
+'dirc' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Current speed
+'spc' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Geometric vertical velocity
+'wz' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 9 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'tsec' = {
+ discipline = 10 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
#2 metre relative humidity
'2r' = {
discipline = 0 ;
@@ -4195,26 +6670,6 @@
parameterCategory = 4 ;
parameterNumber = 14 ;
}
-#Evaporation in the last 6 hours
-'eva06' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 6 ;
- }
-#Evaporation in the last 24 hours
-'eva24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
#Fraction of snow cover
'fscov' = {
discipline = 0 ;
@@ -4353,6 +6808,13 @@
parameterCategory = 3 ;
parameterNumber = 19 ;
}
+#Leaf Area Index
+'lai' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Accumulated surface upward short-wave radiation flux, clear sky
'auswrf_cs' = {
discipline = 0 ;
@@ -4375,104 +6837,29 @@
parameterCategory = 0 ;
parameterNumber = 39 ;
}
-#Time-mean evapotranspiration rate in the last 24h
-'avg_et24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Potential evapotranspiration rate
'pet' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 40 ;
}
-#Time-integrated potential evapotranspiration rate in the last 24h
-'acc_pet24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean potential evapotranspiration rate in the last 24h
-'avg_pet24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean volumetric soil moisture
-'avg_swv24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Water runoff and drainage rate
'rod' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 42 ;
}
-#Time-integrated water runoff and drainage rate in the last 24h
-'acc_rod24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean water runoff and drainage rate in the last 24h
-'avg_rod24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow depth water equivalent
-'avg_sd24' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 60 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean skin temperature
-'avg_skt24' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Snow melt rate
'smr' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
}
-#Time-integrated snow melt rate in the last 24h
-'acc_smr24' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
+#Forecast albedo
+'al' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 1 ;
}
#Cloudy brightness temperature
'clbt' = {
@@ -4735,6 +7122,52 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 255 ;
}
+#Time-integrated eastward turbulent surface stress due to orographic form drag
+'etssofd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to orographic form drag
+'ntssofd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 65 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress due to surface roughness
+'etsssr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to surface roughness
+'ntsssr' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 67 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Saturation specific humidity with respect to water
+'sqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 168 ;
+ }
+#Total column integrated saturation specific humidity with respect to water
+'tcsqw' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 169 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Universal thermal climate index
'utci' = {
discipline = 20 ;
@@ -5671,6 +8104,54 @@
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
+#Sea surface salinity
+'sss' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
+#Vertically integrated sea water practical salinity in the upper 300 m
+'sc300v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Vertically integrated sea water practical salinity in the upper 700 m
+'sc700v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Total column vertically integrated sea water practical salinity
+'scbtv' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
#Sea water practical salinity
'so' = {
discipline = 10 ;
@@ -5733,7 +8214,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
}
#Sea water potential temperature tendency due to newtonian relaxation
'thetaodmp' = {
@@ -6779,6 +9262,13 @@
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface height with inverse barometer correction
+'avg_zosib' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 20 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean average sea water potential temperature in the upper 300m
'avg_pt300m' = {
discipline = 10 ;
@@ -6792,6 +9282,58 @@
scaleFactorOfSecondFixedSurface = 0 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface salinity
+'avg_sss' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 300 m
+'avg_sc300v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 700 m
+'avg_sc700v' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically integrated sea water practical salinity
+'avg_scbtv' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean sea water practical salinity
'avg_so' = {
discipline = 10 ;
@@ -6861,7 +9403,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean sea water potential temperature tendency due to newtonian relaxation
@@ -6936,6 +9480,15 @@
typeOfSecondFixedSurface = 168 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea water salinity
+'avg_salo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean net short wave radiation rate at sea surface
'avg_ssr_sea' = {
discipline = 0 ;
@@ -7122,6 +9675,8 @@
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
}
#Mass mixing ratio
'mass_mixrat' = {
@@ -7451,6 +10006,56 @@
parameterCategory = 20 ;
parameterNumber = 59 ;
}
+#Mass mixing ratio from volcanoes
+'mass_mixrat_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 2 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Total column vertically-integrated mass density from volcanoes
+'tc_mdens_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Dry deposition velocity from volcanoes
+'drydep_vel_vol' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 15 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Pressure tendency
+'ptend' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ }
+#ICAO Standard Atmosphere reference height
+'icaht' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ }
+#Geometrical height
+'h' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Standard deviation of height
+'hstdv' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 7 ;
+ }
#Virtual potential temperature
'vptmp' = {
discipline = 0 ;
@@ -7463,12 +10068,222 @@
parameterCategory = 0 ;
parameterNumber = 3 ;
}
+#Maximum temperature
+'tmax' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Minimum temperature
+'tmin' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Dew point temperature
+'dpt' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Lapse rate
+'lapr' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Visibility
+'vis' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ }
+#Radar spectra (1)
+'rdsp1' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 6 ;
+ }
+#Radar spectra (2)
+'rdsp2' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 7 ;
+ }
+#Radar spectra (3)
+'rdsp3' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 8 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'pli' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 0 ;
+ }
+#Temperature anomaly
+'ta' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 9 ;
+ }
+#Pressure anomaly
+'presa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 8 ;
+ }
+#Geopotential height anomaly
+'gpa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 9 ;
+ }
+#Wave spectra (1)
+'wvsp1' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Wave spectra (2)
+'wvsp2' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Wave spectra (3)
+'wvsp3' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind direction
'wdir' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 0 ;
}
+#Sigma coordinate vertical velocity
+'sgcvv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
+#Absolute vorticity
+'absv' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 10 ;
+ }
+#Absolute divergence
+'absd' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 11 ;
+ }
+#Vertical u-component shear
+'vucsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ }
+#Vertical v-component shear
+'vvcsh' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ }
+#Precipitable water
+'pwat' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Saturation deficit
+'satd' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Precipitation rate
+'prate' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Thunderstorm probability
+'tstm' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 2 ;
+ }
+#Convective precipitation (water)
+'acpcp' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Mixed layer depth
+'mld' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 3 ;
+ }
+#Transient thermocline depth
+'tthdp' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 2 ;
+ }
+#Main thermocline anomaly
+'mtha' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Best lifted index (to 500 hPa)
+'bli' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 1 ;
+ }
+#Soil moisture content
+'ssw' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Salinity
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Density
+'den' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Direction of ice drift
+'diced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#Speed of ice drift
+'siced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Ice divergence
+'iced' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
#Snowmelt
'snom' = {
discipline = 2 ;
@@ -7477,17 +10292,87 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Direction of swell waves
+'swdir' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Secondary wave direction
+'dirsw' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Net short-wave radiation flux (surface)
+'nswrs' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 0 ;
+ }
+#Global radiation flux
+'grad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Radiance (with respect to wave number)
+'lwrad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 5 ;
+ }
+#Radiance (with respect to wave length)
+'swrad' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 6 ;
+ }
+#Wind mixing energy
+'wmixe' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 19 ;
+ }
+#10 metre wind gust of at least 15 m/s
+'10fgg15' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 15 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#10 metre wind gust of at least 20 m/s
+'10fgg20' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Period corresponding to maximum individual wave height
'tmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 23 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'hmax' = {
discipline = 10 ;
parameterCategory = 0 ;
- parameterNumber = 24 ;
+ parameterNumber = 93 ;
}
#Model bathymetry
'wmb' = {
@@ -7675,20 +10560,6 @@
parameterCategory = 0 ;
parameterNumber = 44 ;
}
-#Eastward sea water velocity
-'ocu' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 160 ;
- }
-#Northward sea water velocity
-'ocv' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 160 ;
- }
#Skin reservoir content
'srcrea' = {
discipline = 2 ;
@@ -7881,6 +10752,14 @@
parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean surface net radiation flux (SW and LW)
+'msnrf' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Surface runoff
'sro' = {
discipline = 2 ;
@@ -7955,12 +10834,47 @@
typeOfGeneratingProcess = 20 ;
is_chemical = 1 ;
}
+#Convective inhibition
+'cin' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 7 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Orography
+'orog' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Friction velocity
'zust' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
+#Mean 2 metre temperature
+'mean2t' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean of 10 metre wind speed
+'mean10ws' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Lake total depth
'dl' = {
discipline = 1 ;
@@ -8061,6 +10975,12 @@
parameterCategory = 19 ;
parameterNumber = 43 ;
}
+#Soil moisture
+'sm' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
#10 metre u-component of neutral wind
'u10n' = {
discipline = 0 ;
@@ -8079,1957 +10999,6 @@
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
-#U-component surface stokes drift
-'ust' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#V-component surface stokes drift
-'vst' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
-#100 metre U wind component
-'100u' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#100 metre V wind component
-'100v' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Total precipitation of at least 10 mm
-'tpg10' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 10 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Total precipitation of at least 20 mm
-'tpg20' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Stream function
-'strf' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 4 ;
- }
-#Velocity potential
-'vp' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 5 ;
- }
-#Potential temperature
-'pt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Pressure
-'pres' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- }
-#Convective available potential energy
-'cape' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Potential vorticity
-'pv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 14 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'mx2t6' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 2 ;
- lengthOfTimeRange = 6 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'mn2t6' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 3 ;
- lengthOfTimeRange = 6 ;
- }
-#Geopotential
-'z' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 4 ;
- }
-#Temperature
-'t' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#U component of wind
-'u' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#V component of wind
-'v' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Specific humidity
-'q' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Surface pressure
-'sp' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Vertical velocity
-'w' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 8 ;
- }
-#Total column water
-'tcw' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Vorticity (relative)
-'vo' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 12 ;
- }
-#Surface sensible heat flux
-'sshf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface latent heat flux
-'slhf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Mean sea level pressure
-'msl' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 101 ;
- }
-#Divergence
-'d' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 13 ;
- }
-#Geopotential height
-'gh' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- }
-#Relative humidity
-'r' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#10 metre U wind component
-'10u' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#10 metre V wind component
-'10v' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre temperature
-'2t' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre dewpoint temperature
-'2d' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Land-sea mask
-'lsm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Surface net short-wave (solar) radiation
-'ssr' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface net long-wave (thermal) radiation
-'str' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Top net long-wave (thermal) radiation
-'ttr' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 8 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Sunshine duration
-'sund' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Brightness temperature
-'btmp' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 4 ;
- }
-#10 metre wind speed
-'10si' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 1 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Skin temperature
-'skt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Latent heat net flux
-'lhtfl' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Heat index
-'heatx' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Wind chill factor
-'wcf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Minimum dew point depression
-'mindpd' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Snow phase change heat flux
-'snohf' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Vapor pressure
-'vapp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Large scale precipitation (non-convective)
-'ncpcp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Snowfall rate water equivalent
-'srweq' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Convective snow
-'snoc' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 14 ;
- }
-#Large scale snow
-'snol' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 15 ;
- }
-#Snow age
-'snoag' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 17 ;
- }
-#Absolute humidity
-'absh' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 18 ;
- }
-#Precipitation type
-'ptype' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 19 ;
- }
-#Integrated liquid water
-'iliqw' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 20 ;
- }
-#Condensate
-'tcond' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 21 ;
- }
-#Cloud mixing ratio
-'clwmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 22 ;
- }
-#Ice water mixing ratio
-'icmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 23 ;
- }
-#Rain mixing ratio
-'rwmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 24 ;
- }
-#Snow mixing ratio
-'snmr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 25 ;
- }
-#Horizontal moisture convergence
-'mconv' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 26 ;
- }
-#Maximum relative humidity
-'maxrh' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 27 ;
- }
-#Maximum absolute humidity
-'maxah' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 28 ;
- }
-#Precipitable water category
-'pwcat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 30 ;
- }
-#Hail
-'hail' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 31 ;
- }
-#Graupel (snow pellets)
-'grle' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 32 ;
- }
-#Categorical rain
-'crain' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 33 ;
- }
-#Categorical freezing rain
-'cfrzr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 34 ;
- }
-#Categorical ice pellets
-'cicep' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 35 ;
- }
-#Categorical snow
-'csnow' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 36 ;
- }
-#Convective precipitation rate
-'cprat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 37 ;
- }
-#Horizontal moisture divergence
-'mdiv' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 38 ;
- }
-#Percent frozen precipitation
-'cpofp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 39 ;
- }
-#Potential evaporation
-'pevap' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 40 ;
- }
-#Snow cover
-'snowc' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 42 ;
- }
-#Rain fraction of total cloud water
-'frain' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 43 ;
- }
-#Rime factor
-'rime' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 44 ;
- }
-#Total column integrated rain
-'tcolr' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 45 ;
- }
-#Total column integrated snow
-'tcols' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 46 ;
- }
-#Large scale water precipitation (non-convective)
-'lswp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 47 ;
- }
-#Convective water precipitation
-'cwp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 48 ;
- }
-#Total water precipitation
-'twatp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 49 ;
- }
-#Total snow precipitation
-'tsnowp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 50 ;
- }
-#Total column water (Vertically integrated total water (vapour + cloud water/ice))
-'tcwat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- }
-#Total precipitation rate
-'tprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Total snowfall rate water equivalent
-'tsrwe' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 53 ;
- }
-#Large scale precipitation rate
-'lsprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 54 ;
- }
-#Total snowfall rate
-'tsrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 57 ;
- }
-#Convective snowfall rate
-'csrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 58 ;
- }
-#Large scale snowfall rate
-'lssrate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 59 ;
- }
-#Water equivalent of accumulated snow depth (deprecated)
-'sdwe' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Rain precipitation rate
-'rprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 65 ;
- }
-#Snow precipitation rate
-'sprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 66 ;
- }
-#Freezing rain precipitation rate
-'fprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 67 ;
- }
-#Ice pellets precipitation rate
-'iprate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 68 ;
- }
-#Momentum flux, u component
-'uflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 17 ;
- }
-#Momentum flux, v component
-'vflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 18 ;
- }
-#Maximum wind speed
-'maxgust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 21 ;
- }
-#Wind speed (gust)
-'gust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- }
-#u-component of wind (gust)
-'ugust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 23 ;
- }
-#v-component of wind (gust)
-'vgust' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 24 ;
- }
-#Vertical speed shear
-'vwsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 25 ;
- }
-#Horizontal momentum flux
-'mflx' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 26 ;
- }
-#U-component storm motion
-'ustm' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 27 ;
- }
-#V-component storm motion
-'vstm' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 28 ;
- }
-#Drag coefficient
-'cd' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 29 ;
- }
-#Frictional velocity
-'fricv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 30 ;
- }
-#Pressure reduced to MSL
-'prmsl' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 1 ;
- }
-#Altimeter setting
-'alts' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Thickness
-'thick' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Pressure altitude
-'presalt' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Density altitude
-'denalt' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#5-wave geopotential height
-'5wavh' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Zonal flux of gravity wave stress
-'u-gwd' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Meridional flux of gravity wave stress
-'v-gwd' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#5-wave geopotential height anomaly
-'5wava' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 19 ;
- }
-#Net short-wave radiation flux (top of atmosphere)
-'nswrt' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Downward short-wave radiation flux
-'dswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 7 ;
- }
-#Upward short-wave radiation flux
-'uswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 8 ;
- }
-#Net short wave radiation flux
-'nswrf' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- }
-#Photosynthetically active radiation
-'photar' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 10 ;
- }
-#Net short-wave radiation flux, clear sky
-'nswrfcs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 11 ;
- }
-#Downward UV radiation
-'dwuvr' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 12 ;
- }
-#UV index (under clear sky)
-'uviucs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 50 ;
- }
-#UV index
-'uvi' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 51 ;
- }
-#Net long wave radiation flux (surface)
-'nlwrs' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 0 ;
- }
-#Net long wave radiation flux (top of atmosphere)
-'nlwrt' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 1 ;
- }
-#Downward long-wave radiation flux
-'dlwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 3 ;
- }
-#Upward long-wave radiation flux
-'ulwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 4 ;
- }
-#Net long wave radiation flux
-'nlwrf' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- }
-#Net long-wave radiation flux, clear sky
-'nlwrcs' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 6 ;
- }
-#Cloud Ice
-'cice' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 0 ;
- }
-#Cloud water
-'cwat' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 6 ;
- }
-#Cloud amount
-'cdca' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 7 ;
- }
-#Cloud type
-'cdct' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 8 ;
- }
-#Thunderstorm maximum tops
-'tmaxt' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 9 ;
- }
-#Thunderstorm coverage
-'thunc' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 10 ;
- }
-#Cloud top
-'cdct' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 12 ;
- }
-#Ceiling
-'ceil' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 13 ;
- }
-#Non-convective cloud cover
-'cdlyr' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 14 ;
- }
-#Cloud work function
-'cwork' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 15 ;
- }
-#Convective cloud efficiency
-'cuefi' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 16 ;
- }
-#Total condensate
-'tcond' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 17 ;
- }
-#Total column-integrated cloud water
-'tcolw' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 18 ;
- }
-#Total column-integrated cloud ice
-'tcoli' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 19 ;
- }
-#Total column-integrated condensate
-'tcolc' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 20 ;
- }
-#Ice fraction of total condensate
-'fice' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 21 ;
- }
-#Cloud ice mixing ratio
-'cdcimr' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 23 ;
- }
-#Sunshine
-'suns' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- }
-#Horizontal extent of cumulonimbus (CB)
-'~' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 25 ;
- }
-#K index
-'kx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 2 ;
- }
-#KO index
-'kox' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 3 ;
- }
-#Total totals index
-'totalx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 4 ;
- }
-#Sweat index
-'sx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 5 ;
- }
-#Storm relative helicity
-'hlcy' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 8 ;
- }
-#Energy helicity index
-'ehlx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 9 ;
- }
-#Surface lifted index
-'lftx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 10 ;
- }
-#Best (4-layer) lifted index
-'4lftx' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 11 ;
- }
-#Aerosol type
-'aerot' = {
- discipline = 0 ;
- parameterCategory = 13 ;
- parameterNumber = 0 ;
- }
-#Total ozone
-'tozne' = {
- discipline = 0 ;
- parameterCategory = 14 ;
- parameterNumber = 0 ;
- }
-#Base spectrum width
-'bswid' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 0 ;
- }
-#Base reflectivity
-'bref' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 1 ;
- }
-#Base radial velocity
-'brvel' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 2 ;
- }
-#Vertically-integrated liquid
-'veril' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 3 ;
- }
-#Layer-maximum base reflectivity
-'lmaxbr' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 4 ;
- }
-#Precipitation
-'prec' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 5 ;
- }
-#Air concentration of Caesium 137
-'acces' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 0 ;
- }
-#Air concentration of Iodine 131
-'aciod' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 1 ;
- }
-#Air concentration of radioactive pollutant
-'acradp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 2 ;
- }
-#Ground deposition of Caesium 137
-'gdces' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 3 ;
- }
-#Ground deposition of Iodine 131
-'gdiod' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 4 ;
- }
-#Ground deposition of radioactive pollutant
-'gdradp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 5 ;
- }
-#Time-integrated air concentration of caesium pollutant
-'tiaccp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 6 ;
- }
-#Time-integrated air concentration of iodine pollutant
-'tiacip' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 7 ;
- }
-#Time-integrated air concentration of radioactive pollutant
-'tiacrp' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 8 ;
- }
-#Volcanic ash
-'volash' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 4 ;
- }
-#Icing top
-'icit' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 5 ;
- }
-#Icing base
-'icib' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 6 ;
- }
-#Icing
-'ici' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 7 ;
- }
-#Turbulence top
-'turbt' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 8 ;
- }
-#Turbulence base
-'turbb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 9 ;
- }
-#Turbulence
-'turb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 10 ;
- }
-#Turbulent kinetic energy
-'tke' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 11 ;
- }
-#Planetary boundary layer regime
-'pblreg' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 12 ;
- }
-#Contrail intensity
-'conti' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 13 ;
- }
-#Contrail engine type
-'contet' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 14 ;
- }
-#Contrail top
-'contt' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 15 ;
- }
-#Contrail base
-'contb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 16 ;
- }
-#Maximum snow albedo
-'mxsalb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 17 ;
- }
-#Snow free albedo
-'snfalb' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 18 ;
- }
-#Icing
-'~' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 20 ;
- }
-#In-cloud turbulence
-'~' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 21 ;
- }
-#Relative clear air turbulence (RCAT)
-'rcat' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 22 ;
- }
-#Supercooled large droplet probability (see Note 4)
-'~' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 23 ;
- }
-#Arbitrary text string
-'var190m0' = {
- discipline = 0 ;
- parameterCategory = 190 ;
- parameterNumber = 0 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'tsec' = {
- discipline = 0 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
-'ffldg' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
-'ffldro' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Remotely sensed snow cover
-'rssc' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Elevation of snow covered terrain
-'esct' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Snow water equivalent percent of normal
-'swepon' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Baseflow-groundwater runoff
-'bgrun' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Storm surface runoff
-'ssrun' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
-'cppop' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
-'pposp' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Probability of 0.01 inch of precipitation (POP)
-'pop' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Vegetation
-'veg' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Water runoff
-'watr' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Evapotranspiration
-'evapt' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Model terrain height
-'mterh' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Land use
-'landu' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Ground heat flux
-'gflux' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Moisture availability
-'mstav' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Exchange coefficient
-'sfexc' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Plant canopy surface water
-'cnwat' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Blackadar mixing length scale
-'bmixl' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Canopy conductance
-'ccond' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 15 ;
- }
-#Minimal stomatal resistance
-'rsmin' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Solar parameter in canopy conductance
-'rcs' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 18 ;
- }
-#Temperature parameter in canopy conductance
-'rct' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 19 ;
- }
-#Soil moisture parameter in canopy conductance
-'rcsol' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 20 ;
- }
-#Humidity parameter in canopy conductance
-'rcq' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#Column-integrated soil water
-'cisoilw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 23 ;
- }
-#Heat flux
-'hflux' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 24 ;
- }
-#Volumetric soil moisture
-'vsw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- }
-#Volumetric wilting point
-'vwiltm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 27 ;
- }
-#Number of soil layers in root zone
-'rlyrs' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Liquid volumetric soil moisture (non-frozen)
-'liqvsm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Volumetric transpiration stress-onset (soil moisture)
-'voltso' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Transpiration stress-onset (soil moisture)
-'transo' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Volumetric direct evaporation cease (soil moisture)
-'voldec' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Direct evaporation cease (soil moisture)
-'direc' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#Soil porosity
-'soilp' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Volumetric saturation of soil moisture
-'vsosm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Saturation of soil moisture
-'satosm' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#Estimated precipitation
-'estp' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Instantaneous rain rate
-'irrate' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Cloud top height
-'ctoph' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Cloud top height quality indicator
-'ctophqi' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Estimated u component of wind
-'estu' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Estimated v component of wind
-'estv' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Number of pixels used
-'npixu' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 6 ;
- }
-#Solar zenith angle
-'solza' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Relative azimuth angle
-'raza' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 8 ;
- }
-#Reflectance in 0.6 micron channel
-'rfl06' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Reflectance in 0.8 micron channel
-'rfl08' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Reflectance in 1.6 micron channel
-'rfl16' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 11 ;
- }
-#Reflectance in 3.9 micron channel
-'rfl39' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Atmospheric divergence
-'atmdiv' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Direction of wind waves
-'wvdir' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Primary wave direction
-'dirpw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Primary wave mean period
-'perpw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Secondary wave mean period
-'persw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Current direction
-'dirc' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Current speed
-'spc' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Geometric vertical velocity
-'wz' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 9 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'tsec' = {
- discipline = 10 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Forecast albedo
-'al' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 1 ;
- }
-#Pressure tendency
-'ptend' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 2 ;
- }
-#ICAO Standard Atmosphere reference height
-'icaht' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 3 ;
- }
-#Geometrical height
-'h' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Standard deviation of height
-'hstdv' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 7 ;
- }
-#Maximum temperature
-'tmax' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Minimum temperature
-'tmin' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Dew point temperature
-'dpt' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Lapse rate
-'lapr' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Visibility
-'vis' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 0 ;
- }
-#Radar spectra (1)
-'rdsp1' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 6 ;
- }
-#Radar spectra (2)
-'rdsp2' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 7 ;
- }
-#Radar spectra (3)
-'rdsp3' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 8 ;
- }
-#Parcel lifted index (to 500 hPa)
-'pli' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 0 ;
- }
-#Temperature anomaly
-'ta' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 9 ;
- }
-#Pressure anomaly
-'presa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 8 ;
- }
-#Geopotential height anomaly
-'gpa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 9 ;
- }
-#Wave spectra (1)
-'wvsp1' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Wave spectra (2)
-'wvsp2' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Wave spectra (3)
-'wvsp3' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Sigma coordinate vertical velocity
-'sgcvv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Absolute vorticity
-'absv' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 10 ;
- }
-#Absolute divergence
-'absd' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 11 ;
- }
-#Vertical u-component shear
-'vucsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 15 ;
- }
-#Vertical v-component shear
-'vvcsh' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 16 ;
- }
-#U-component of current
-'ucurr' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#V-component of current
-'vcurr' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Precipitable water
-'pwat' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Saturation deficit
-'satd' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Precipitation rate
-'prate' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Thunderstorm probability
-'tstm' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 2 ;
- }
-#Convective precipitation (water)
-'acpcp' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Mixed layer depth
-'mld' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 3 ;
- }
-#Transient thermocline depth
-'tthdp' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 2 ;
- }
-#Main thermocline anomaly
-'mtha' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Best lifted index (to 500 hPa)
-'bli' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 1 ;
- }
-#Soil moisture content
-'ssw' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Salinity
-'s' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Density
-'den' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Direction of ice drift
-'diced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#Speed of ice drift
-'siced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Ice divergence
-'iced' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Direction of swell waves
-'swdir' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Secondary wave direction
-'dirsw' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Net short-wave radiation flux (surface)
-'nswrs' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 0 ;
- }
-#Global radiation flux
-'grad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Radiance (with respect to wave number)
-'lwrad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 5 ;
- }
-#Radiance (with respect to wave length)
-'swrad' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 6 ;
- }
-#Wind mixing energy
-'wmixe' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 19 ;
- }
-#10 metre wind gust of at least 15 m/s
-'10fgg15' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 15 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#10 metre wind gust of at least 20 m/s
-'10fgg20' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Convective inhibition
-'cin' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 7 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Orography
-'orog' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Soil moisture
-'sm' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
#Soil temperature
'st' = {
discipline = 2 ;
@@ -10089,4 +11058,34 @@
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
+ }
+#U-component surface stokes drift
+'ust' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#V-component surface stokes drift
+'vst' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
+#100 metre U wind component
+'100u' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#100 metre V wind component
+'100v' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
}
diff --git a/definitions/grib2/shortName.legacy.def b/definitions/grib2/shortName.legacy.def
index ab51bf25c..40909c342 100644
--- a/definitions/grib2/shortName.legacy.def
+++ b/definitions/grib2/shortName.legacy.def
@@ -52,3 +52,131 @@
parameterCategory = 3 ;
parameterNumber = 9 ;
}
+#Instantaneous eastward turbulent surface stress
+'iews' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 38 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Instantaneous northward turbulent surface stress
+'inss' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 37 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Evaporation in the last 6 hours
+'eva06' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 79 ;
+ typeOfFirstFixedSurface = 1 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 6 ;
+}
+#Time-mean evapotranspiration rate in the last 24h
+'avg_et24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated potential evapotranspiration rate in the last 24h
+'acc_pet24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean potential evapotranspiration rate in the last 24h
+'avg_pet24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean volumetric soil moisture
+'avg_swv24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated water runoff and drainage rate in the last 24h
+'acc_rod24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean water runoff and drainage rate in the last 24h
+'avg_rod24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean snow depth water equivalent
+'avg_sd24' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean skin temperature
+'avg_skt24' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated snow melt rate in the last 24h
+'acc_smr24' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 41 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Upward sea water velocity
+'wo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+}
+#Time-mean upward sea water velocity
+'avg_wo' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+}
+#Maximum individual wave height
+'hmax' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+}
diff --git a/definitions/grib2/stepUnits.def b/definitions/grib2/stepUnits.def
new file mode 100644
index 000000000..d1beeb517
--- /dev/null
+++ b/definitions/grib2/stepUnits.def
@@ -0,0 +1,12 @@
+# (C) Copyright 2005- ECMWF.
+
+# alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
+# template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
+# codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
+
+# See ECC-1768 re why no_copy is needed
+meta stepUnits optimal_step_units(forecastTime,indicatorOfUnitOfTimeRange,lengthOfTimeRange,indicatorOfUnitForTimeRange) : dump,no_copy;
+transient startStepUnit = 255 : hidden; # 255 means MISSING. See code table 4.4
+transient endStepUnit = 255 : hidden;
+# The lowercase version is to unify it with the helper key in the MARS language
+alias stepunits = stepUnits;
diff --git a/definitions/grib2/tables/0/1.1.table b/definitions/grib2/tables/0/1.1.table
index a3c2fdc79..a0502880b 100644
--- a/definitions/grib2/tables/0/1.1.table
+++ b/definitions/grib2/tables/0/1.1.table
@@ -1,2 +1,2 @@
-0 0 Local tables not used
+0 0 Local tables not used
255 255 Missing
diff --git a/definitions/grib2/tables/0/4.2.0.20.table b/definitions/grib2/tables/0/4.2.0.20.table
index 2a66a0fe3..ffdfd8cbf 100644
--- a/definitions/grib2/tables/0/4.2.0.20.table
+++ b/definitions/grib2/tables/0/4.2.0.20.table
@@ -18,5 +18,5 @@
58 58 Total yearly averaged atmospheric loss (see Note 1) mol s-1
100 100 Surface area density (aerosol) m-1
101 101 Atmosphere optical thickness m
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/0/4.5.table b/definitions/grib2/tables/0/4.5.table
index 984d7a3a0..1c82cabbc 100644
--- a/definitions/grib2/tables/0/4.5.table
+++ b/definitions/grib2/tables/0/4.5.table
@@ -1,26 +1,26 @@
0 0 Reserved
-1 sfc Ground or water surface
-2 2 Cloud base level
-3 3 Level of cloud tops
-4 4 Level of 0o C isotherm
+1 sfc Ground or water surface
+2 2 Cloud base level
+3 3 Level of cloud tops
+4 4 Level of 0o C isotherm
5 5 Level of adiabatic condensation lifted from the surface
-6 6 Maximum wind level
-7 sfc Tropopause
-8 sfc Nominal top of the atmosphere
-9 9 Sea bottom
+6 6 Maximum wind level
+7 sfc Tropopause
+8 sfc Nominal top of the atmosphere
+9 9 Sea bottom
20 20 Isothermal level (K)
100 pl Isobaric surface (Pa)
101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
-105 105 Hybrid level
+105 105 Hybrid level
106 sfc Depth below land surface (m)
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
110 110 Reserved
-111 ml Eta level
+111 ml Eta level
117 117 Mixed layer depth (m)
160 160 Depth below sea level (m)
255 255 Missing
diff --git a/definitions/grib2/tables/1.0.table b/definitions/grib2/tables/1.0.table
index bcd9f7108..432c0f0e5 100644
--- a/definitions/grib2/tables/1.0.table
+++ b/definitions/grib2/tables/1.0.table
@@ -31,6 +31,8 @@
29 29 Version implemented on 15 May 2022
30 30 Version implemented on 15 November 2022
31 31 Version implemented on 15 May 2023
-32 32 Pre-operational to be implemented by next amendment
-# 33-254 Future versions
+32 32 Version implemented on 30 November 2023
+33 33 Version implemented on 15 May 2024
+34 34 Pre-operational to be implemented by next amendment
+# 35-254 Future versions
255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used.
diff --git a/definitions/grib2/tables/1/1.1.table b/definitions/grib2/tables/1/1.1.table
index a3c2fdc79..a0502880b 100644
--- a/definitions/grib2/tables/1/1.1.table
+++ b/definitions/grib2/tables/1/1.1.table
@@ -1,2 +1,2 @@
-0 0 Local tables not used
+0 0 Local tables not used
255 255 Missing
diff --git a/definitions/grib2/tables/1/4.5.table b/definitions/grib2/tables/1/4.5.table
index 3b3039f7a..7c581e5ff 100644
--- a/definitions/grib2/tables/1/4.5.table
+++ b/definitions/grib2/tables/1/4.5.table
@@ -1,13 +1,13 @@
0 0 Reserved
-1 sfc Ground or water surface
-2 2 Cloud base level
-3 3 Level of cloud tops
-4 4 Level of 0o C isotherm
+1 sfc Ground or water surface
+2 2 Cloud base level
+3 3 Level of cloud tops
+4 4 Level of 0o C isotherm
5 5 Level of adiabatic condensation lifted from the surface
-6 6 Maximum wind level
-7 sfc Tropopause
-8 sfc Nominal top of the atmosphere
-9 9 Sea bottom
+6 6 Maximum wind level
+7 sfc Tropopause
+8 sfc Nominal top of the atmosphere
+9 9 Sea bottom
20 20 Isothermal level (K)
100 pl Isobaric surface (Pa)
101 sfc Mean sea level
diff --git a/definitions/grib2/tables/10/0.0.table b/definitions/grib2/tables/10/0.0.table
index 1d3a90b49..88d8b2cb3 100644
--- a/definitions/grib2/tables/10/0.0.table
+++ b/definitions/grib2/tables/10/0.0.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/1.1.table b/definitions/grib2/tables/10/1.1.table
index 91ef66244..55fa1eb63 100644
--- a/definitions/grib2/tables/10/1.1.table
+++ b/definitions/grib2/tables/10/1.1.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/10/1.2.table b/definitions/grib2/tables/10/1.2.table
index d90ad0109..606bf8300 100644
--- a/definitions/grib2/tables/10/1.2.table
+++ b/definitions/grib2/tables/10/1.2.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/1.3.table b/definitions/grib2/tables/10/1.3.table
index 35cd6a636..712bb2ba8 100644
--- a/definitions/grib2/tables/10/1.3.table
+++ b/definitions/grib2/tables/10/1.3.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
-5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/1.4.table b/definitions/grib2/tables/10/1.4.table
index d11a335a7..7f47afd96 100644
--- a/definitions/grib2/tables/10/1.4.table
+++ b/definitions/grib2/tables/10/1.4.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/10/3.0.table b/definitions/grib2/tables/10/3.0.table
index 4baed0aab..4269b25ad 100644
--- a/definitions/grib2/tables/10/3.0.table
+++ b/definitions/grib2/tables/10/3.0.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/10/3.10.table b/definitions/grib2/tables/10/3.10.table
index 23c1cdd36..da36dc664 100644
--- a/definitions/grib2/tables/10/3.10.table
+++ b/definitions/grib2/tables/10/3.10.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/10/3.11.table b/definitions/grib2/tables/10/3.11.table
index 560318d1b..0a299af98 100644
--- a/definitions/grib2/tables/10/3.11.table
+++ b/definitions/grib2/tables/10/3.11.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 There is no appended list
+0 0 There is no appended list
1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
diff --git a/definitions/grib2/tables/10/3.15.table b/definitions/grib2/tables/10/3.15.table
index 2394a293f..6087902a3 100644
--- a/definitions/grib2/tables/10/3.15.table
+++ b/definitions/grib2/tables/10/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.2.table b/definitions/grib2/tables/10/3.2.table
index 1a3d03bbc..58a2a548b 100644
--- a/definitions/grib2/tables/10/3.2.table
+++ b/definitions/grib2/tables/10/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
9 9 Earth represented by the OSGB 1936 Datum, using the Airy_1830 Spheroid, the Greenwich meridian as 0 longitude, the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.20.table b/definitions/grib2/tables/10/3.20.table
index 3f7ab4cc4..63de6b1a9 100644
--- a/definitions/grib2/tables/10/3.20.table
+++ b/definitions/grib2/tables/10/3.20.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.21.table b/definitions/grib2/tables/10/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/10/3.21.table
+++ b/definitions/grib2/tables/10/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.3.table b/definitions/grib2/tables/10/3.3.table
index 5167ed6b7..bd47e2509 100644
--- a/definitions/grib2/tables/10/3.3.table
+++ b/definitions/grib2/tables/10/3.3.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/10/3.4.table b/definitions/grib2/tables/10/3.4.table
index 63c8adaaa..ea9cbe829 100644
--- a/definitions/grib2/tables/10/3.4.table
+++ b/definitions/grib2/tables/10/3.4.table
@@ -1,10 +1,10 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/10/3.5.table b/definitions/grib2/tables/10/3.5.table
index 8ccf0f13b..6d3ec036e 100644
--- a/definitions/grib2/tables/10/3.5.table
+++ b/definitions/grib2/tables/10/3.5.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/10/3.7.table b/definitions/grib2/tables/10/3.7.table
index e2dc660dd..2d01b8d52 100644
--- a/definitions/grib2/tables/10/3.7.table
+++ b/definitions/grib2/tables/10/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 The complex numbers Fnm. See separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.8.table b/definitions/grib2/tables/10/3.8.table
index 4e811917b..6df554ae9 100644
--- a/definitions/grib2/tables/10/3.8.table
+++ b/definitions/grib2/tables/10/3.8.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/3.9.table b/definitions/grib2/tables/10/3.9.table
index f35b7ca53..530d1dee0 100644
--- a/definitions/grib2/tables/10/3.9.table
+++ b/definitions/grib2/tables/10/3.9.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/10/4.0.table b/definitions/grib2/tables/10/4.0.table
index 5f405bed8..28733d42d 100644
--- a/definitions/grib2/tables/10/4.0.table
+++ b/definitions/grib2/tables/10/4.0.table
@@ -1,52 +1,52 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
# 33-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-# 52-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+# 52-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
+# 1102-32767 Reserved
# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
diff --git a/definitions/grib2/tables/10/4.1.0.table b/definitions/grib2/tables/10/4.1.0.table
index 361108860..3413dbad5 100644
--- a/definitions/grib2/tables/10/4.1.0.table
+++ b/definitions/grib2/tables/10/4.1.0.table
@@ -1,27 +1,27 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.1.1.table b/definitions/grib2/tables/10/4.1.1.table
index 29f1dec79..dea5bc49e 100644
--- a/definitions/grib2/tables/10/4.1.1.table
+++ b/definitions/grib2/tables/10/4.1.1.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.1.10.table b/definitions/grib2/tables/10/4.1.10.table
index 9c8c92b12..e6ce6faf7 100644
--- a/definitions/grib2/tables/10/4.1.10.table
+++ b/definitions/grib2/tables/10/4.1.10.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.1.192.table b/definitions/grib2/tables/10/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/10/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/10/4.1.2.table b/definitions/grib2/tables/10/4.1.2.table
index b90201c63..805836998 100644
--- a/definitions/grib2/tables/10/4.1.2.table
+++ b/definitions/grib2/tables/10/4.1.2.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.1.3.table b/definitions/grib2/tables/10/4.1.3.table
index fe1d8ae5a..adcbfb051 100644
--- a/definitions/grib2/tables/10/4.1.3.table
+++ b/definitions/grib2/tables/10/4.1.3.table
@@ -1,8 +1,8 @@
# Code table 4.1 - Parameter category by product discipline. Product discipline 3 - Space products
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.10.table b/definitions/grib2/tables/10/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/10/4.10.table
+++ b/definitions/grib2/tables/10/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/10/4.11.table b/definitions/grib2/tables/10/4.11.table
index 1257d1b09..af9ff29ad 100644
--- a/definitions/grib2/tables/10/4.11.table
+++ b/definitions/grib2/tables/10/4.11.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.12.table b/definitions/grib2/tables/10/4.12.table
index e06a3be5b..6cab67bf5 100644
--- a/definitions/grib2/tables/10/4.12.table
+++ b/definitions/grib2/tables/10/4.12.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.13.table b/definitions/grib2/tables/10/4.13.table
index 107ace60c..f090fb9ae 100644
--- a/definitions/grib2/tables/10/4.13.table
+++ b/definitions/grib2/tables/10/4.13.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.14.table b/definitions/grib2/tables/10/4.14.table
index 24a228921..bcb04f328 100644
--- a/definitions/grib2/tables/10/4.14.table
+++ b/definitions/grib2/tables/10/4.14.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.15.table b/definitions/grib2/tables/10/4.15.table
index 97cdcd2ee..6e1ef5745 100644
--- a/definitions/grib2/tables/10/4.15.table
+++ b/definitions/grib2/tables/10/4.15.table
@@ -1,11 +1,11 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.0.table b/definitions/grib2/tables/10/4.2.0.0.table
index debc0a6f4..8656f8974 100644
--- a/definitions/grib2/tables/10/4.2.0.0.table
+++ b/definitions/grib2/tables/10/4.2.0.0.table
@@ -20,6 +20,6 @@
18 18 Snow temperature (top of snow) (K)
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
-# 21-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.1.table b/definitions/grib2/tables/10/4.2.0.1.table
index b95e8699d..3d68fbe86 100644
--- a/definitions/grib2/tables/10/4.2.0.1.table
+++ b/definitions/grib2/tables/10/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.13.table b/definitions/grib2/tables/10/4.2.0.13.table
index b9979f0d3..90ab7d1b9 100644
--- a/definitions/grib2/tables/10/4.2.0.13.table
+++ b/definitions/grib2/tables/10/4.2.0.13.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.14.table b/definitions/grib2/tables/10/4.2.0.14.table
index 4a2a4e128..fca42ccc7 100644
--- a/definitions/grib2/tables/10/4.2.0.14.table
+++ b/definitions/grib2/tables/10/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.15.table b/definitions/grib2/tables/10/4.2.0.15.table
index 895892f86..66ccff19d 100644
--- a/definitions/grib2/tables/10/4.2.0.15.table
+++ b/definitions/grib2/tables/10/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.16.table b/definitions/grib2/tables/10/4.2.0.16.table
index 39215ab20..18dedb7c0 100644
--- a/definitions/grib2/tables/10/4.2.0.16.table
+++ b/definitions/grib2/tables/10/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.18.table b/definitions/grib2/tables/10/4.2.0.18.table
index 30060fd2d..165aa6008 100644
--- a/definitions/grib2/tables/10/4.2.0.18.table
+++ b/definitions/grib2/tables/10/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.19.table b/definitions/grib2/tables/10/4.2.0.19.table
index 2aa34464a..90003262e 100644
--- a/definitions/grib2/tables/10/4.2.0.19.table
+++ b/definitions/grib2/tables/10/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.190.table b/definitions/grib2/tables/10/4.2.0.190.table
index 39fb55746..3d9d5ff85 100644
--- a/definitions/grib2/tables/10/4.2.0.190.table
+++ b/definitions/grib2/tables/10/4.2.0.190.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.191.table b/definitions/grib2/tables/10/4.2.0.191.table
index 81230c0e0..4ff12e532 100644
--- a/definitions/grib2/tables/10/4.2.0.191.table
+++ b/definitions/grib2/tables/10/4.2.0.191.table
@@ -2,6 +2,6 @@
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/10/4.2.0.2.table b/definitions/grib2/tables/10/4.2.0.2.table
index a3b08a8f0..6fcd262b0 100644
--- a/definitions/grib2/tables/10/4.2.0.2.table
+++ b/definitions/grib2/tables/10/4.2.0.2.table
@@ -35,6 +35,6 @@
33 33 Wind fetch (m)
34 34 Normal wind component (m/s)
35 35 Tangential wind component (m/s)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.20.table b/definitions/grib2/tables/10/4.2.0.20.table
index cc2dbcc52..898a774eb 100644
--- a/definitions/grib2/tables/10/4.2.0.20.table
+++ b/definitions/grib2/tables/10/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (Sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.3.table b/definitions/grib2/tables/10/4.2.0.3.table
index f718c6ea9..08c1c7bc3 100644
--- a/definitions/grib2/tables/10/4.2.0.3.table
+++ b/definitions/grib2/tables/10/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.4.table b/definitions/grib2/tables/10/4.2.0.4.table
index fea4cafc3..336fdb421 100644
--- a/definitions/grib2/tables/10/4.2.0.4.table
+++ b/definitions/grib2/tables/10/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.5.table b/definitions/grib2/tables/10/4.2.0.5.table
index b0c93dd3a..86a199ace 100644
--- a/definitions/grib2/tables/10/4.2.0.5.table
+++ b/definitions/grib2/tables/10/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.6.table b/definitions/grib2/tables/10/4.2.0.6.table
index fd4b23014..fb935344e 100644
--- a/definitions/grib2/tables/10/4.2.0.6.table
+++ b/definitions/grib2/tables/10/4.2.0.6.table
@@ -35,6 +35,6 @@
33 33 Sunshine duration (s)
34 34 Surface long wave effective total cloudiness (Numeric)
35 35 Surface short wave effective total cloudiness (Numeric)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.0.7.table b/definitions/grib2/tables/10/4.2.0.7.table
index 7a7d2008b..6c1794c73 100644
--- a/definitions/grib2/tables/10/4.2.0.7.table
+++ b/definitions/grib2/tables/10/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.1.0.table b/definitions/grib2/tables/10/4.2.1.0.table
index bf1e3e93f..9c4d129da 100644
--- a/definitions/grib2/tables/10/4.2.1.0.table
+++ b/definitions/grib2/tables/10/4.2.1.0.table
@@ -6,6 +6,6 @@
4 4 Snow water equivalent per cent of normal (%)
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.1.1.table b/definitions/grib2/tables/10/4.2.1.1.table
index cb5117dc8..aa560e479 100644
--- a/definitions/grib2/tables/10/4.2.1.1.table
+++ b/definitions/grib2/tables/10/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.0.table b/definitions/grib2/tables/10/4.2.10.0.table
index a620c36ba..78d3bdef4 100644
--- a/definitions/grib2/tables/10/4.2.10.0.table
+++ b/definitions/grib2/tables/10/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (s-1)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.1.table b/definitions/grib2/tables/10/4.2.10.1.table
index ae52b0c26..de6b562b8 100644
--- a/definitions/grib2/tables/10/4.2.10.1.table
+++ b/definitions/grib2/tables/10/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.191.table b/definitions/grib2/tables/10/4.2.10.191.table
index 14085ac9a..6cafbd3d4 100644
--- a/definitions/grib2/tables/10/4.2.10.191.table
+++ b/definitions/grib2/tables/10/4.2.10.191.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.2.table b/definitions/grib2/tables/10/4.2.10.2.table
index a6d9dd0c8..258aeef18 100644
--- a/definitions/grib2/tables/10/4.2.10.2.table
+++ b/definitions/grib2/tables/10/4.2.10.2.table
@@ -9,6 +9,6 @@
7 7 Ice divergence (/s)
8 8 Ice temperature (K)
9 9 Ice internal pressure (Pa m)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.3.table b/definitions/grib2/tables/10/4.2.10.3.table
index 112af09d5..3b9a2df46 100644
--- a/definitions/grib2/tables/10/4.2.10.3.table
+++ b/definitions/grib2/tables/10/4.2.10.3.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.10.4.table b/definitions/grib2/tables/10/4.2.10.4.table
index d80a32780..91ffb2b29 100644
--- a/definitions/grib2/tables/10/4.2.10.4.table
+++ b/definitions/grib2/tables/10/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2 s-1)
6 6 Ocean vertical momentum diffusivity (m2 s-1)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (m-1)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.2.0.table b/definitions/grib2/tables/10/4.2.2.0.table
index 9a426a5c2..0632ff414 100644
--- a/definitions/grib2/tables/10/4.2.2.0.table
+++ b/definitions/grib2/tables/10/4.2.2.0.table
@@ -32,6 +32,6 @@
30 30 Deciduous forest cover (Proportion)
31 31 Normalized differential vegetation index (NDVI) (Numeric)
32 32 Root depth of vegetation (m)
-# 33-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.2.3.table b/definitions/grib2/tables/10/4.2.2.3.table
index e985e41aa..d7db59d5e 100644
--- a/definitions/grib2/tables/10/4.2.2.3.table
+++ b/definitions/grib2/tables/10/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.2.4.table b/definitions/grib2/tables/10/4.2.2.4.table
index a5f0a3c5c..0992f59db 100644
--- a/definitions/grib2/tables/10/4.2.2.4.table
+++ b/definitions/grib2/tables/10/4.2.2.4.table
@@ -4,5 +4,5 @@
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.3.0.table b/definitions/grib2/tables/10/4.2.3.0.table
index 254e56bc8..8c19d43b2 100644
--- a/definitions/grib2/tables/10/4.2.3.0.table
+++ b/definitions/grib2/tables/10/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.2.3.1.table b/definitions/grib2/tables/10/4.2.3.1.table
index 176ac35fb..af1896b14 100644
--- a/definitions/grib2/tables/10/4.2.3.1.table
+++ b/definitions/grib2/tables/10/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.201.table b/definitions/grib2/tables/10/4.201.table
index ebb698b38..e16d5d808 100644
--- a/definitions/grib2/tables/10/4.201.table
+++ b/definitions/grib2/tables/10/4.201.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.202.table b/definitions/grib2/tables/10/4.202.table
index 943c03f6f..aa93458f1 100644
--- a/definitions/grib2/tables/10/4.202.table
+++ b/definitions/grib2/tables/10/4.202.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.203.table b/definitions/grib2/tables/10/4.203.table
index 9736c1ab3..b8c37f87f 100644
--- a/definitions/grib2/tables/10/4.203.table
+++ b/definitions/grib2/tables/10/4.203.table
@@ -1,26 +1,26 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.204.table b/definitions/grib2/tables/10/4.204.table
index 51d1cecce..8d8bca9b2 100644
--- a/definitions/grib2/tables/10/4.204.table
+++ b/definitions/grib2/tables/10/4.204.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.205.table b/definitions/grib2/tables/10/4.205.table
index 8d425ab9d..3fadf7d80 100644
--- a/definitions/grib2/tables/10/4.205.table
+++ b/definitions/grib2/tables/10/4.205.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.206.table b/definitions/grib2/tables/10/4.206.table
index 0be7fd4f8..43b0ba137 100644
--- a/definitions/grib2/tables/10/4.206.table
+++ b/definitions/grib2/tables/10/4.206.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.207.table b/definitions/grib2/tables/10/4.207.table
index fde9eb477..815a5777e 100644
--- a/definitions/grib2/tables/10/4.207.table
+++ b/definitions/grib2/tables/10/4.207.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.208.table b/definitions/grib2/tables/10/4.208.table
index 196becaaf..23ea97317 100644
--- a/definitions/grib2/tables/10/4.208.table
+++ b/definitions/grib2/tables/10/4.208.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.209.table b/definitions/grib2/tables/10/4.209.table
index 351c0f431..53c6c5eba 100644
--- a/definitions/grib2/tables/10/4.209.table
+++ b/definitions/grib2/tables/10/4.209.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically-driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically-driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.210.table b/definitions/grib2/tables/10/4.210.table
index 1c00b8c6f..149b2ba06 100644
--- a/definitions/grib2/tables/10/4.210.table
+++ b/definitions/grib2/tables/10/4.210.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.211.table b/definitions/grib2/tables/10/4.211.table
index 66ef656f6..b5753f19f 100644
--- a/definitions/grib2/tables/10/4.211.table
+++ b/definitions/grib2/tables/10/4.211.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.212.table b/definitions/grib2/tables/10/4.212.table
index c59bd24e8..738c45d2c 100644
--- a/definitions/grib2/tables/10/4.212.table
+++ b/definitions/grib2/tables/10/4.212.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.213.table b/definitions/grib2/tables/10/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/10/4.213.table
+++ b/definitions/grib2/tables/10/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.215.table b/definitions/grib2/tables/10/4.215.table
index 460888217..5ed37c034 100644
--- a/definitions/grib2/tables/10/4.215.table
+++ b/definitions/grib2/tables/10/4.215.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.216.table b/definitions/grib2/tables/10/4.216.table
index 4d9a70f86..b51b358f4 100644
--- a/definitions/grib2/tables/10/4.216.table
+++ b/definitions/grib2/tables/10/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.217.table b/definitions/grib2/tables/10/4.217.table
index 51a263a99..6a014c9c3 100644
--- a/definitions/grib2/tables/10/4.217.table
+++ b/definitions/grib2/tables/10/4.217.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.218.table b/definitions/grib2/tables/10/4.218.table
index d4b2ab843..b6087448f 100644
--- a/definitions/grib2/tables/10/4.218.table
+++ b/definitions/grib2/tables/10/4.218.table
@@ -1,38 +1,38 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.219.table b/definitions/grib2/tables/10/4.219.table
index f10ce468e..a02452fc4 100644
--- a/definitions/grib2/tables/10/4.219.table
+++ b/definitions/grib2/tables/10/4.219.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.220.table b/definitions/grib2/tables/10/4.220.table
index 9c957eb01..7a18fa1fd 100644
--- a/definitions/grib2/tables/10/4.220.table
+++ b/definitions/grib2/tables/10/4.220.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.221.table b/definitions/grib2/tables/10/4.221.table
index 5466929c7..eb0b64502 100644
--- a/definitions/grib2/tables/10/4.221.table
+++ b/definitions/grib2/tables/10/4.221.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.222.table b/definitions/grib2/tables/10/4.222.table
index c54194e29..f554a7f3d 100644
--- a/definitions/grib2/tables/10/4.222.table
+++ b/definitions/grib2/tables/10/4.222.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.223.table b/definitions/grib2/tables/10/4.223.table
index b6a9be136..706abab78 100644
--- a/definitions/grib2/tables/10/4.223.table
+++ b/definitions/grib2/tables/10/4.223.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing value
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing value
diff --git a/definitions/grib2/tables/10/4.224.table b/definitions/grib2/tables/10/4.224.table
index af846f841..cf67496b8 100644
--- a/definitions/grib2/tables/10/4.224.table
+++ b/definitions/grib2/tables/10/4.224.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.227.table b/definitions/grib2/tables/10/4.227.table
index 6a98d49d0..7676664e4 100644
--- a/definitions/grib2/tables/10/4.227.table
+++ b/definitions/grib2/tables/10/4.227.table
@@ -4,6 +4,6 @@
2 2 Convective
3 3 Stratiform
4 4 Freezing
-# 5-191 Reserved
+# 5-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/10/4.3.table b/definitions/grib2/tables/10/4.3.table
index 68e2cc83f..8a4e919c9 100644
--- a/definitions/grib2/tables/10/4.3.table
+++ b/definitions/grib2/tables/10/4.3.table
@@ -1,16 +1,16 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.4.table b/definitions/grib2/tables/10/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/10/4.4.table
+++ b/definitions/grib2/tables/10/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.5.table b/definitions/grib2/tables/10/4.5.table
index 1ada3eb23..c3b8aec5d 100644
--- a/definitions/grib2/tables/10/4.5.table
+++ b/definitions/grib2/tables/10/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid level
@@ -36,7 +36,7 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -44,6 +44,6 @@
164 164 Bottom of thermally active sediment layer
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
-# 167-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 167-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.6.table b/definitions/grib2/tables/10/4.6.table
index 54f2993c3..eaa5c4362 100644
--- a/definitions/grib2/tables/10/4.6.table
+++ b/definitions/grib2/tables/10/4.6.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.7.table b/definitions/grib2/tables/10/4.7.table
index 23e0d457e..e6d887bdb 100644
--- a/definitions/grib2/tables/10/4.7.table
+++ b/definitions/grib2/tables/10/4.7.table
@@ -1,14 +1,14 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.8.table b/definitions/grib2/tables/10/4.8.table
index 37a6cf767..d06153079 100644
--- a/definitions/grib2/tables/10/4.8.table
+++ b/definitions/grib2/tables/10/4.8.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.9.table b/definitions/grib2/tables/10/4.9.table
index 19e64a3d2..5243e58dd 100644
--- a/definitions/grib2/tables/10/4.9.table
+++ b/definitions/grib2/tables/10/4.9.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/4.91.table b/definitions/grib2/tables/10/4.91.table
index 97b1c70ad..ae31ed61c 100644
--- a/definitions/grib2/tables/10/4.91.table
+++ b/definitions/grib2/tables/10/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/10/5.1.table b/definitions/grib2/tables/10/5.1.table
index 100d4106d..158a35850 100644
--- a/definitions/grib2/tables/10/5.1.table
+++ b/definitions/grib2/tables/10/5.1.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.2.table b/definitions/grib2/tables/10/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/10/5.2.table
+++ b/definitions/grib2/tables/10/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/10/5.3.table b/definitions/grib2/tables/10/5.3.table
index 705fa6524..6f228aeec 100644
--- a/definitions/grib2/tables/10/5.3.table
+++ b/definitions/grib2/tables/10/5.3.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.4.table b/definitions/grib2/tables/10/5.4.table
index 8133367a5..f844f557e 100644
--- a/definitions/grib2/tables/10/5.4.table
+++ b/definitions/grib2/tables/10/5.4.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.40.table b/definitions/grib2/tables/10/5.40.table
index 0d56ad0e0..2431eb547 100644
--- a/definitions/grib2/tables/10/5.40.table
+++ b/definitions/grib2/tables/10/5.40.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.5.table b/definitions/grib2/tables/10/5.5.table
index 5d625dbda..f2216e273 100644
--- a/definitions/grib2/tables/10/5.5.table
+++ b/definitions/grib2/tables/10/5.5.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.6.table b/definitions/grib2/tables/10/5.6.table
index 5838e994d..3b0892d37 100644
--- a/definitions/grib2/tables/10/5.6.table
+++ b/definitions/grib2/tables/10/5.6.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/10/5.7.table b/definitions/grib2/tables/10/5.7.table
index b93aa8130..f056d3059 100644
--- a/definitions/grib2/tables/10/5.7.table
+++ b/definitions/grib2/tables/10/5.7.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/10/6.0.table b/definitions/grib2/tables/10/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/10/6.0.table
+++ b/definitions/grib2/tables/10/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/11/0.0.table b/definitions/grib2/tables/11/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/11/0.0.table
+++ b/definitions/grib2/tables/11/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/1.1.table b/definitions/grib2/tables/11/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/11/1.1.table
+++ b/definitions/grib2/tables/11/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/11/1.2.table b/definitions/grib2/tables/11/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/11/1.2.table
+++ b/definitions/grib2/tables/11/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/1.3.table b/definitions/grib2/tables/11/1.3.table
index e8c38878d..34ace7fda 100644
--- a/definitions/grib2/tables/11/1.3.table
+++ b/definitions/grib2/tables/11/1.3.table
@@ -1,12 +1,12 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 Sub-seasonal to seasonal prediction project (S2S)
7 7 Sub-seasonal to seasonal prediction project test (S2S)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/1.4.table b/definitions/grib2/tables/11/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/11/1.4.table
+++ b/definitions/grib2/tables/11/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/11/3.0.table b/definitions/grib2/tables/11/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/11/3.0.table
+++ b/definitions/grib2/tables/11/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/11/3.10.table b/definitions/grib2/tables/11/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/11/3.10.table
+++ b/definitions/grib2/tables/11/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/11/3.11.table b/definitions/grib2/tables/11/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/11/3.11.table
+++ b/definitions/grib2/tables/11/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.15.table b/definitions/grib2/tables/11/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/11/3.15.table
+++ b/definitions/grib2/tables/11/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.2.table b/definitions/grib2/tables/11/3.2.table
index a2107f6e9..b9574a424 100644
--- a/definitions/grib2/tables/11/3.2.table
+++ b/definitions/grib2/tables/11/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.20.table b/definitions/grib2/tables/11/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/11/3.20.table
+++ b/definitions/grib2/tables/11/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.21.table b/definitions/grib2/tables/11/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/11/3.21.table
+++ b/definitions/grib2/tables/11/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.3.table b/definitions/grib2/tables/11/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/11/3.3.table
+++ b/definitions/grib2/tables/11/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/11/3.4.table b/definitions/grib2/tables/11/3.4.table
index 63c8adaaa..ea9cbe829 100644
--- a/definitions/grib2/tables/11/3.4.table
+++ b/definitions/grib2/tables/11/3.4.table
@@ -1,10 +1,10 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/11/3.5.table b/definitions/grib2/tables/11/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/11/3.5.table
+++ b/definitions/grib2/tables/11/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/11/3.7.table b/definitions/grib2/tables/11/3.7.table
index e2dc660dd..2d01b8d52 100644
--- a/definitions/grib2/tables/11/3.7.table
+++ b/definitions/grib2/tables/11/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 The complex numbers Fnm. See separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.8.table b/definitions/grib2/tables/11/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/11/3.8.table
+++ b/definitions/grib2/tables/11/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/3.9.table b/definitions/grib2/tables/11/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/11/3.9.table
+++ b/definitions/grib2/tables/11/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/11/4.0.table b/definitions/grib2/tables/11/4.0.table
index 1c1fe09ab..51b3ccfa7 100644
--- a/definitions/grib2/tables/11/4.0.table
+++ b/definitions/grib2/tables/11/4.0.table
@@ -1,59 +1,59 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
60 60 Individual ensemble re-forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
61 61 Individual ensemble re-forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 55-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 55-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/11/4.1.0.table b/definitions/grib2/tables/11/4.1.0.table
index 361108860..3413dbad5 100644
--- a/definitions/grib2/tables/11/4.1.0.table
+++ b/definitions/grib2/tables/11/4.1.0.table
@@ -1,27 +1,27 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.1.1.table b/definitions/grib2/tables/11/4.1.1.table
index 29f1dec79..dea5bc49e 100644
--- a/definitions/grib2/tables/11/4.1.1.table
+++ b/definitions/grib2/tables/11/4.1.1.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.1.10.table b/definitions/grib2/tables/11/4.1.10.table
index 9c8c92b12..e6ce6faf7 100644
--- a/definitions/grib2/tables/11/4.1.10.table
+++ b/definitions/grib2/tables/11/4.1.10.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.1.192.table b/definitions/grib2/tables/11/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/11/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/11/4.1.2.table b/definitions/grib2/tables/11/4.1.2.table
index b90201c63..805836998 100644
--- a/definitions/grib2/tables/11/4.1.2.table
+++ b/definitions/grib2/tables/11/4.1.2.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.1.3.table b/definitions/grib2/tables/11/4.1.3.table
index fe1d8ae5a..adcbfb051 100644
--- a/definitions/grib2/tables/11/4.1.3.table
+++ b/definitions/grib2/tables/11/4.1.3.table
@@ -1,8 +1,8 @@
# Code table 4.1 - Parameter category by product discipline. Product discipline 3 - Space products
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.10.table b/definitions/grib2/tables/11/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/11/4.10.table
+++ b/definitions/grib2/tables/11/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/11/4.11.table b/definitions/grib2/tables/11/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/11/4.11.table
+++ b/definitions/grib2/tables/11/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.12.table b/definitions/grib2/tables/11/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/11/4.12.table
+++ b/definitions/grib2/tables/11/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.13.table b/definitions/grib2/tables/11/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/11/4.13.table
+++ b/definitions/grib2/tables/11/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.14.table b/definitions/grib2/tables/11/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/11/4.14.table
+++ b/definitions/grib2/tables/11/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.15.table b/definitions/grib2/tables/11/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/11/4.15.table
+++ b/definitions/grib2/tables/11/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.0.table b/definitions/grib2/tables/11/4.2.0.0.table
index f7784cc33..e69e087c9 100644
--- a/definitions/grib2/tables/11/4.2.0.0.table
+++ b/definitions/grib2/tables/11/4.2.0.0.table
@@ -20,6 +20,6 @@
18 18 Snow temperature (top of snow) (K)
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
-# 21-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.1.table b/definitions/grib2/tables/11/4.2.0.1.table
index 827ba1dcf..256732de0 100644
--- a/definitions/grib2/tables/11/4.2.0.1.table
+++ b/definitions/grib2/tables/11/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.13.table b/definitions/grib2/tables/11/4.2.0.13.table
index b9979f0d3..90ab7d1b9 100644
--- a/definitions/grib2/tables/11/4.2.0.13.table
+++ b/definitions/grib2/tables/11/4.2.0.13.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.14.table b/definitions/grib2/tables/11/4.2.0.14.table
index 4a2a4e128..fca42ccc7 100644
--- a/definitions/grib2/tables/11/4.2.0.14.table
+++ b/definitions/grib2/tables/11/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.15.table b/definitions/grib2/tables/11/4.2.0.15.table
index 9a178ceb7..5a599a98e 100644
--- a/definitions/grib2/tables/11/4.2.0.15.table
+++ b/definitions/grib2/tables/11/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.16.table b/definitions/grib2/tables/11/4.2.0.16.table
index 39215ab20..18dedb7c0 100644
--- a/definitions/grib2/tables/11/4.2.0.16.table
+++ b/definitions/grib2/tables/11/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.18.table b/definitions/grib2/tables/11/4.2.0.18.table
index 82fd13da1..fe06e9ea6 100644
--- a/definitions/grib2/tables/11/4.2.0.18.table
+++ b/definitions/grib2/tables/11/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.19.table b/definitions/grib2/tables/11/4.2.0.19.table
index 2aa34464a..90003262e 100644
--- a/definitions/grib2/tables/11/4.2.0.19.table
+++ b/definitions/grib2/tables/11/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.190.table b/definitions/grib2/tables/11/4.2.0.190.table
index 39fb55746..3d9d5ff85 100644
--- a/definitions/grib2/tables/11/4.2.0.190.table
+++ b/definitions/grib2/tables/11/4.2.0.190.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.191.table b/definitions/grib2/tables/11/4.2.0.191.table
index 81230c0e0..4ff12e532 100644
--- a/definitions/grib2/tables/11/4.2.0.191.table
+++ b/definitions/grib2/tables/11/4.2.0.191.table
@@ -2,6 +2,6 @@
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/11/4.2.0.2.table b/definitions/grib2/tables/11/4.2.0.2.table
index d587f84e9..f0570417b 100644
--- a/definitions/grib2/tables/11/4.2.0.2.table
+++ b/definitions/grib2/tables/11/4.2.0.2.table
@@ -35,6 +35,6 @@
33 33 Wind fetch (m)
34 34 Normal wind component (m s-1)
35 35 Tangential wind component (m s-1)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.20.table b/definitions/grib2/tables/11/4.2.0.20.table
index 22cea6061..ca90179fe 100644
--- a/definitions/grib2/tables/11/4.2.0.20.table
+++ b/definitions/grib2/tables/11/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.3.table b/definitions/grib2/tables/11/4.2.0.3.table
index f718c6ea9..08c1c7bc3 100644
--- a/definitions/grib2/tables/11/4.2.0.3.table
+++ b/definitions/grib2/tables/11/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.4.table b/definitions/grib2/tables/11/4.2.0.4.table
index fea4cafc3..336fdb421 100644
--- a/definitions/grib2/tables/11/4.2.0.4.table
+++ b/definitions/grib2/tables/11/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.5.table b/definitions/grib2/tables/11/4.2.0.5.table
index b0c93dd3a..86a199ace 100644
--- a/definitions/grib2/tables/11/4.2.0.5.table
+++ b/definitions/grib2/tables/11/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.6.table b/definitions/grib2/tables/11/4.2.0.6.table
index a06f4292f..2d088e5fc 100644
--- a/definitions/grib2/tables/11/4.2.0.6.table
+++ b/definitions/grib2/tables/11/4.2.0.6.table
@@ -35,6 +35,6 @@
33 33 Sunshine duration (s)
34 34 Surface long-wave effective total cloudiness (Numeric)
35 35 Surface short-wave effective total cloudiness (Numeric)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.0.7.table b/definitions/grib2/tables/11/4.2.0.7.table
index 7a7d2008b..6c1794c73 100644
--- a/definitions/grib2/tables/11/4.2.0.7.table
+++ b/definitions/grib2/tables/11/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.1.0.table b/definitions/grib2/tables/11/4.2.1.0.table
index bf1e3e93f..9c4d129da 100644
--- a/definitions/grib2/tables/11/4.2.1.0.table
+++ b/definitions/grib2/tables/11/4.2.1.0.table
@@ -6,6 +6,6 @@
4 4 Snow water equivalent per cent of normal (%)
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.1.1.table b/definitions/grib2/tables/11/4.2.1.1.table
index cb5117dc8..aa560e479 100644
--- a/definitions/grib2/tables/11/4.2.1.1.table
+++ b/definitions/grib2/tables/11/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.0.table b/definitions/grib2/tables/11/4.2.10.0.table
index b820364fa..43643d405 100644
--- a/definitions/grib2/tables/11/4.2.10.0.table
+++ b/definitions/grib2/tables/11/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (s-1)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.1.table b/definitions/grib2/tables/11/4.2.10.1.table
index ae52b0c26..de6b562b8 100644
--- a/definitions/grib2/tables/11/4.2.10.1.table
+++ b/definitions/grib2/tables/11/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.191.table b/definitions/grib2/tables/11/4.2.10.191.table
index 14085ac9a..6cafbd3d4 100644
--- a/definitions/grib2/tables/11/4.2.10.191.table
+++ b/definitions/grib2/tables/11/4.2.10.191.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.2.table b/definitions/grib2/tables/11/4.2.10.2.table
index a6d9dd0c8..258aeef18 100644
--- a/definitions/grib2/tables/11/4.2.10.2.table
+++ b/definitions/grib2/tables/11/4.2.10.2.table
@@ -9,6 +9,6 @@
7 7 Ice divergence (/s)
8 8 Ice temperature (K)
9 9 Ice internal pressure (Pa m)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.3.table b/definitions/grib2/tables/11/4.2.10.3.table
index 112af09d5..3b9a2df46 100644
--- a/definitions/grib2/tables/11/4.2.10.3.table
+++ b/definitions/grib2/tables/11/4.2.10.3.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.10.4.table b/definitions/grib2/tables/11/4.2.10.4.table
index d80a32780..91ffb2b29 100644
--- a/definitions/grib2/tables/11/4.2.10.4.table
+++ b/definitions/grib2/tables/11/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2 s-1)
6 6 Ocean vertical momentum diffusivity (m2 s-1)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (m-1)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.2.0.table b/definitions/grib2/tables/11/4.2.2.0.table
index 9a426a5c2..0632ff414 100644
--- a/definitions/grib2/tables/11/4.2.2.0.table
+++ b/definitions/grib2/tables/11/4.2.2.0.table
@@ -32,6 +32,6 @@
30 30 Deciduous forest cover (Proportion)
31 31 Normalized differential vegetation index (NDVI) (Numeric)
32 32 Root depth of vegetation (m)
-# 33-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.2.3.table b/definitions/grib2/tables/11/4.2.2.3.table
index e985e41aa..d7db59d5e 100644
--- a/definitions/grib2/tables/11/4.2.2.3.table
+++ b/definitions/grib2/tables/11/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.2.4.table b/definitions/grib2/tables/11/4.2.2.4.table
index a5f0a3c5c..0992f59db 100644
--- a/definitions/grib2/tables/11/4.2.2.4.table
+++ b/definitions/grib2/tables/11/4.2.2.4.table
@@ -4,5 +4,5 @@
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.3.0.table b/definitions/grib2/tables/11/4.2.3.0.table
index 254e56bc8..8c19d43b2 100644
--- a/definitions/grib2/tables/11/4.2.3.0.table
+++ b/definitions/grib2/tables/11/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.2.3.1.table b/definitions/grib2/tables/11/4.2.3.1.table
index 176ac35fb..af1896b14 100644
--- a/definitions/grib2/tables/11/4.2.3.1.table
+++ b/definitions/grib2/tables/11/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.201.table b/definitions/grib2/tables/11/4.201.table
index dc3926b3f..b9711f69c 100644
--- a/definitions/grib2/tables/11/4.201.table
+++ b/definitions/grib2/tables/11/4.201.table
@@ -1,10 +1,10 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.202.table b/definitions/grib2/tables/11/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/11/4.202.table
+++ b/definitions/grib2/tables/11/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.203.table b/definitions/grib2/tables/11/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/11/4.203.table
+++ b/definitions/grib2/tables/11/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.204.table b/definitions/grib2/tables/11/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/11/4.204.table
+++ b/definitions/grib2/tables/11/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.205.table b/definitions/grib2/tables/11/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/11/4.205.table
+++ b/definitions/grib2/tables/11/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.206.table b/definitions/grib2/tables/11/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/11/4.206.table
+++ b/definitions/grib2/tables/11/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.207.table b/definitions/grib2/tables/11/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/11/4.207.table
+++ b/definitions/grib2/tables/11/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.208.table b/definitions/grib2/tables/11/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/11/4.208.table
+++ b/definitions/grib2/tables/11/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.209.table b/definitions/grib2/tables/11/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/11/4.209.table
+++ b/definitions/grib2/tables/11/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.210.table b/definitions/grib2/tables/11/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/11/4.210.table
+++ b/definitions/grib2/tables/11/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.211.table b/definitions/grib2/tables/11/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/11/4.211.table
+++ b/definitions/grib2/tables/11/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.212.table b/definitions/grib2/tables/11/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/11/4.212.table
+++ b/definitions/grib2/tables/11/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.213.table b/definitions/grib2/tables/11/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/11/4.213.table
+++ b/definitions/grib2/tables/11/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.215.table b/definitions/grib2/tables/11/4.215.table
index 88fda8b8c..c264c6722 100644
--- a/definitions/grib2/tables/11/4.215.table
+++ b/definitions/grib2/tables/11/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely-sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.216.table b/definitions/grib2/tables/11/4.216.table
index 4d9a70f86..b51b358f4 100644
--- a/definitions/grib2/tables/11/4.216.table
+++ b/definitions/grib2/tables/11/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.217.table b/definitions/grib2/tables/11/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/11/4.217.table
+++ b/definitions/grib2/tables/11/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.218.table b/definitions/grib2/tables/11/4.218.table
index 6940a0e41..acf069c32 100644
--- a/definitions/grib2/tables/11/4.218.table
+++ b/definitions/grib2/tables/11/4.218.table
@@ -1,38 +1,38 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.219.table b/definitions/grib2/tables/11/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/11/4.219.table
+++ b/definitions/grib2/tables/11/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.220.table b/definitions/grib2/tables/11/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/11/4.220.table
+++ b/definitions/grib2/tables/11/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.221.table b/definitions/grib2/tables/11/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/11/4.221.table
+++ b/definitions/grib2/tables/11/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.222.table b/definitions/grib2/tables/11/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/11/4.222.table
+++ b/definitions/grib2/tables/11/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.223.table b/definitions/grib2/tables/11/4.223.table
index e54719f86..11f629ef5 100644
--- a/definitions/grib2/tables/11/4.223.table
+++ b/definitions/grib2/tables/11/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing value
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing value
diff --git a/definitions/grib2/tables/11/4.224.table b/definitions/grib2/tables/11/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/11/4.224.table
+++ b/definitions/grib2/tables/11/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.227.table b/definitions/grib2/tables/11/4.227.table
index 6a98d49d0..7676664e4 100644
--- a/definitions/grib2/tables/11/4.227.table
+++ b/definitions/grib2/tables/11/4.227.table
@@ -4,6 +4,6 @@
2 2 Convective
3 3 Stratiform
4 4 Freezing
-# 5-191 Reserved
+# 5-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/11/4.234.table b/definitions/grib2/tables/11/4.234.table
index 78d8fff12..9628e618e 100644
--- a/definitions/grib2/tables/11/4.234.table
+++ b/definitions/grib2/tables/11/4.234.table
@@ -6,14 +6,14 @@
5 5 Deciduous broadleaf trees
6 6 Evergreen broadleaf trees
7 7 Tall grass
-8 8 Desert
-9 9 Tundra
+8 8 Desert
+9 9 Tundra
10 10 Irrigated crops
-11 11 Semidesert
+11 11 Semidesert
12 12 Ice caps and glaciers
13 13 Bogs and marshes
14 14 Inland water
-15 15 Ocean
+15 15 Ocean
16 16 Evergreen shrubs
17 17 Deciduous shrubs
18 18 Mixed forest
diff --git a/definitions/grib2/tables/11/4.3.table b/definitions/grib2/tables/11/4.3.table
index 8f7d20be3..1681cfc93 100644
--- a/definitions/grib2/tables/11/4.3.table
+++ b/definitions/grib2/tables/11/4.3.table
@@ -1,16 +1,16 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.4.table b/definitions/grib2/tables/11/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/11/4.4.table
+++ b/definitions/grib2/tables/11/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.5.table b/definitions/grib2/tables/11/4.5.table
index 1ada3eb23..c3b8aec5d 100644
--- a/definitions/grib2/tables/11/4.5.table
+++ b/definitions/grib2/tables/11/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid level
@@ -36,7 +36,7 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -44,6 +44,6 @@
164 164 Bottom of thermally active sediment layer
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
-# 167-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 167-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.6.table b/definitions/grib2/tables/11/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/11/4.6.table
+++ b/definitions/grib2/tables/11/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.7.table b/definitions/grib2/tables/11/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/11/4.7.table
+++ b/definitions/grib2/tables/11/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.8.table b/definitions/grib2/tables/11/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/11/4.8.table
+++ b/definitions/grib2/tables/11/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.9.table b/definitions/grib2/tables/11/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/11/4.9.table
+++ b/definitions/grib2/tables/11/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/4.91.table b/definitions/grib2/tables/11/4.91.table
index 97b1c70ad..ae31ed61c 100644
--- a/definitions/grib2/tables/11/4.91.table
+++ b/definitions/grib2/tables/11/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/11/5.1.table b/definitions/grib2/tables/11/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/11/5.1.table
+++ b/definitions/grib2/tables/11/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.2.table b/definitions/grib2/tables/11/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/11/5.2.table
+++ b/definitions/grib2/tables/11/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/11/5.3.table b/definitions/grib2/tables/11/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/11/5.3.table
+++ b/definitions/grib2/tables/11/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.4.table b/definitions/grib2/tables/11/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/11/5.4.table
+++ b/definitions/grib2/tables/11/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.40.table b/definitions/grib2/tables/11/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/11/5.40.table
+++ b/definitions/grib2/tables/11/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.5.table b/definitions/grib2/tables/11/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/11/5.5.table
+++ b/definitions/grib2/tables/11/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.6.table b/definitions/grib2/tables/11/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/11/5.6.table
+++ b/definitions/grib2/tables/11/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/11/5.7.table b/definitions/grib2/tables/11/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/11/5.7.table
+++ b/definitions/grib2/tables/11/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/11/6.0.table b/definitions/grib2/tables/11/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/11/6.0.table
+++ b/definitions/grib2/tables/11/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/12/0.0.table b/definitions/grib2/tables/12/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/12/0.0.table
+++ b/definitions/grib2/tables/12/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/1.0.table b/definitions/grib2/tables/12/1.0.table
index 84ec19886..b21d01815 100644
--- a/definitions/grib2/tables/12/1.0.table
+++ b/definitions/grib2/tables/12/1.0.table
@@ -1,17 +1,17 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
10 10 Version implemented on 7 November 2012
11 11 Version implemented on 8 May 2013
12 12 Version implemented on 14 November 2013
13 13 Pre-operational to be implemented by next amendment
-# 14-254 Future versions
-255 255 Missing
+# 14-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/12/1.1.table b/definitions/grib2/tables/12/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/12/1.1.table
+++ b/definitions/grib2/tables/12/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/12/1.2.table b/definitions/grib2/tables/12/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/12/1.2.table
+++ b/definitions/grib2/tables/12/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/1.3.table b/definitions/grib2/tables/12/1.3.table
index e8c38878d..34ace7fda 100644
--- a/definitions/grib2/tables/12/1.3.table
+++ b/definitions/grib2/tables/12/1.3.table
@@ -1,12 +1,12 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 Sub-seasonal to seasonal prediction project (S2S)
7 7 Sub-seasonal to seasonal prediction project test (S2S)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/1.4.table b/definitions/grib2/tables/12/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/12/1.4.table
+++ b/definitions/grib2/tables/12/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/12/1.5.table b/definitions/grib2/tables/12/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/12/1.5.table
+++ b/definitions/grib2/tables/12/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/12/1.6.table b/definitions/grib2/tables/12/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/12/1.6.table
+++ b/definitions/grib2/tables/12/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.0.table b/definitions/grib2/tables/12/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/12/3.0.table
+++ b/definitions/grib2/tables/12/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/12/3.10.table b/definitions/grib2/tables/12/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/12/3.10.table
+++ b/definitions/grib2/tables/12/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/12/3.11.table b/definitions/grib2/tables/12/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/12/3.11.table
+++ b/definitions/grib2/tables/12/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.15.table b/definitions/grib2/tables/12/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/12/3.15.table
+++ b/definitions/grib2/tables/12/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.2.table b/definitions/grib2/tables/12/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/12/3.2.table
+++ b/definitions/grib2/tables/12/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.20.table b/definitions/grib2/tables/12/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/12/3.20.table
+++ b/definitions/grib2/tables/12/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.21.table b/definitions/grib2/tables/12/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/12/3.21.table
+++ b/definitions/grib2/tables/12/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.3.table b/definitions/grib2/tables/12/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/12/3.3.table
+++ b/definitions/grib2/tables/12/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/12/3.4.table b/definitions/grib2/tables/12/3.4.table
index 63c8adaaa..ea9cbe829 100644
--- a/definitions/grib2/tables/12/3.4.table
+++ b/definitions/grib2/tables/12/3.4.table
@@ -1,10 +1,10 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/12/3.5.table b/definitions/grib2/tables/12/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/12/3.5.table
+++ b/definitions/grib2/tables/12/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/12/3.7.table b/definitions/grib2/tables/12/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/12/3.7.table
+++ b/definitions/grib2/tables/12/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.8.table b/definitions/grib2/tables/12/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/12/3.8.table
+++ b/definitions/grib2/tables/12/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/3.9.table b/definitions/grib2/tables/12/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/12/3.9.table
+++ b/definitions/grib2/tables/12/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/12/4.0.table b/definitions/grib2/tables/12/4.0.table
index b77e3f323..8608d20f9 100644
--- a/definitions/grib2/tables/12/4.0.table
+++ b/definitions/grib2/tables/12/4.0.table
@@ -1,61 +1,61 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
60 60 Individual ensemble re-forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
61 61 Individual ensemble re-forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 55-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 55-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/12/4.1.0.table b/definitions/grib2/tables/12/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/12/4.1.0.table
+++ b/definitions/grib2/tables/12/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.1.1.table b/definitions/grib2/tables/12/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/12/4.1.1.table
+++ b/definitions/grib2/tables/12/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.1.10.table b/definitions/grib2/tables/12/4.1.10.table
index b97dcd355..e9663f391 100644
--- a/definitions/grib2/tables/12/4.1.10.table
+++ b/definitions/grib2/tables/12/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.1.192.table b/definitions/grib2/tables/12/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/12/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/12/4.1.2.table b/definitions/grib2/tables/12/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/12/4.1.2.table
+++ b/definitions/grib2/tables/12/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.1.3.table b/definitions/grib2/tables/12/4.1.3.table
index 5096a166e..c1a1e267a 100644
--- a/definitions/grib2/tables/12/4.1.3.table
+++ b/definitions/grib2/tables/12/4.1.3.table
@@ -1,6 +1,6 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.10.table b/definitions/grib2/tables/12/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/12/4.10.table
+++ b/definitions/grib2/tables/12/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/12/4.11.table b/definitions/grib2/tables/12/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/12/4.11.table
+++ b/definitions/grib2/tables/12/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.12.table b/definitions/grib2/tables/12/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/12/4.12.table
+++ b/definitions/grib2/tables/12/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.13.table b/definitions/grib2/tables/12/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/12/4.13.table
+++ b/definitions/grib2/tables/12/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.14.table b/definitions/grib2/tables/12/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/12/4.14.table
+++ b/definitions/grib2/tables/12/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.15.table b/definitions/grib2/tables/12/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/12/4.15.table
+++ b/definitions/grib2/tables/12/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.0.table b/definitions/grib2/tables/12/4.2.0.0.table
index ce91fe429..f5841e889 100644
--- a/definitions/grib2/tables/12/4.2.0.0.table
+++ b/definitions/grib2/tables/12/4.2.0.0.table
@@ -20,6 +20,6 @@
18 18 Snow temperature (top of snow) (K)
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
-# 21-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.1.table b/definitions/grib2/tables/12/4.2.0.1.table
index d1d1704df..fb7c3d776 100644
--- a/definitions/grib2/tables/12/4.2.0.1.table
+++ b/definitions/grib2/tables/12/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.13.table b/definitions/grib2/tables/12/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/12/4.2.0.13.table
+++ b/definitions/grib2/tables/12/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.14.table b/definitions/grib2/tables/12/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/12/4.2.0.14.table
+++ b/definitions/grib2/tables/12/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.15.table b/definitions/grib2/tables/12/4.2.0.15.table
index d74fa7234..bb0b9ab46 100644
--- a/definitions/grib2/tables/12/4.2.0.15.table
+++ b/definitions/grib2/tables/12/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.16.table b/definitions/grib2/tables/12/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/12/4.2.0.16.table
+++ b/definitions/grib2/tables/12/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.18.table b/definitions/grib2/tables/12/4.2.0.18.table
index 18c41aa48..7e0a736eb 100644
--- a/definitions/grib2/tables/12/4.2.0.18.table
+++ b/definitions/grib2/tables/12/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.19.table b/definitions/grib2/tables/12/4.2.0.19.table
index 75101bd37..d2beef083 100644
--- a/definitions/grib2/tables/12/4.2.0.19.table
+++ b/definitions/grib2/tables/12/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.190.table b/definitions/grib2/tables/12/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/12/4.2.0.190.table
+++ b/definitions/grib2/tables/12/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.191.table b/definitions/grib2/tables/12/4.2.0.191.table
index 1f949f149..2e82e01da 100644
--- a/definitions/grib2/tables/12/4.2.0.191.table
+++ b/definitions/grib2/tables/12/4.2.0.191.table
@@ -2,6 +2,6 @@
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.2.table b/definitions/grib2/tables/12/4.2.0.2.table
index 84882e8b8..ad1d84f52 100644
--- a/definitions/grib2/tables/12/4.2.0.2.table
+++ b/definitions/grib2/tables/12/4.2.0.2.table
@@ -35,6 +35,6 @@
33 33 Wind fetch (m)
34 34 Normal wind component (m s-1)
35 35 Tangential wind component (m s-1)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.20.table b/definitions/grib2/tables/12/4.2.0.20.table
index ac97b0b39..a0eb7724a 100644
--- a/definitions/grib2/tables/12/4.2.0.20.table
+++ b/definitions/grib2/tables/12/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.3.table b/definitions/grib2/tables/12/4.2.0.3.table
index 9a88e0027..e1a68bfc5 100644
--- a/definitions/grib2/tables/12/4.2.0.3.table
+++ b/definitions/grib2/tables/12/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.4.table b/definitions/grib2/tables/12/4.2.0.4.table
index dbfcbddb7..03b5cea38 100644
--- a/definitions/grib2/tables/12/4.2.0.4.table
+++ b/definitions/grib2/tables/12/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.5.table b/definitions/grib2/tables/12/4.2.0.5.table
index f1c04650d..1bdd6ebee 100644
--- a/definitions/grib2/tables/12/4.2.0.5.table
+++ b/definitions/grib2/tables/12/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.6.table b/definitions/grib2/tables/12/4.2.0.6.table
index 9ee97b73f..89da06eec 100644
--- a/definitions/grib2/tables/12/4.2.0.6.table
+++ b/definitions/grib2/tables/12/4.2.0.6.table
@@ -35,6 +35,6 @@
33 33 Sunshine duration (s)
34 34 Surface long-wave effective total cloudiness (Numeric)
35 35 Surface short-wave effective total cloudiness (Numeric)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.0.7.table b/definitions/grib2/tables/12/4.2.0.7.table
index db47d0113..8a2b85fb9 100644
--- a/definitions/grib2/tables/12/4.2.0.7.table
+++ b/definitions/grib2/tables/12/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.1.0.table b/definitions/grib2/tables/12/4.2.1.0.table
index e93f0a332..b6c648f00 100644
--- a/definitions/grib2/tables/12/4.2.1.0.table
+++ b/definitions/grib2/tables/12/4.2.1.0.table
@@ -6,6 +6,6 @@
4 4 Snow water equivalent per cent of normal (%)
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.1.1.table b/definitions/grib2/tables/12/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/12/4.2.1.1.table
+++ b/definitions/grib2/tables/12/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.0.table b/definitions/grib2/tables/12/4.2.10.0.table
index 761b6395c..76b3da22c 100644
--- a/definitions/grib2/tables/12/4.2.10.0.table
+++ b/definitions/grib2/tables/12/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (s-1)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.1.table b/definitions/grib2/tables/12/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/12/4.2.10.1.table
+++ b/definitions/grib2/tables/12/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.191.table b/definitions/grib2/tables/12/4.2.10.191.table
index 18e56f930..6b9eee36e 100644
--- a/definitions/grib2/tables/12/4.2.10.191.table
+++ b/definitions/grib2/tables/12/4.2.10.191.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.2.table b/definitions/grib2/tables/12/4.2.10.2.table
index 6f0664420..24458b91f 100644
--- a/definitions/grib2/tables/12/4.2.10.2.table
+++ b/definitions/grib2/tables/12/4.2.10.2.table
@@ -9,6 +9,6 @@
7 7 Ice divergence (/s)
8 8 Ice temperature (K)
9 9 Ice internal pressure (Pa m)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.3.table b/definitions/grib2/tables/12/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/12/4.2.10.3.table
+++ b/definitions/grib2/tables/12/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.10.4.table b/definitions/grib2/tables/12/4.2.10.4.table
index 450320ca1..e20a49470 100644
--- a/definitions/grib2/tables/12/4.2.10.4.table
+++ b/definitions/grib2/tables/12/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2 s-1)
6 6 Ocean vertical momentum diffusivity (m2 s-1)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (m-1)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.2.0.table b/definitions/grib2/tables/12/4.2.2.0.table
index 95b696a37..98eae911a 100644
--- a/definitions/grib2/tables/12/4.2.2.0.table
+++ b/definitions/grib2/tables/12/4.2.2.0.table
@@ -32,6 +32,6 @@
30 30 Deciduous forest cover (Proportion)
31 31 Normalized differential vegetation index (NDVI) (Numeric)
32 32 Root depth of vegetation (m)
-# 33-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.2.3.table b/definitions/grib2/tables/12/4.2.2.3.table
index 2f6291077..3d3298c8a 100644
--- a/definitions/grib2/tables/12/4.2.2.3.table
+++ b/definitions/grib2/tables/12/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.2.4.table b/definitions/grib2/tables/12/4.2.2.4.table
index cf91e8b7a..30865c1b8 100644
--- a/definitions/grib2/tables/12/4.2.2.4.table
+++ b/definitions/grib2/tables/12/4.2.2.4.table
@@ -3,6 +3,6 @@
1 1 Fire outlook due to dry thunderstorm (Code table 4.224)
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.3.0.table b/definitions/grib2/tables/12/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/12/4.2.3.0.table
+++ b/definitions/grib2/tables/12/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.2.3.1.table b/definitions/grib2/tables/12/4.2.3.1.table
index 0c0fc8d37..bc16d8855 100644
--- a/definitions/grib2/tables/12/4.2.3.1.table
+++ b/definitions/grib2/tables/12/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.201.table b/definitions/grib2/tables/12/4.201.table
index 2510f2ef7..fa173c4e0 100644
--- a/definitions/grib2/tables/12/4.201.table
+++ b/definitions/grib2/tables/12/4.201.table
@@ -10,6 +10,6 @@
8 8 Ice pellets
9 9 Graupel
10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.202.table b/definitions/grib2/tables/12/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/12/4.202.table
+++ b/definitions/grib2/tables/12/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.203.table b/definitions/grib2/tables/12/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/12/4.203.table
+++ b/definitions/grib2/tables/12/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.204.table b/definitions/grib2/tables/12/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/12/4.204.table
+++ b/definitions/grib2/tables/12/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.205.table b/definitions/grib2/tables/12/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/12/4.205.table
+++ b/definitions/grib2/tables/12/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.206.table b/definitions/grib2/tables/12/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/12/4.206.table
+++ b/definitions/grib2/tables/12/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.207.table b/definitions/grib2/tables/12/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/12/4.207.table
+++ b/definitions/grib2/tables/12/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.208.table b/definitions/grib2/tables/12/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/12/4.208.table
+++ b/definitions/grib2/tables/12/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.209.table b/definitions/grib2/tables/12/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/12/4.209.table
+++ b/definitions/grib2/tables/12/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.210.table b/definitions/grib2/tables/12/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/12/4.210.table
+++ b/definitions/grib2/tables/12/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.211.table b/definitions/grib2/tables/12/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/12/4.211.table
+++ b/definitions/grib2/tables/12/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.212.table b/definitions/grib2/tables/12/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/12/4.212.table
+++ b/definitions/grib2/tables/12/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.213.table b/definitions/grib2/tables/12/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/12/4.213.table
+++ b/definitions/grib2/tables/12/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.215.table b/definitions/grib2/tables/12/4.215.table
index 88fda8b8c..c264c6722 100644
--- a/definitions/grib2/tables/12/4.215.table
+++ b/definitions/grib2/tables/12/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely-sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.216.table b/definitions/grib2/tables/12/4.216.table
index 4d9a70f86..b51b358f4 100644
--- a/definitions/grib2/tables/12/4.216.table
+++ b/definitions/grib2/tables/12/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.217.table b/definitions/grib2/tables/12/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/12/4.217.table
+++ b/definitions/grib2/tables/12/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.218.table b/definitions/grib2/tables/12/4.218.table
index 6940a0e41..acf069c32 100644
--- a/definitions/grib2/tables/12/4.218.table
+++ b/definitions/grib2/tables/12/4.218.table
@@ -1,38 +1,38 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.219.table b/definitions/grib2/tables/12/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/12/4.219.table
+++ b/definitions/grib2/tables/12/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.220.table b/definitions/grib2/tables/12/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/12/4.220.table
+++ b/definitions/grib2/tables/12/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.221.table b/definitions/grib2/tables/12/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/12/4.221.table
+++ b/definitions/grib2/tables/12/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.222.table b/definitions/grib2/tables/12/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/12/4.222.table
+++ b/definitions/grib2/tables/12/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.223.table b/definitions/grib2/tables/12/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/12/4.223.table
+++ b/definitions/grib2/tables/12/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/12/4.224.table b/definitions/grib2/tables/12/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/12/4.224.table
+++ b/definitions/grib2/tables/12/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.227.table b/definitions/grib2/tables/12/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/12/4.227.table
+++ b/definitions/grib2/tables/12/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/12/4.234.table b/definitions/grib2/tables/12/4.234.table
index 9844a91d2..d8b3715b3 100644
--- a/definitions/grib2/tables/12/4.234.table
+++ b/definitions/grib2/tables/12/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/12/4.236.table b/definitions/grib2/tables/12/4.236.table
index 08c7f8d56..b667b65fc 100644
--- a/definitions/grib2/tables/12/4.236.table
+++ b/definitions/grib2/tables/12/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/12/4.3.table b/definitions/grib2/tables/12/4.3.table
index 8f7d20be3..1681cfc93 100644
--- a/definitions/grib2/tables/12/4.3.table
+++ b/definitions/grib2/tables/12/4.3.table
@@ -1,16 +1,16 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.4.table b/definitions/grib2/tables/12/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/12/4.4.table
+++ b/definitions/grib2/tables/12/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.5.table b/definitions/grib2/tables/12/4.5.table
index 1ada3eb23..c3b8aec5d 100644
--- a/definitions/grib2/tables/12/4.5.table
+++ b/definitions/grib2/tables/12/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid level
@@ -36,7 +36,7 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -44,6 +44,6 @@
164 164 Bottom of thermally active sediment layer
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
-# 167-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 167-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.6.table b/definitions/grib2/tables/12/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/12/4.6.table
+++ b/definitions/grib2/tables/12/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.7.table b/definitions/grib2/tables/12/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/12/4.7.table
+++ b/definitions/grib2/tables/12/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.8.table b/definitions/grib2/tables/12/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/12/4.8.table
+++ b/definitions/grib2/tables/12/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.9.table b/definitions/grib2/tables/12/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/12/4.9.table
+++ b/definitions/grib2/tables/12/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/4.91.table b/definitions/grib2/tables/12/4.91.table
index 97b1c70ad..ae31ed61c 100644
--- a/definitions/grib2/tables/12/4.91.table
+++ b/definitions/grib2/tables/12/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/12/5.1.table b/definitions/grib2/tables/12/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/12/5.1.table
+++ b/definitions/grib2/tables/12/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.2.table b/definitions/grib2/tables/12/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/12/5.2.table
+++ b/definitions/grib2/tables/12/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/12/5.3.table b/definitions/grib2/tables/12/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/12/5.3.table
+++ b/definitions/grib2/tables/12/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.4.table b/definitions/grib2/tables/12/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/12/5.4.table
+++ b/definitions/grib2/tables/12/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.40.table b/definitions/grib2/tables/12/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/12/5.40.table
+++ b/definitions/grib2/tables/12/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.5.table b/definitions/grib2/tables/12/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/12/5.5.table
+++ b/definitions/grib2/tables/12/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.6.table b/definitions/grib2/tables/12/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/12/5.6.table
+++ b/definitions/grib2/tables/12/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/12/5.7.table b/definitions/grib2/tables/12/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/12/5.7.table
+++ b/definitions/grib2/tables/12/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/12/6.0.table b/definitions/grib2/tables/12/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/12/6.0.table
+++ b/definitions/grib2/tables/12/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/13/0.0.table b/definitions/grib2/tables/13/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/13/0.0.table
+++ b/definitions/grib2/tables/13/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/1.0.table b/definitions/grib2/tables/13/1.0.table
index dfca4d4c1..b90cc628e 100644
--- a/definitions/grib2/tables/13/1.0.table
+++ b/definitions/grib2/tables/13/1.0.table
@@ -1,18 +1,18 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
10 10 Version implemented on 7 November 2012
11 11 Version implemented on 8 May 2013
12 12 Version implemented on 14 November 2013
13 13 Version implemented on 7 May 2014
14 14 Pre-operational to be implemented by next amendment
# 15-254 Future versions
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/13/1.1.table b/definitions/grib2/tables/13/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/13/1.1.table
+++ b/definitions/grib2/tables/13/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/13/1.2.table b/definitions/grib2/tables/13/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/13/1.2.table
+++ b/definitions/grib2/tables/13/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/1.3.table b/definitions/grib2/tables/13/1.3.table
index 9b37611b0..c3b924d9d 100644
--- a/definitions/grib2/tables/13/1.3.table
+++ b/definitions/grib2/tables/13/1.3.table
@@ -1,12 +1,12 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 S2S operational products
7 7 S2S test products
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/1.4.table b/definitions/grib2/tables/13/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/13/1.4.table
+++ b/definitions/grib2/tables/13/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/13/1.5.table b/definitions/grib2/tables/13/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/13/1.5.table
+++ b/definitions/grib2/tables/13/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/13/1.6.table b/definitions/grib2/tables/13/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/13/1.6.table
+++ b/definitions/grib2/tables/13/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.0.table b/definitions/grib2/tables/13/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/13/3.0.table
+++ b/definitions/grib2/tables/13/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/13/3.10.table b/definitions/grib2/tables/13/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/13/3.10.table
+++ b/definitions/grib2/tables/13/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/13/3.11.table b/definitions/grib2/tables/13/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/13/3.11.table
+++ b/definitions/grib2/tables/13/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.15.table b/definitions/grib2/tables/13/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/13/3.15.table
+++ b/definitions/grib2/tables/13/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.2.table b/definitions/grib2/tables/13/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/13/3.2.table
+++ b/definitions/grib2/tables/13/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.20.table b/definitions/grib2/tables/13/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/13/3.20.table
+++ b/definitions/grib2/tables/13/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.21.table b/definitions/grib2/tables/13/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/13/3.21.table
+++ b/definitions/grib2/tables/13/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.3.table b/definitions/grib2/tables/13/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/13/3.3.table
+++ b/definitions/grib2/tables/13/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/13/3.4.table b/definitions/grib2/tables/13/3.4.table
index 63c8adaaa..ea9cbe829 100644
--- a/definitions/grib2/tables/13/3.4.table
+++ b/definitions/grib2/tables/13/3.4.table
@@ -1,10 +1,10 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/13/3.5.table b/definitions/grib2/tables/13/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/13/3.5.table
+++ b/definitions/grib2/tables/13/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/13/3.7.table b/definitions/grib2/tables/13/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/13/3.7.table
+++ b/definitions/grib2/tables/13/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.8.table b/definitions/grib2/tables/13/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/13/3.8.table
+++ b/definitions/grib2/tables/13/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/3.9.table b/definitions/grib2/tables/13/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/13/3.9.table
+++ b/definitions/grib2/tables/13/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/13/4.0.table b/definitions/grib2/tables/13/4.0.table
index 89cf92c44..7627a2a3d 100644
--- a/definitions/grib2/tables/13/4.0.table
+++ b/definitions/grib2/tables/13/4.0.table
@@ -1,62 +1,62 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-# 55-59 Reserved
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+# 55-59 Reserved
60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 62-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 62-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/13/4.1.0.table b/definitions/grib2/tables/13/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/13/4.1.0.table
+++ b/definitions/grib2/tables/13/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.1.1.table b/definitions/grib2/tables/13/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/13/4.1.1.table
+++ b/definitions/grib2/tables/13/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.1.10.table b/definitions/grib2/tables/13/4.1.10.table
index b97dcd355..e9663f391 100644
--- a/definitions/grib2/tables/13/4.1.10.table
+++ b/definitions/grib2/tables/13/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.1.192.table b/definitions/grib2/tables/13/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/13/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/13/4.1.2.table b/definitions/grib2/tables/13/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/13/4.1.2.table
+++ b/definitions/grib2/tables/13/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.1.3.table b/definitions/grib2/tables/13/4.1.3.table
index 5096a166e..c1a1e267a 100644
--- a/definitions/grib2/tables/13/4.1.3.table
+++ b/definitions/grib2/tables/13/4.1.3.table
@@ -1,6 +1,6 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.10.table b/definitions/grib2/tables/13/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/13/4.10.table
+++ b/definitions/grib2/tables/13/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/13/4.11.table b/definitions/grib2/tables/13/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/13/4.11.table
+++ b/definitions/grib2/tables/13/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.12.table b/definitions/grib2/tables/13/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/13/4.12.table
+++ b/definitions/grib2/tables/13/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.13.table b/definitions/grib2/tables/13/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/13/4.13.table
+++ b/definitions/grib2/tables/13/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.14.table b/definitions/grib2/tables/13/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/13/4.14.table
+++ b/definitions/grib2/tables/13/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.15.table b/definitions/grib2/tables/13/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/13/4.15.table
+++ b/definitions/grib2/tables/13/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.0.table b/definitions/grib2/tables/13/4.2.0.0.table
index 6de8a23c8..24d21959d 100644
--- a/definitions/grib2/tables/13/4.2.0.0.table
+++ b/definitions/grib2/tables/13/4.2.0.0.table
@@ -21,6 +21,6 @@
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
21 21 Apparent temperature (K)
-# 22-191 Reserved
+# 22-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.1.table b/definitions/grib2/tables/13/4.2.0.1.table
index d1d1704df..fb7c3d776 100644
--- a/definitions/grib2/tables/13/4.2.0.1.table
+++ b/definitions/grib2/tables/13/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.13.table b/definitions/grib2/tables/13/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/13/4.2.0.13.table
+++ b/definitions/grib2/tables/13/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.14.table b/definitions/grib2/tables/13/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/13/4.2.0.14.table
+++ b/definitions/grib2/tables/13/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.15.table b/definitions/grib2/tables/13/4.2.0.15.table
index d74fa7234..bb0b9ab46 100644
--- a/definitions/grib2/tables/13/4.2.0.15.table
+++ b/definitions/grib2/tables/13/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.16.table b/definitions/grib2/tables/13/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/13/4.2.0.16.table
+++ b/definitions/grib2/tables/13/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.18.table b/definitions/grib2/tables/13/4.2.0.18.table
index 18c41aa48..7e0a736eb 100644
--- a/definitions/grib2/tables/13/4.2.0.18.table
+++ b/definitions/grib2/tables/13/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.19.table b/definitions/grib2/tables/13/4.2.0.19.table
index 75101bd37..d2beef083 100644
--- a/definitions/grib2/tables/13/4.2.0.19.table
+++ b/definitions/grib2/tables/13/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.190.table b/definitions/grib2/tables/13/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/13/4.2.0.190.table
+++ b/definitions/grib2/tables/13/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.191.table b/definitions/grib2/tables/13/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/13/4.2.0.191.table
+++ b/definitions/grib2/tables/13/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.2.table b/definitions/grib2/tables/13/4.2.0.2.table
index c83b07300..7bd1509f5 100644
--- a/definitions/grib2/tables/13/4.2.0.2.table
+++ b/definitions/grib2/tables/13/4.2.0.2.table
@@ -38,6 +38,6 @@
36 36 Amplitude function for Rossby wave envelope for meridional wind (m/s)
37 37 Northward turbulent surface stress (N m-2 s)
38 38 Eastward turbulent surface stress (N m-2 s)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.20.table b/definitions/grib2/tables/13/4.2.0.20.table
index 9584f7c7f..df9ccc184 100644
--- a/definitions/grib2/tables/13/4.2.0.20.table
+++ b/definitions/grib2/tables/13/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.3.table b/definitions/grib2/tables/13/4.2.0.3.table
index 9a88e0027..e1a68bfc5 100644
--- a/definitions/grib2/tables/13/4.2.0.3.table
+++ b/definitions/grib2/tables/13/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.4.table b/definitions/grib2/tables/13/4.2.0.4.table
index dbfcbddb7..03b5cea38 100644
--- a/definitions/grib2/tables/13/4.2.0.4.table
+++ b/definitions/grib2/tables/13/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.5.table b/definitions/grib2/tables/13/4.2.0.5.table
index f1c04650d..1bdd6ebee 100644
--- a/definitions/grib2/tables/13/4.2.0.5.table
+++ b/definitions/grib2/tables/13/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.6.table b/definitions/grib2/tables/13/4.2.0.6.table
index 9ee97b73f..89da06eec 100644
--- a/definitions/grib2/tables/13/4.2.0.6.table
+++ b/definitions/grib2/tables/13/4.2.0.6.table
@@ -35,6 +35,6 @@
33 33 Sunshine duration (s)
34 34 Surface long-wave effective total cloudiness (Numeric)
35 35 Surface short-wave effective total cloudiness (Numeric)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.0.7.table b/definitions/grib2/tables/13/4.2.0.7.table
index db47d0113..8a2b85fb9 100644
--- a/definitions/grib2/tables/13/4.2.0.7.table
+++ b/definitions/grib2/tables/13/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.1.0.table b/definitions/grib2/tables/13/4.2.1.0.table
index cf56b08ee..f455c3365 100644
--- a/definitions/grib2/tables/13/4.2.1.0.table
+++ b/definitions/grib2/tables/13/4.2.1.0.table
@@ -7,6 +7,6 @@
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
7 7 Discharge from rivers or streams (m3/s)
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.1.1.table b/definitions/grib2/tables/13/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/13/4.2.1.1.table
+++ b/definitions/grib2/tables/13/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.0.table b/definitions/grib2/tables/13/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/13/4.2.10.0.table
+++ b/definitions/grib2/tables/13/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.1.table b/definitions/grib2/tables/13/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/13/4.2.10.1.table
+++ b/definitions/grib2/tables/13/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.191.table b/definitions/grib2/tables/13/4.2.10.191.table
index dc0e23d7b..1ebf85006 100644
--- a/definitions/grib2/tables/13/4.2.10.191.table
+++ b/definitions/grib2/tables/13/4.2.10.191.table
@@ -3,6 +3,6 @@
1 1 Meridional overturning stream function (m3/s)
2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.2.table b/definitions/grib2/tables/13/4.2.10.2.table
index 157a9af65..0caeacba7 100644
--- a/definitions/grib2/tables/13/4.2.10.2.table
+++ b/definitions/grib2/tables/13/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.3.table b/definitions/grib2/tables/13/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/13/4.2.10.3.table
+++ b/definitions/grib2/tables/13/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.10.4.table b/definitions/grib2/tables/13/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/13/4.2.10.4.table
+++ b/definitions/grib2/tables/13/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.2.0.table b/definitions/grib2/tables/13/4.2.2.0.table
index 93135b854..00342a32b 100644
--- a/definitions/grib2/tables/13/4.2.2.0.table
+++ b/definitions/grib2/tables/13/4.2.2.0.table
@@ -34,6 +34,6 @@
32 32 Root depth of vegetation (m)
33 33 Water runoff and drainage (kg m-2)
34 34 Surface water runoff (kg m-2)
-# 35-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 35-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.2.3.table b/definitions/grib2/tables/13/4.2.2.3.table
index 2f6291077..3d3298c8a 100644
--- a/definitions/grib2/tables/13/4.2.2.3.table
+++ b/definitions/grib2/tables/13/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.2.4.table b/definitions/grib2/tables/13/4.2.2.4.table
index d4ede2f70..c8b877df6 100644
--- a/definitions/grib2/tables/13/4.2.2.4.table
+++ b/definitions/grib2/tables/13/4.2.2.4.table
@@ -4,6 +4,6 @@
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
4 4 Fosberg index (Numeric)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.3.0.table b/definitions/grib2/tables/13/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/13/4.2.3.0.table
+++ b/definitions/grib2/tables/13/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.2.3.1.table b/definitions/grib2/tables/13/4.2.3.1.table
index 0c0fc8d37..bc16d8855 100644
--- a/definitions/grib2/tables/13/4.2.3.1.table
+++ b/definitions/grib2/tables/13/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.201.table b/definitions/grib2/tables/13/4.201.table
index 2510f2ef7..fa173c4e0 100644
--- a/definitions/grib2/tables/13/4.201.table
+++ b/definitions/grib2/tables/13/4.201.table
@@ -10,6 +10,6 @@
8 8 Ice pellets
9 9 Graupel
10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.202.table b/definitions/grib2/tables/13/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/13/4.202.table
+++ b/definitions/grib2/tables/13/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.203.table b/definitions/grib2/tables/13/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/13/4.203.table
+++ b/definitions/grib2/tables/13/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.204.table b/definitions/grib2/tables/13/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/13/4.204.table
+++ b/definitions/grib2/tables/13/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.205.table b/definitions/grib2/tables/13/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/13/4.205.table
+++ b/definitions/grib2/tables/13/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.206.table b/definitions/grib2/tables/13/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/13/4.206.table
+++ b/definitions/grib2/tables/13/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.207.table b/definitions/grib2/tables/13/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/13/4.207.table
+++ b/definitions/grib2/tables/13/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.208.table b/definitions/grib2/tables/13/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/13/4.208.table
+++ b/definitions/grib2/tables/13/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.209.table b/definitions/grib2/tables/13/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/13/4.209.table
+++ b/definitions/grib2/tables/13/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.210.table b/definitions/grib2/tables/13/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/13/4.210.table
+++ b/definitions/grib2/tables/13/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.211.table b/definitions/grib2/tables/13/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/13/4.211.table
+++ b/definitions/grib2/tables/13/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.212.table b/definitions/grib2/tables/13/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/13/4.212.table
+++ b/definitions/grib2/tables/13/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.213.table b/definitions/grib2/tables/13/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/13/4.213.table
+++ b/definitions/grib2/tables/13/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.215.table b/definitions/grib2/tables/13/4.215.table
index 88fda8b8c..c264c6722 100644
--- a/definitions/grib2/tables/13/4.215.table
+++ b/definitions/grib2/tables/13/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely-sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.216.table b/definitions/grib2/tables/13/4.216.table
index 4d9a70f86..b51b358f4 100644
--- a/definitions/grib2/tables/13/4.216.table
+++ b/definitions/grib2/tables/13/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.217.table b/definitions/grib2/tables/13/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/13/4.217.table
+++ b/definitions/grib2/tables/13/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.218.table b/definitions/grib2/tables/13/4.218.table
index 6940a0e41..acf069c32 100644
--- a/definitions/grib2/tables/13/4.218.table
+++ b/definitions/grib2/tables/13/4.218.table
@@ -1,38 +1,38 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.219.table b/definitions/grib2/tables/13/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/13/4.219.table
+++ b/definitions/grib2/tables/13/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.220.table b/definitions/grib2/tables/13/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/13/4.220.table
+++ b/definitions/grib2/tables/13/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.221.table b/definitions/grib2/tables/13/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/13/4.221.table
+++ b/definitions/grib2/tables/13/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.222.table b/definitions/grib2/tables/13/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/13/4.222.table
+++ b/definitions/grib2/tables/13/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.223.table b/definitions/grib2/tables/13/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/13/4.223.table
+++ b/definitions/grib2/tables/13/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/13/4.224.table b/definitions/grib2/tables/13/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/13/4.224.table
+++ b/definitions/grib2/tables/13/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.227.table b/definitions/grib2/tables/13/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/13/4.227.table
+++ b/definitions/grib2/tables/13/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/13/4.234.table b/definitions/grib2/tables/13/4.234.table
index 9844a91d2..d8b3715b3 100644
--- a/definitions/grib2/tables/13/4.234.table
+++ b/definitions/grib2/tables/13/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/13/4.236.table b/definitions/grib2/tables/13/4.236.table
index 08c7f8d56..b667b65fc 100644
--- a/definitions/grib2/tables/13/4.236.table
+++ b/definitions/grib2/tables/13/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/13/4.3.table b/definitions/grib2/tables/13/4.3.table
index 1a9d59dd1..2b775c807 100644
--- a/definitions/grib2/tables/13/4.3.table
+++ b/definitions/grib2/tables/13/4.3.table
@@ -1,18 +1,18 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
12 12 Post-processed analysis
13 13 Post-processed forecast
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.4.table b/definitions/grib2/tables/13/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/13/4.4.table
+++ b/definitions/grib2/tables/13/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.5.table b/definitions/grib2/tables/13/4.5.table
index ddab1d723..d61b61c9f 100644
--- a/definitions/grib2/tables/13/4.5.table
+++ b/definitions/grib2/tables/13/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid level
@@ -36,7 +36,7 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -45,6 +45,6 @@
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
167 167 Bottom of root zone
-# 168-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 168-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.6.table b/definitions/grib2/tables/13/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/13/4.6.table
+++ b/definitions/grib2/tables/13/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.7.table b/definitions/grib2/tables/13/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/13/4.7.table
+++ b/definitions/grib2/tables/13/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.8.table b/definitions/grib2/tables/13/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/13/4.8.table
+++ b/definitions/grib2/tables/13/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.9.table b/definitions/grib2/tables/13/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/13/4.9.table
+++ b/definitions/grib2/tables/13/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/4.91.table b/definitions/grib2/tables/13/4.91.table
index 97b1c70ad..ae31ed61c 100644
--- a/definitions/grib2/tables/13/4.91.table
+++ b/definitions/grib2/tables/13/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/13/5.1.table b/definitions/grib2/tables/13/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/13/5.1.table
+++ b/definitions/grib2/tables/13/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.2.table b/definitions/grib2/tables/13/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/13/5.2.table
+++ b/definitions/grib2/tables/13/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/13/5.3.table b/definitions/grib2/tables/13/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/13/5.3.table
+++ b/definitions/grib2/tables/13/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.4.table b/definitions/grib2/tables/13/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/13/5.4.table
+++ b/definitions/grib2/tables/13/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.40.table b/definitions/grib2/tables/13/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/13/5.40.table
+++ b/definitions/grib2/tables/13/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.5.table b/definitions/grib2/tables/13/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/13/5.5.table
+++ b/definitions/grib2/tables/13/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.6.table b/definitions/grib2/tables/13/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/13/5.6.table
+++ b/definitions/grib2/tables/13/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/13/5.7.table b/definitions/grib2/tables/13/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/13/5.7.table
+++ b/definitions/grib2/tables/13/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/13/6.0.table b/definitions/grib2/tables/13/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/13/6.0.table
+++ b/definitions/grib2/tables/13/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/14/0.0.table b/definitions/grib2/tables/14/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/14/0.0.table
+++ b/definitions/grib2/tables/14/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/1.0.table b/definitions/grib2/tables/14/1.0.table
index 4dafc79fb..a004eadb3 100644
--- a/definitions/grib2/tables/14/1.0.table
+++ b/definitions/grib2/tables/14/1.0.table
@@ -1,19 +1,19 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
-10 10 Version implemented on 7 November 2012
-11 11 Version implemented on 8 May 2013
-12 12 Version implemented on 14 November 2013
-13 13 Version implemented on 7 May 2014
-14 14 Version implemented on 5 November 2014
-15 15 Pre-operational to be implemented by next amendment
-# 16-254 Future versions
-255 255 Missing
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Pre-operational to be implemented by next amendment
+# 16-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/14/1.1.table b/definitions/grib2/tables/14/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/14/1.1.table
+++ b/definitions/grib2/tables/14/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/14/1.2.table b/definitions/grib2/tables/14/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/14/1.2.table
+++ b/definitions/grib2/tables/14/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/1.3.table b/definitions/grib2/tables/14/1.3.table
index ea01c001c..eb3a79f9b 100644
--- a/definitions/grib2/tables/14/1.3.table
+++ b/definitions/grib2/tables/14/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 S2S operational products
7 7 S2S test products
8 8 Uncertainties in ensembles of regional re-analysis project (UERRA)
9 9 Uncertainties in ensembles of regional re-analysis project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/1.4.table b/definitions/grib2/tables/14/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/14/1.4.table
+++ b/definitions/grib2/tables/14/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/14/1.5.table b/definitions/grib2/tables/14/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/14/1.5.table
+++ b/definitions/grib2/tables/14/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/14/1.6.table b/definitions/grib2/tables/14/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/14/1.6.table
+++ b/definitions/grib2/tables/14/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.0.table b/definitions/grib2/tables/14/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/14/3.0.table
+++ b/definitions/grib2/tables/14/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/14/3.10.table b/definitions/grib2/tables/14/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/14/3.10.table
+++ b/definitions/grib2/tables/14/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/14/3.11.table b/definitions/grib2/tables/14/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/14/3.11.table
+++ b/definitions/grib2/tables/14/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.15.table b/definitions/grib2/tables/14/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/14/3.15.table
+++ b/definitions/grib2/tables/14/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.2.table b/definitions/grib2/tables/14/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/14/3.2.table
+++ b/definitions/grib2/tables/14/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.20.table b/definitions/grib2/tables/14/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/14/3.20.table
+++ b/definitions/grib2/tables/14/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.21.table b/definitions/grib2/tables/14/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/14/3.21.table
+++ b/definitions/grib2/tables/14/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.3.table b/definitions/grib2/tables/14/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/14/3.3.table
+++ b/definitions/grib2/tables/14/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/14/3.4.table b/definitions/grib2/tables/14/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/14/3.4.table
+++ b/definitions/grib2/tables/14/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/14/3.5.table b/definitions/grib2/tables/14/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/14/3.5.table
+++ b/definitions/grib2/tables/14/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/14/3.7.table b/definitions/grib2/tables/14/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/14/3.7.table
+++ b/definitions/grib2/tables/14/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.8.table b/definitions/grib2/tables/14/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/14/3.8.table
+++ b/definitions/grib2/tables/14/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/3.9.table b/definitions/grib2/tables/14/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/14/3.9.table
+++ b/definitions/grib2/tables/14/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/14/4.0.table b/definitions/grib2/tables/14/4.0.table
index b24b6fb11..7627a2a3d 100644
--- a/definitions/grib2/tables/14/4.0.table
+++ b/definitions/grib2/tables/14/4.0.table
@@ -1,62 +1,62 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-# 55-59 Reserved
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+# 55-59 Reserved
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 62-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 62-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/14/4.1.0.table b/definitions/grib2/tables/14/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/14/4.1.0.table
+++ b/definitions/grib2/tables/14/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.1.1.table b/definitions/grib2/tables/14/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/14/4.1.1.table
+++ b/definitions/grib2/tables/14/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.1.10.table b/definitions/grib2/tables/14/4.1.10.table
index b97dcd355..e9663f391 100644
--- a/definitions/grib2/tables/14/4.1.10.table
+++ b/definitions/grib2/tables/14/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.1.192.table b/definitions/grib2/tables/14/4.1.192.table
deleted file mode 100644
index c428acab0..000000000
--- a/definitions/grib2/tables/14/4.1.192.table
+++ /dev/null
@@ -1,4 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
-
diff --git a/definitions/grib2/tables/14/4.1.2.table b/definitions/grib2/tables/14/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/14/4.1.2.table
+++ b/definitions/grib2/tables/14/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.1.3.table b/definitions/grib2/tables/14/4.1.3.table
index 5096a166e..c1a1e267a 100644
--- a/definitions/grib2/tables/14/4.1.3.table
+++ b/definitions/grib2/tables/14/4.1.3.table
@@ -1,6 +1,6 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.10.table b/definitions/grib2/tables/14/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/14/4.10.table
+++ b/definitions/grib2/tables/14/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/14/4.11.table b/definitions/grib2/tables/14/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/14/4.11.table
+++ b/definitions/grib2/tables/14/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.12.table b/definitions/grib2/tables/14/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/14/4.12.table
+++ b/definitions/grib2/tables/14/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.13.table b/definitions/grib2/tables/14/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/14/4.13.table
+++ b/definitions/grib2/tables/14/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.14.table b/definitions/grib2/tables/14/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/14/4.14.table
+++ b/definitions/grib2/tables/14/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.15.table b/definitions/grib2/tables/14/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/14/4.15.table
+++ b/definitions/grib2/tables/14/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.0.table b/definitions/grib2/tables/14/4.2.0.0.table
index 41e5291a9..24d21959d 100644
--- a/definitions/grib2/tables/14/4.2.0.0.table
+++ b/definitions/grib2/tables/14/4.2.0.0.table
@@ -21,6 +21,6 @@
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
21 21 Apparent temperature (K)
-# 22-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.1.table b/definitions/grib2/tables/14/4.2.0.1.table
index 4c624e74a..bd0214c77 100644
--- a/definitions/grib2/tables/14/4.2.0.1.table
+++ b/definitions/grib2/tables/14/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,12 +86,12 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
93 93 Relative humidity with respect to water (%)
94 94 Relative humidity with respect to ice (%)
-# 95-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 95-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.13.table b/definitions/grib2/tables/14/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/14/4.2.0.13.table
+++ b/definitions/grib2/tables/14/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.14.table b/definitions/grib2/tables/14/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/14/4.2.0.14.table
+++ b/definitions/grib2/tables/14/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.15.table b/definitions/grib2/tables/14/4.2.0.15.table
index d74fa7234..bb0b9ab46 100644
--- a/definitions/grib2/tables/14/4.2.0.15.table
+++ b/definitions/grib2/tables/14/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.16.table b/definitions/grib2/tables/14/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/14/4.2.0.16.table
+++ b/definitions/grib2/tables/14/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.18.table b/definitions/grib2/tables/14/4.2.0.18.table
index 18c41aa48..7e0a736eb 100644
--- a/definitions/grib2/tables/14/4.2.0.18.table
+++ b/definitions/grib2/tables/14/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.19.table b/definitions/grib2/tables/14/4.2.0.19.table
index 75101bd37..d2beef083 100644
--- a/definitions/grib2/tables/14/4.2.0.19.table
+++ b/definitions/grib2/tables/14/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.190.table b/definitions/grib2/tables/14/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/14/4.2.0.190.table
+++ b/definitions/grib2/tables/14/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.191.table b/definitions/grib2/tables/14/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/14/4.2.0.191.table
+++ b/definitions/grib2/tables/14/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.2.table b/definitions/grib2/tables/14/4.2.0.2.table
index c83b07300..7bd1509f5 100644
--- a/definitions/grib2/tables/14/4.2.0.2.table
+++ b/definitions/grib2/tables/14/4.2.0.2.table
@@ -38,6 +38,6 @@
36 36 Amplitude function for Rossby wave envelope for meridional wind (m/s)
37 37 Northward turbulent surface stress (N m-2 s)
38 38 Eastward turbulent surface stress (N m-2 s)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.20.table b/definitions/grib2/tables/14/4.2.0.20.table
index 9584f7c7f..df9ccc184 100644
--- a/definitions/grib2/tables/14/4.2.0.20.table
+++ b/definitions/grib2/tables/14/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.3.table b/definitions/grib2/tables/14/4.2.0.3.table
index 9a88e0027..e1a68bfc5 100644
--- a/definitions/grib2/tables/14/4.2.0.3.table
+++ b/definitions/grib2/tables/14/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.4.table b/definitions/grib2/tables/14/4.2.0.4.table
index dbfcbddb7..03b5cea38 100644
--- a/definitions/grib2/tables/14/4.2.0.4.table
+++ b/definitions/grib2/tables/14/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.5.table b/definitions/grib2/tables/14/4.2.0.5.table
index f1c04650d..1bdd6ebee 100644
--- a/definitions/grib2/tables/14/4.2.0.5.table
+++ b/definitions/grib2/tables/14/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.6.table b/definitions/grib2/tables/14/4.2.0.6.table
index 702152741..427240b70 100644
--- a/definitions/grib2/tables/14/4.2.0.6.table
+++ b/definitions/grib2/tables/14/4.2.0.6.table
@@ -37,6 +37,6 @@
35 35 Surface short-wave effective total cloudiness (Numeric)
36 36 Fraction of stratiform precipitation cover (Proportion)
37 37 Fraction of convective precipitation cover (Proportion)
-# 38-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 38-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.0.7.table b/definitions/grib2/tables/14/4.2.0.7.table
index db47d0113..8a2b85fb9 100644
--- a/definitions/grib2/tables/14/4.2.0.7.table
+++ b/definitions/grib2/tables/14/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.1.0.table b/definitions/grib2/tables/14/4.2.1.0.table
index cf56b08ee..f455c3365 100644
--- a/definitions/grib2/tables/14/4.2.1.0.table
+++ b/definitions/grib2/tables/14/4.2.1.0.table
@@ -7,6 +7,6 @@
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
7 7 Discharge from rivers or streams (m3/s)
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.1.1.table b/definitions/grib2/tables/14/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/14/4.2.1.1.table
+++ b/definitions/grib2/tables/14/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.0.table b/definitions/grib2/tables/14/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/14/4.2.10.0.table
+++ b/definitions/grib2/tables/14/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.1.table b/definitions/grib2/tables/14/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/14/4.2.10.1.table
+++ b/definitions/grib2/tables/14/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.191.table b/definitions/grib2/tables/14/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/14/4.2.10.191.table
+++ b/definitions/grib2/tables/14/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.2.table b/definitions/grib2/tables/14/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/14/4.2.10.2.table
+++ b/definitions/grib2/tables/14/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.3.table b/definitions/grib2/tables/14/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/14/4.2.10.3.table
+++ b/definitions/grib2/tables/14/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.10.4.table b/definitions/grib2/tables/14/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/14/4.2.10.4.table
+++ b/definitions/grib2/tables/14/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.2.0.table b/definitions/grib2/tables/14/4.2.2.0.table
index 1853aa0fc..d61dd05fc 100644
--- a/definitions/grib2/tables/14/4.2.2.0.table
+++ b/definitions/grib2/tables/14/4.2.2.0.table
@@ -37,6 +37,6 @@
35 35 Tile class (Code table 4.243)
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
-# 38-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 38-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.2.3.table b/definitions/grib2/tables/14/4.2.2.3.table
index 2f6291077..3d3298c8a 100644
--- a/definitions/grib2/tables/14/4.2.2.3.table
+++ b/definitions/grib2/tables/14/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.2.4.table b/definitions/grib2/tables/14/4.2.2.4.table
index d4ede2f70..c8b877df6 100644
--- a/definitions/grib2/tables/14/4.2.2.4.table
+++ b/definitions/grib2/tables/14/4.2.2.4.table
@@ -4,6 +4,6 @@
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
4 4 Fosberg index (Numeric)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.3.0.table b/definitions/grib2/tables/14/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/14/4.2.3.0.table
+++ b/definitions/grib2/tables/14/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.2.3.1.table b/definitions/grib2/tables/14/4.2.3.1.table
index 0c0fc8d37..bc16d8855 100644
--- a/definitions/grib2/tables/14/4.2.3.1.table
+++ b/definitions/grib2/tables/14/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.201.table b/definitions/grib2/tables/14/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/14/4.201.table
+++ b/definitions/grib2/tables/14/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.202.table b/definitions/grib2/tables/14/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/14/4.202.table
+++ b/definitions/grib2/tables/14/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.203.table b/definitions/grib2/tables/14/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/14/4.203.table
+++ b/definitions/grib2/tables/14/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.204.table b/definitions/grib2/tables/14/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/14/4.204.table
+++ b/definitions/grib2/tables/14/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.205.table b/definitions/grib2/tables/14/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/14/4.205.table
+++ b/definitions/grib2/tables/14/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.206.table b/definitions/grib2/tables/14/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/14/4.206.table
+++ b/definitions/grib2/tables/14/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.207.table b/definitions/grib2/tables/14/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/14/4.207.table
+++ b/definitions/grib2/tables/14/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.208.table b/definitions/grib2/tables/14/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/14/4.208.table
+++ b/definitions/grib2/tables/14/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.209.table b/definitions/grib2/tables/14/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/14/4.209.table
+++ b/definitions/grib2/tables/14/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.210.table b/definitions/grib2/tables/14/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/14/4.210.table
+++ b/definitions/grib2/tables/14/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.211.table b/definitions/grib2/tables/14/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/14/4.211.table
+++ b/definitions/grib2/tables/14/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.212.table b/definitions/grib2/tables/14/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/14/4.212.table
+++ b/definitions/grib2/tables/14/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.213.table b/definitions/grib2/tables/14/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/14/4.213.table
+++ b/definitions/grib2/tables/14/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.215.table b/definitions/grib2/tables/14/4.215.table
index 88fda8b8c..c264c6722 100644
--- a/definitions/grib2/tables/14/4.215.table
+++ b/definitions/grib2/tables/14/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely-sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.216.table b/definitions/grib2/tables/14/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/14/4.216.table
+++ b/definitions/grib2/tables/14/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.217.table b/definitions/grib2/tables/14/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/14/4.217.table
+++ b/definitions/grib2/tables/14/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.218.table b/definitions/grib2/tables/14/4.218.table
index 6940a0e41..acf069c32 100644
--- a/definitions/grib2/tables/14/4.218.table
+++ b/definitions/grib2/tables/14/4.218.table
@@ -1,38 +1,38 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.219.table b/definitions/grib2/tables/14/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/14/4.219.table
+++ b/definitions/grib2/tables/14/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.220.table b/definitions/grib2/tables/14/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/14/4.220.table
+++ b/definitions/grib2/tables/14/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.221.table b/definitions/grib2/tables/14/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/14/4.221.table
+++ b/definitions/grib2/tables/14/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.222.table b/definitions/grib2/tables/14/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/14/4.222.table
+++ b/definitions/grib2/tables/14/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.223.table b/definitions/grib2/tables/14/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/14/4.223.table
+++ b/definitions/grib2/tables/14/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/14/4.224.table b/definitions/grib2/tables/14/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/14/4.224.table
+++ b/definitions/grib2/tables/14/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.227.table b/definitions/grib2/tables/14/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/14/4.227.table
+++ b/definitions/grib2/tables/14/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/14/4.234.table b/definitions/grib2/tables/14/4.234.table
index 9844a91d2..d8b3715b3 100644
--- a/definitions/grib2/tables/14/4.234.table
+++ b/definitions/grib2/tables/14/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/14/4.236.table b/definitions/grib2/tables/14/4.236.table
index 08c7f8d56..b667b65fc 100644
--- a/definitions/grib2/tables/14/4.236.table
+++ b/definitions/grib2/tables/14/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/14/4.241.table b/definitions/grib2/tables/14/4.241.table
index 21b8b207b..ce6a15f3c 100644
--- a/definitions/grib2/tables/14/4.241.table
+++ b/definitions/grib2/tables/14/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow-covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow-covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.242.table b/definitions/grib2/tables/14/4.242.table
index 012655df6..ca852339d 100644
--- a/definitions/grib2/tables/14/4.242.table
+++ b/definitions/grib2/tables/14/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GLOBCOVER GCV2009
-2 2 Land use classes according to European Commission - Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Land use classes according to ESA-GLOBCOVER GCV2009
+2 2 Land use classes according to European Commission - Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.243.table b/definitions/grib2/tables/14/4.243.table
index 9f047be33..8677e6819 100644
--- a/definitions/grib2/tables/14/4.243.table
+++ b/definitions/grib2/tables/14/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Fresh water flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rain fed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Fresh water flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rain fed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/14/4.3.table b/definitions/grib2/tables/14/4.3.table
index f423af2bf..46e498c5f 100644
--- a/definitions/grib2/tables/14/4.3.table
+++ b/definitions/grib2/tables/14/4.3.table
@@ -1,20 +1,20 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.4.table b/definitions/grib2/tables/14/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/14/4.4.table
+++ b/definitions/grib2/tables/14/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.5.table b/definitions/grib2/tables/14/4.5.table
index e6d6d424c..d61b61c9f 100644
--- a/definitions/grib2/tables/14/4.5.table
+++ b/definitions/grib2/tables/14/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,18 +25,18 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
-112 112 Reserved
+112 112 Reserved
113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
-# 115-116 Reserved
+# 115-116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level
119 hpl Hybrid pressure level
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -45,6 +45,6 @@
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
167 167 Bottom of root zone
-# 168-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 168-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.6.table b/definitions/grib2/tables/14/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/14/4.6.table
+++ b/definitions/grib2/tables/14/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.7.table b/definitions/grib2/tables/14/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/14/4.7.table
+++ b/definitions/grib2/tables/14/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.8.table b/definitions/grib2/tables/14/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/14/4.8.table
+++ b/definitions/grib2/tables/14/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.9.table b/definitions/grib2/tables/14/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/14/4.9.table
+++ b/definitions/grib2/tables/14/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/4.91.table b/definitions/grib2/tables/14/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/14/4.91.table
+++ b/definitions/grib2/tables/14/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/14/5.0.table b/definitions/grib2/tables/14/5.0.table
index 5ec77ed0f..2795336df 100644
--- a/definitions/grib2/tables/14/5.0.table
+++ b/definitions/grib2/tables/14/5.0.table
@@ -1,23 +1,23 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
-# 42-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+# 42-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/14/5.1.table b/definitions/grib2/tables/14/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/14/5.1.table
+++ b/definitions/grib2/tables/14/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.2.table b/definitions/grib2/tables/14/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/14/5.2.table
+++ b/definitions/grib2/tables/14/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/14/5.3.table b/definitions/grib2/tables/14/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/14/5.3.table
+++ b/definitions/grib2/tables/14/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.4.table b/definitions/grib2/tables/14/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/14/5.4.table
+++ b/definitions/grib2/tables/14/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.40.table b/definitions/grib2/tables/14/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/14/5.40.table
+++ b/definitions/grib2/tables/14/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.5.table b/definitions/grib2/tables/14/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/14/5.5.table
+++ b/definitions/grib2/tables/14/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.6.table b/definitions/grib2/tables/14/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/14/5.6.table
+++ b/definitions/grib2/tables/14/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/14/5.7.table b/definitions/grib2/tables/14/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/14/5.7.table
+++ b/definitions/grib2/tables/14/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/14/6.0.table b/definitions/grib2/tables/14/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/14/6.0.table
+++ b/definitions/grib2/tables/14/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/15/0.0.table b/definitions/grib2/tables/15/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/15/0.0.table
+++ b/definitions/grib2/tables/15/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/1.0.table b/definitions/grib2/tables/15/1.0.table
index 1d1bde1dc..9c3abfc0a 100644
--- a/definitions/grib2/tables/15/1.0.table
+++ b/definitions/grib2/tables/15/1.0.table
@@ -1,20 +1,20 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
-10 10 Version implemented on 7 November 2012
-11 11 Version implemented on 8 May 2013
-12 12 Version implemented on 14 November 2013
-13 13 Version implemented on 7 May 2014
-14 14 Version implemented on 5 November 2014
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
15 15 Version implemented on 6 May 2015
-16 16 Pre-operational to be implemented by next amendment
-# 17-254 Future versions
-255 255 Missing
+16 16 Pre-operational to be implemented by next amendment
+# 17-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/15/1.1.table b/definitions/grib2/tables/15/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/15/1.1.table
+++ b/definitions/grib2/tables/15/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/15/1.2.table b/definitions/grib2/tables/15/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/15/1.2.table
+++ b/definitions/grib2/tables/15/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/1.3.table b/definitions/grib2/tables/15/1.3.table
index 6f061bf42..e7197fcb2 100644
--- a/definitions/grib2/tables/15/1.3.table
+++ b/definitions/grib2/tables/15/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 S2S operational products
7 7 S2S test products
8 8 Uncertainties in ensembles of regional reanalysis project (UERRA)
9 9 Uncertainties in ensembles of regional reanalysis project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/1.4.table b/definitions/grib2/tables/15/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/15/1.4.table
+++ b/definitions/grib2/tables/15/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/15/1.5.table b/definitions/grib2/tables/15/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/15/1.5.table
+++ b/definitions/grib2/tables/15/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/15/1.6.table b/definitions/grib2/tables/15/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/15/1.6.table
+++ b/definitions/grib2/tables/15/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.0.table b/definitions/grib2/tables/15/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/15/3.0.table
+++ b/definitions/grib2/tables/15/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/15/3.10.table b/definitions/grib2/tables/15/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/15/3.10.table
+++ b/definitions/grib2/tables/15/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/15/3.11.table b/definitions/grib2/tables/15/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/15/3.11.table
+++ b/definitions/grib2/tables/15/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.15.table b/definitions/grib2/tables/15/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/15/3.15.table
+++ b/definitions/grib2/tables/15/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.2.table b/definitions/grib2/tables/15/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/15/3.2.table
+++ b/definitions/grib2/tables/15/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.20.table b/definitions/grib2/tables/15/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/15/3.20.table
+++ b/definitions/grib2/tables/15/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.21.table b/definitions/grib2/tables/15/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/15/3.21.table
+++ b/definitions/grib2/tables/15/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.3.table b/definitions/grib2/tables/15/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/15/3.3.table
+++ b/definitions/grib2/tables/15/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/15/3.4.table b/definitions/grib2/tables/15/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/15/3.4.table
+++ b/definitions/grib2/tables/15/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/15/3.5.table b/definitions/grib2/tables/15/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/15/3.5.table
+++ b/definitions/grib2/tables/15/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/15/3.7.table b/definitions/grib2/tables/15/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/15/3.7.table
+++ b/definitions/grib2/tables/15/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.8.table b/definitions/grib2/tables/15/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/15/3.8.table
+++ b/definitions/grib2/tables/15/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/3.9.table b/definitions/grib2/tables/15/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/15/3.9.table
+++ b/definitions/grib2/tables/15/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/15/4.0.table b/definitions/grib2/tables/15/4.0.table
index b4eff0769..b05d7ef13 100644
--- a/definitions/grib2/tables/15/4.0.table
+++ b/definitions/grib2/tables/15/4.0.table
@@ -1,64 +1,64 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-# 55-56 Reserved
-57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
-# 58-59 Reserved
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+# 55-56 Reserved
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+# 58-59 Reserved
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 62-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 62-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/15/4.1.0.table b/definitions/grib2/tables/15/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/15/4.1.0.table
+++ b/definitions/grib2/tables/15/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.1.1.table b/definitions/grib2/tables/15/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/15/4.1.1.table
+++ b/definitions/grib2/tables/15/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.1.10.table b/definitions/grib2/tables/15/4.1.10.table
index a9b20eb9c..88d3c8743 100644
--- a/definitions/grib2/tables/15/4.1.10.table
+++ b/definitions/grib2/tables/15/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Subsurface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.1.192.table b/definitions/grib2/tables/15/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/15/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/15/4.1.2.table b/definitions/grib2/tables/15/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/15/4.1.2.table
+++ b/definitions/grib2/tables/15/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.1.3.table b/definitions/grib2/tables/15/4.1.3.table
index 5096a166e..c1a1e267a 100644
--- a/definitions/grib2/tables/15/4.1.3.table
+++ b/definitions/grib2/tables/15/4.1.3.table
@@ -1,6 +1,6 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.10.table b/definitions/grib2/tables/15/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/15/4.10.table
+++ b/definitions/grib2/tables/15/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/15/4.11.table b/definitions/grib2/tables/15/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/15/4.11.table
+++ b/definitions/grib2/tables/15/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.12.table b/definitions/grib2/tables/15/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/15/4.12.table
+++ b/definitions/grib2/tables/15/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.13.table b/definitions/grib2/tables/15/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/15/4.13.table
+++ b/definitions/grib2/tables/15/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.14.table b/definitions/grib2/tables/15/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/15/4.14.table
+++ b/definitions/grib2/tables/15/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.15.table b/definitions/grib2/tables/15/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/15/4.15.table
+++ b/definitions/grib2/tables/15/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.0.table b/definitions/grib2/tables/15/4.2.0.0.table
index 41e5291a9..24d21959d 100644
--- a/definitions/grib2/tables/15/4.2.0.0.table
+++ b/definitions/grib2/tables/15/4.2.0.0.table
@@ -21,6 +21,6 @@
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
21 21 Apparent temperature (K)
-# 22-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.1.table b/definitions/grib2/tables/15/4.2.0.1.table
index f2fdd3026..69386bbe2 100644
--- a/definitions/grib2/tables/15/4.2.0.1.table
+++ b/definitions/grib2/tables/15/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,7 +86,7 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
@@ -105,6 +105,6 @@
105 105 Number density of snow (m-3)
106 106 Number density of graupel (m-3)
107 107 Number density of hail (m-3)
-# 108-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 108-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.13.table b/definitions/grib2/tables/15/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/15/4.2.0.13.table
+++ b/definitions/grib2/tables/15/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.14.table b/definitions/grib2/tables/15/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/15/4.2.0.14.table
+++ b/definitions/grib2/tables/15/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.15.table b/definitions/grib2/tables/15/4.2.0.15.table
index dfbc4d12f..8df082466 100644
--- a/definitions/grib2/tables/15/4.2.0.15.table
+++ b/definitions/grib2/tables/15/4.2.0.15.table
@@ -16,6 +16,6 @@
14 14 Reflectivity of hail (dB)
15 15 Hybrid scan reflectivity (dB)
16 16 Hybrid scan reflectivity height (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.16.table b/definitions/grib2/tables/15/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/15/4.2.0.16.table
+++ b/definitions/grib2/tables/15/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.18.table b/definitions/grib2/tables/15/4.2.0.18.table
index 18c41aa48..7e0a736eb 100644
--- a/definitions/grib2/tables/15/4.2.0.18.table
+++ b/definitions/grib2/tables/15/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.19.table b/definitions/grib2/tables/15/4.2.0.19.table
index 75101bd37..d2beef083 100644
--- a/definitions/grib2/tables/15/4.2.0.19.table
+++ b/definitions/grib2/tables/15/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.190.table b/definitions/grib2/tables/15/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/15/4.2.0.190.table
+++ b/definitions/grib2/tables/15/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.191.table b/definitions/grib2/tables/15/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/15/4.2.0.191.table
+++ b/definitions/grib2/tables/15/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.2.table b/definitions/grib2/tables/15/4.2.0.2.table
index c83b07300..7bd1509f5 100644
--- a/definitions/grib2/tables/15/4.2.0.2.table
+++ b/definitions/grib2/tables/15/4.2.0.2.table
@@ -38,6 +38,6 @@
36 36 Amplitude function for Rossby wave envelope for meridional wind (m/s)
37 37 Northward turbulent surface stress (N m-2 s)
38 38 Eastward turbulent surface stress (N m-2 s)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.20.table b/definitions/grib2/tables/15/4.2.0.20.table
index 9584f7c7f..df9ccc184 100644
--- a/definitions/grib2/tables/15/4.2.0.20.table
+++ b/definitions/grib2/tables/15/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.3.table b/definitions/grib2/tables/15/4.2.0.3.table
index 9a88e0027..e1a68bfc5 100644
--- a/definitions/grib2/tables/15/4.2.0.3.table
+++ b/definitions/grib2/tables/15/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.4.table b/definitions/grib2/tables/15/4.2.0.4.table
index dbfcbddb7..03b5cea38 100644
--- a/definitions/grib2/tables/15/4.2.0.4.table
+++ b/definitions/grib2/tables/15/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.5.table b/definitions/grib2/tables/15/4.2.0.5.table
index 932a12fbd..b9084509a 100644
--- a/definitions/grib2/tables/15/4.2.0.5.table
+++ b/definitions/grib2/tables/15/4.2.0.5.table
@@ -7,6 +7,6 @@
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
7 7 Brightness temperature (K)
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.6.table b/definitions/grib2/tables/15/4.2.0.6.table
index e28d8e4db..8f1574d46 100644
--- a/definitions/grib2/tables/15/4.2.0.6.table
+++ b/definitions/grib2/tables/15/4.2.0.6.table
@@ -39,6 +39,6 @@
37 37 Fraction of convective precipitation cover (Proportion)
38 38 Mass density of cloud droplets (kg m-3)
39 39 Mass density of cloud ice (kg m-3)
-# 40-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 40-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.0.7.table b/definitions/grib2/tables/15/4.2.0.7.table
index db47d0113..8a2b85fb9 100644
--- a/definitions/grib2/tables/15/4.2.0.7.table
+++ b/definitions/grib2/tables/15/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.1.0.table b/definitions/grib2/tables/15/4.2.1.0.table
index cf56b08ee..f455c3365 100644
--- a/definitions/grib2/tables/15/4.2.1.0.table
+++ b/definitions/grib2/tables/15/4.2.1.0.table
@@ -7,6 +7,6 @@
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
7 7 Discharge from rivers or streams (m3/s)
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.1.1.table b/definitions/grib2/tables/15/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/15/4.2.1.1.table
+++ b/definitions/grib2/tables/15/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.0.table b/definitions/grib2/tables/15/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/15/4.2.10.0.table
+++ b/definitions/grib2/tables/15/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.1.table b/definitions/grib2/tables/15/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/15/4.2.10.1.table
+++ b/definitions/grib2/tables/15/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.191.table b/definitions/grib2/tables/15/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/15/4.2.10.191.table
+++ b/definitions/grib2/tables/15/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.2.table b/definitions/grib2/tables/15/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/15/4.2.10.2.table
+++ b/definitions/grib2/tables/15/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.3.table b/definitions/grib2/tables/15/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/15/4.2.10.3.table
+++ b/definitions/grib2/tables/15/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.10.4.table b/definitions/grib2/tables/15/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/15/4.2.10.4.table
+++ b/definitions/grib2/tables/15/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.2.0.table b/definitions/grib2/tables/15/4.2.2.0.table
index 81548840c..b253cac22 100644
--- a/definitions/grib2/tables/15/4.2.2.0.table
+++ b/definitions/grib2/tables/15/4.2.2.0.table
@@ -38,6 +38,6 @@
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.2.3.table b/definitions/grib2/tables/15/4.2.2.3.table
index 08ac880fe..2b1d0ac38 100644
--- a/definitions/grib2/tables/15/4.2.2.3.table
+++ b/definitions/grib2/tables/15/4.2.2.3.table
@@ -23,6 +23,6 @@
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
23 23 Liquid water in snow pack (kg m-2)
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.2.4.table b/definitions/grib2/tables/15/4.2.2.4.table
index d4ede2f70..c8b877df6 100644
--- a/definitions/grib2/tables/15/4.2.2.4.table
+++ b/definitions/grib2/tables/15/4.2.2.4.table
@@ -4,6 +4,6 @@
2 2 Haines Index (Numeric)
3 3 Fire burned area (%)
4 4 Fosberg index (Numeric)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.3.0.table b/definitions/grib2/tables/15/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/15/4.2.3.0.table
+++ b/definitions/grib2/tables/15/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.2.3.1.table b/definitions/grib2/tables/15/4.2.3.1.table
index 0bda53063..bc9eaab0d 100644
--- a/definitions/grib2/tables/15/4.2.3.1.table
+++ b/definitions/grib2/tables/15/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.201.table b/definitions/grib2/tables/15/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/15/4.201.table
+++ b/definitions/grib2/tables/15/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.202.table b/definitions/grib2/tables/15/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/15/4.202.table
+++ b/definitions/grib2/tables/15/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.203.table b/definitions/grib2/tables/15/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/15/4.203.table
+++ b/definitions/grib2/tables/15/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.204.table b/definitions/grib2/tables/15/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/15/4.204.table
+++ b/definitions/grib2/tables/15/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.205.table b/definitions/grib2/tables/15/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/15/4.205.table
+++ b/definitions/grib2/tables/15/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.206.table b/definitions/grib2/tables/15/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/15/4.206.table
+++ b/definitions/grib2/tables/15/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.207.table b/definitions/grib2/tables/15/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/15/4.207.table
+++ b/definitions/grib2/tables/15/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.208.table b/definitions/grib2/tables/15/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/15/4.208.table
+++ b/definitions/grib2/tables/15/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.209.table b/definitions/grib2/tables/15/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/15/4.209.table
+++ b/definitions/grib2/tables/15/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.210.table b/definitions/grib2/tables/15/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/15/4.210.table
+++ b/definitions/grib2/tables/15/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.211.table b/definitions/grib2/tables/15/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/15/4.211.table
+++ b/definitions/grib2/tables/15/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.212.table b/definitions/grib2/tables/15/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/15/4.212.table
+++ b/definitions/grib2/tables/15/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.213.table b/definitions/grib2/tables/15/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/15/4.213.table
+++ b/definitions/grib2/tables/15/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.215.table b/definitions/grib2/tables/15/4.215.table
index 034db72be..7888772d5 100644
--- a/definitions/grib2/tables/15/4.215.table
+++ b/definitions/grib2/tables/15/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.216.table b/definitions/grib2/tables/15/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/15/4.216.table
+++ b/definitions/grib2/tables/15/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.217.table b/definitions/grib2/tables/15/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/15/4.217.table
+++ b/definitions/grib2/tables/15/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.218.table b/definitions/grib2/tables/15/4.218.table
index bfca92f95..fdaa3ea31 100644
--- a/definitions/grib2/tables/15/4.218.table
+++ b/definitions/grib2/tables/15/4.218.table
@@ -1,38 +1,38 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation/crops
-15 15 Permanent snow/ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow/ice on land
-98 98 Snow/ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud/fog/Stratus
-102 102 Low cloud/Stratocumulus
-103 103 Low cloud/unknown type
-104 104 Medium cloud/Nimbostratus
-105 105 Medium cloud/Altostratus
-106 106 Medium cloud/unknown type
-107 107 High cloud/Cumulus
-108 108 High cloud/Cirrus
-109 109 High cloud/unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/Stratus
+102 102 Low cloud/Stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/Nimbostratus
+105 105 Medium cloud/Altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/Cumulus
+108 108 High cloud/Cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.219.table b/definitions/grib2/tables/15/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/15/4.219.table
+++ b/definitions/grib2/tables/15/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.220.table b/definitions/grib2/tables/15/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/15/4.220.table
+++ b/definitions/grib2/tables/15/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.221.table b/definitions/grib2/tables/15/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/15/4.221.table
+++ b/definitions/grib2/tables/15/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.222.table b/definitions/grib2/tables/15/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/15/4.222.table
+++ b/definitions/grib2/tables/15/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.223.table b/definitions/grib2/tables/15/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/15/4.223.table
+++ b/definitions/grib2/tables/15/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/15/4.224.table b/definitions/grib2/tables/15/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/15/4.224.table
+++ b/definitions/grib2/tables/15/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.227.table b/definitions/grib2/tables/15/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/15/4.227.table
+++ b/definitions/grib2/tables/15/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/15/4.234.table b/definitions/grib2/tables/15/4.234.table
index 9844a91d2..d8b3715b3 100644
--- a/definitions/grib2/tables/15/4.234.table
+++ b/definitions/grib2/tables/15/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/15/4.236.table b/definitions/grib2/tables/15/4.236.table
index 08c7f8d56..b667b65fc 100644
--- a/definitions/grib2/tables/15/4.236.table
+++ b/definitions/grib2/tables/15/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/15/4.241.table b/definitions/grib2/tables/15/4.241.table
index c0bd3e99e..6ce0a5ea7 100644
--- a/definitions/grib2/tables/15/4.241.table
+++ b/definitions/grib2/tables/15/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.242.table b/definitions/grib2/tables/15/4.242.table
index 083f88c29..f6865957c 100644
--- a/definitions/grib2/tables/15/4.242.table
+++ b/definitions/grib2/tables/15/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GlobCover GCV2009
-2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Reserved
+1 1 Land use classes according to ESA-GlobCover GCV2009
+2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/15/4.243.table b/definitions/grib2/tables/15/4.243.table
index b39053311..24d21b719 100644
--- a/definitions/grib2/tables/15/4.243.table
+++ b/definitions/grib2/tables/15/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Freshwater flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rainfed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/15/4.3.table b/definitions/grib2/tables/15/4.3.table
index f423af2bf..46e498c5f 100644
--- a/definitions/grib2/tables/15/4.3.table
+++ b/definitions/grib2/tables/15/4.3.table
@@ -1,20 +1,20 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.4.table b/definitions/grib2/tables/15/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/15/4.4.table
+++ b/definitions/grib2/tables/15/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.5.table b/definitions/grib2/tables/15/4.5.table
index f73733e88..d1a76825a 100644
--- a/definitions/grib2/tables/15/4.5.table
+++ b/definitions/grib2/tables/15/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,18 +25,18 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
-# 115-116 Reserved
+# 115-116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level
119 hpl Hybrid pressure level
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
@@ -47,17 +47,17 @@
167 167 Bottom of root zone
# 168-173 Reserved
# 168-169 Reserved
-174 sfc Top surface of ice on sea, lake or river
-175 175 Top surface of ice, under snow cover, on sea, lake or river
-176 176 Bottom surface (underside) ice on sea, lake or river
-177 sfc Deep soil (of indefinite depth)
-178 178 Reserved
-179 179 Top surface of glacier ice and inland ice
-180 180 Deep inland or glacier ice (of indefinite depth)
-181 181 Grid tile land fraction as a model surface
-182 182 Grid tile water fraction as a model surface
-183 183 Grid tile ice fraction on sea, lake or river as a model surface
-184 184 Grid tile glacier ice and inland ice fraction as a model surface
-# 185-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+174 sfc Top surface of ice on sea, lake or river
+175 175 Top surface of ice, under snow cover, on sea, lake or river
+176 176 Bottom surface (underside) ice on sea, lake or river
+177 sfc Deep soil (of indefinite depth)
+178 178 Reserved
+179 179 Top surface of glacier ice and inland ice
+180 180 Deep inland or glacier ice (of indefinite depth)
+181 181 Grid tile land fraction as a model surface
+182 182 Grid tile water fraction as a model surface
+183 183 Grid tile ice fraction on sea, lake or river as a model surface
+184 184 Grid tile glacier ice and inland ice fraction as a model surface
+# 185-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.6.table b/definitions/grib2/tables/15/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/15/4.6.table
+++ b/definitions/grib2/tables/15/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.7.table b/definitions/grib2/tables/15/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/15/4.7.table
+++ b/definitions/grib2/tables/15/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.8.table b/definitions/grib2/tables/15/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/15/4.8.table
+++ b/definitions/grib2/tables/15/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.9.table b/definitions/grib2/tables/15/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/15/4.9.table
+++ b/definitions/grib2/tables/15/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/4.91.table b/definitions/grib2/tables/15/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/15/4.91.table
+++ b/definitions/grib2/tables/15/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/15/5.0.table b/definitions/grib2/tables/15/5.0.table
index 5ec77ed0f..2795336df 100644
--- a/definitions/grib2/tables/15/5.0.table
+++ b/definitions/grib2/tables/15/5.0.table
@@ -1,23 +1,23 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
-# 42-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+# 42-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/15/5.1.table b/definitions/grib2/tables/15/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/15/5.1.table
+++ b/definitions/grib2/tables/15/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.2.table b/definitions/grib2/tables/15/5.2.table
index 7a4500ecd..d12b46fbd 100644
--- a/definitions/grib2/tables/15/5.2.table
+++ b/definitions/grib2/tables/15/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/15/5.3.table b/definitions/grib2/tables/15/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/15/5.3.table
+++ b/definitions/grib2/tables/15/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.4.table b/definitions/grib2/tables/15/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/15/5.4.table
+++ b/definitions/grib2/tables/15/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.40.table b/definitions/grib2/tables/15/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/15/5.40.table
+++ b/definitions/grib2/tables/15/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.5.table b/definitions/grib2/tables/15/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/15/5.5.table
+++ b/definitions/grib2/tables/15/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.6.table b/definitions/grib2/tables/15/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/15/5.6.table
+++ b/definitions/grib2/tables/15/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/15/5.7.table b/definitions/grib2/tables/15/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/15/5.7.table
+++ b/definitions/grib2/tables/15/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/15/6.0.table b/definitions/grib2/tables/15/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/15/6.0.table
+++ b/definitions/grib2/tables/15/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/16/0.0.table b/definitions/grib2/tables/16/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/16/0.0.table
+++ b/definitions/grib2/tables/16/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/1.1.table b/definitions/grib2/tables/16/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/16/1.1.table
+++ b/definitions/grib2/tables/16/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/16/1.2.table b/definitions/grib2/tables/16/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/16/1.2.table
+++ b/definitions/grib2/tables/16/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/1.3.table b/definitions/grib2/tables/16/1.3.table
index 6f061bf42..e7197fcb2 100644
--- a/definitions/grib2/tables/16/1.3.table
+++ b/definitions/grib2/tables/16/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
6 6 S2S operational products
7 7 S2S test products
8 8 Uncertainties in ensembles of regional reanalysis project (UERRA)
9 9 Uncertainties in ensembles of regional reanalysis project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/1.4.table b/definitions/grib2/tables/16/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/16/1.4.table
+++ b/definitions/grib2/tables/16/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/16/1.5.table b/definitions/grib2/tables/16/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/16/1.5.table
+++ b/definitions/grib2/tables/16/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/16/1.6.table b/definitions/grib2/tables/16/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/16/1.6.table
+++ b/definitions/grib2/tables/16/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.0.table b/definitions/grib2/tables/16/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/16/3.0.table
+++ b/definitions/grib2/tables/16/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/16/3.10.table b/definitions/grib2/tables/16/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/16/3.10.table
+++ b/definitions/grib2/tables/16/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/16/3.11.table b/definitions/grib2/tables/16/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/16/3.11.table
+++ b/definitions/grib2/tables/16/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.15.table b/definitions/grib2/tables/16/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/16/3.15.table
+++ b/definitions/grib2/tables/16/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.2.table b/definitions/grib2/tables/16/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/16/3.2.table
+++ b/definitions/grib2/tables/16/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.20.table b/definitions/grib2/tables/16/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/16/3.20.table
+++ b/definitions/grib2/tables/16/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.21.table b/definitions/grib2/tables/16/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/16/3.21.table
+++ b/definitions/grib2/tables/16/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.3.table b/definitions/grib2/tables/16/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/16/3.3.table
+++ b/definitions/grib2/tables/16/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/16/3.4.table b/definitions/grib2/tables/16/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/16/3.4.table
+++ b/definitions/grib2/tables/16/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/16/3.5.table b/definitions/grib2/tables/16/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/16/3.5.table
+++ b/definitions/grib2/tables/16/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/16/3.7.table b/definitions/grib2/tables/16/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/16/3.7.table
+++ b/definitions/grib2/tables/16/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.8.table b/definitions/grib2/tables/16/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/16/3.8.table
+++ b/definitions/grib2/tables/16/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/3.9.table b/definitions/grib2/tables/16/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/16/3.9.table
+++ b/definitions/grib2/tables/16/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/16/4.0.table b/definitions/grib2/tables/16/4.0.table
index 05bf24330..eef83c7c3 100644
--- a/definitions/grib2/tables/16/4.0.table
+++ b/definitions/grib2/tables/16/4.0.table
@@ -1,65 +1,65 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
-56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters
-57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
-# 58-59 Reserved
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
-# 62-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+# 58-59 Reserved
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+# 62-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/16/4.1.0.table b/definitions/grib2/tables/16/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/16/4.1.0.table
+++ b/definitions/grib2/tables/16/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.1.1.table b/definitions/grib2/tables/16/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/16/4.1.1.table
+++ b/definitions/grib2/tables/16/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.1.10.table b/definitions/grib2/tables/16/4.1.10.table
index a9b20eb9c..88d3c8743 100644
--- a/definitions/grib2/tables/16/4.1.10.table
+++ b/definitions/grib2/tables/16/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Subsurface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.1.192.table b/definitions/grib2/tables/16/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/16/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/16/4.1.2.table b/definitions/grib2/tables/16/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/16/4.1.2.table
+++ b/definitions/grib2/tables/16/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.1.3.table b/definitions/grib2/tables/16/4.1.3.table
index d2baa1362..210b39fd5 100644
--- a/definitions/grib2/tables/16/4.1.3.table
+++ b/definitions/grib2/tables/16/4.1.3.table
@@ -1,11 +1,11 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-2 2 Cloud properties
-3 3 Flight rules conditions
-4 4 Volcanic ash
-5 5 Sea surface temperature
-6 6 Solar radiation
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rules conditions
+4 4 Volcanic ash
+5 5 Sea surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.10.table b/definitions/grib2/tables/16/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/16/4.10.table
+++ b/definitions/grib2/tables/16/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/16/4.11.table b/definitions/grib2/tables/16/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/16/4.11.table
+++ b/definitions/grib2/tables/16/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.12.table b/definitions/grib2/tables/16/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/16/4.12.table
+++ b/definitions/grib2/tables/16/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.13.table b/definitions/grib2/tables/16/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/16/4.13.table
+++ b/definitions/grib2/tables/16/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.14.table b/definitions/grib2/tables/16/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/16/4.14.table
+++ b/definitions/grib2/tables/16/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.15.table b/definitions/grib2/tables/16/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/16/4.15.table
+++ b/definitions/grib2/tables/16/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.0.table b/definitions/grib2/tables/16/4.2.0.0.table
index cfadd2d07..3a285255f 100644
--- a/definitions/grib2/tables/16/4.2.0.0.table
+++ b/definitions/grib2/tables/16/4.2.0.0.table
@@ -27,6 +27,6 @@
25 25 Temperature tendency due to long-wave radiation, clear sky (K s-1)
26 26 Temperature tendency due to parameterizations (K s-1)
27 27 Wet bulb temperature (K)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.1.table b/definitions/grib2/tables/16/4.2.0.1.table
index 775cfe54f..1ecbf240a 100644
--- a/definitions/grib2/tables/16/4.2.0.1.table
+++ b/definitions/grib2/tables/16/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,7 +86,7 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
@@ -106,6 +106,6 @@
106 106 Number density of graupel (m-3)
107 107 Number density of hail (m-3)
108 108 Specific humidity tendency due to parameterizations (kg kg-1 s-1)
-# 109-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 109-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.13.table b/definitions/grib2/tables/16/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/16/4.2.0.13.table
+++ b/definitions/grib2/tables/16/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.14.table b/definitions/grib2/tables/16/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/16/4.2.0.14.table
+++ b/definitions/grib2/tables/16/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.15.table b/definitions/grib2/tables/16/4.2.0.15.table
index dfbc4d12f..8df082466 100644
--- a/definitions/grib2/tables/16/4.2.0.15.table
+++ b/definitions/grib2/tables/16/4.2.0.15.table
@@ -16,6 +16,6 @@
14 14 Reflectivity of hail (dB)
15 15 Hybrid scan reflectivity (dB)
16 16 Hybrid scan reflectivity height (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.16.table b/definitions/grib2/tables/16/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/16/4.2.0.16.table
+++ b/definitions/grib2/tables/16/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.18.table b/definitions/grib2/tables/16/4.2.0.18.table
index 18c41aa48..7e0a736eb 100644
--- a/definitions/grib2/tables/16/4.2.0.18.table
+++ b/definitions/grib2/tables/16/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.19.table b/definitions/grib2/tables/16/4.2.0.19.table
index ec2b9823d..e51b670a0 100644
--- a/definitions/grib2/tables/16/4.2.0.19.table
+++ b/definitions/grib2/tables/16/4.2.0.19.table
@@ -28,6 +28,6 @@
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
28 28 Mountain wave turbulence (eddy dissipation rate) (m2/3 s-1)
-# 29-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 29-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.190.table b/definitions/grib2/tables/16/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/16/4.2.0.190.table
+++ b/definitions/grib2/tables/16/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.191.table b/definitions/grib2/tables/16/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/16/4.2.0.191.table
+++ b/definitions/grib2/tables/16/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.2.table b/definitions/grib2/tables/16/4.2.0.2.table
index 46b0774aa..906cf6205 100644
--- a/definitions/grib2/tables/16/4.2.0.2.table
+++ b/definitions/grib2/tables/16/4.2.0.2.table
@@ -44,6 +44,6 @@
42 42 v-component of geostrophic wind (m s-1)
43 43 Geostrophic wind direction (degree true)
44 44 Geostrophic wind speed (m s-1)
-# 45-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 45-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.20.table b/definitions/grib2/tables/16/4.2.0.20.table
index 9584f7c7f..df9ccc184 100644
--- a/definitions/grib2/tables/16/4.2.0.20.table
+++ b/definitions/grib2/tables/16/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.3.table b/definitions/grib2/tables/16/4.2.0.3.table
index c7c6359d4..17e7f204f 100644
--- a/definitions/grib2/tables/16/4.2.0.3.table
+++ b/definitions/grib2/tables/16/4.2.0.3.table
@@ -30,6 +30,6 @@
28 28 Downdraught mass flux (kg m-2 s-1)
29 29 Updraught detrainment rate (kg m-3 s-1)
30 30 Downdraught detrainment rate (kg m-3 s-1)
-# 31-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 31-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.4.table b/definitions/grib2/tables/16/4.2.0.4.table
index bd37ea3f5..da327a450 100644
--- a/definitions/grib2/tables/16/4.2.0.4.table
+++ b/definitions/grib2/tables/16/4.2.0.4.table
@@ -14,9 +14,9 @@
12 12 Downward UV radiation (W m-2)
13 13 Direct short wave radiation flux (W m-2)
14 14 Diffuse short wave radiation flux (W m-2)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.5.table b/definitions/grib2/tables/16/4.2.0.5.table
index 932a12fbd..b9084509a 100644
--- a/definitions/grib2/tables/16/4.2.0.5.table
+++ b/definitions/grib2/tables/16/4.2.0.5.table
@@ -7,6 +7,6 @@
5 5 Net long-wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
7 7 Brightness temperature (K)
-# 8-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.6.table b/definitions/grib2/tables/16/4.2.0.6.table
index 4cec0c8aa..0450ec194 100644
--- a/definitions/grib2/tables/16/4.2.0.6.table
+++ b/definitions/grib2/tables/16/4.2.0.6.table
@@ -40,10 +40,10 @@
38 38 Mass density of cloud droplets (kg m-3)
39 39 Mass density of cloud ice (kg m-3)
40 40 Mass density of convective cloud water droplets (kg m-3)
-# 41-46 Reserved
+# 41-46 Reserved
47 47 Volume fraction of cloud water droplets (Numeric)
48 48 Volume fraction of cloud ice particles (Numeric)
49 49 Volume fraction of cloud (ice and/or water) (Numeric)
-# 50-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 50-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.0.7.table b/definitions/grib2/tables/16/4.2.0.7.table
index 23a1a82da..2bf21255d 100644
--- a/definitions/grib2/tables/16/4.2.0.7.table
+++ b/definitions/grib2/tables/16/4.2.0.7.table
@@ -13,11 +13,11 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
16 16 Bulk Richardson number (Numeric)
17 17 Gradient Richardson number (Numeric)
18 18 Flux Richardson number (Numeric)
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.1.0.table b/definitions/grib2/tables/16/4.2.1.0.table
index 74c95f57b..e6f23655a 100644
--- a/definitions/grib2/tables/16/4.2.1.0.table
+++ b/definitions/grib2/tables/16/4.2.1.0.table
@@ -15,6 +15,6 @@
13 13 Depth of water on soil surface (kg m-2)
14 14 Upstream accumulated precipitation (kg m-2)
15 15 Upstream accumulated snow melt (kg m-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.1.1.table b/definitions/grib2/tables/16/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/16/4.2.1.1.table
+++ b/definitions/grib2/tables/16/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.0.table b/definitions/grib2/tables/16/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/16/4.2.10.0.table
+++ b/definitions/grib2/tables/16/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.1.table b/definitions/grib2/tables/16/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/16/4.2.10.1.table
+++ b/definitions/grib2/tables/16/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.191.table b/definitions/grib2/tables/16/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/16/4.2.10.191.table
+++ b/definitions/grib2/tables/16/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.2.table b/definitions/grib2/tables/16/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/16/4.2.10.2.table
+++ b/definitions/grib2/tables/16/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.3.table b/definitions/grib2/tables/16/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/16/4.2.10.3.table
+++ b/definitions/grib2/tables/16/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.10.4.table b/definitions/grib2/tables/16/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/16/4.2.10.4.table
+++ b/definitions/grib2/tables/16/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.2.0.table b/definitions/grib2/tables/16/4.2.2.0.table
index 81548840c..b253cac22 100644
--- a/definitions/grib2/tables/16/4.2.2.0.table
+++ b/definitions/grib2/tables/16/4.2.2.0.table
@@ -38,6 +38,6 @@
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.2.3.table b/definitions/grib2/tables/16/4.2.2.3.table
index dff2f7953..6cb8eb7af 100644
--- a/definitions/grib2/tables/16/4.2.2.3.table
+++ b/definitions/grib2/tables/16/4.2.2.3.table
@@ -25,6 +25,6 @@
23 23 Liquid water in snow pack (kg m-2)
24 24 Frost index (K day-1)
25 25 Snow depth at elevation bands (kg m-2)
-# 26-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 26-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.2.4.table b/definitions/grib2/tables/16/4.2.2.4.table
index b9383fe10..cb3db6f78 100644
--- a/definitions/grib2/tables/16/4.2.2.4.table
+++ b/definitions/grib2/tables/16/4.2.2.4.table
@@ -11,6 +11,6 @@
9 9 Initial fire spread index (Canadian forest service) (Numeric)
10 10 Fire build up index (Canadian forest service) (Numeric)
11 11 Fire daily severity rating (Canadian forest service) (Numeric)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.3.0.table b/definitions/grib2/tables/16/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/16/4.2.3.0.table
+++ b/definitions/grib2/tables/16/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.2.3.1.table b/definitions/grib2/tables/16/4.2.3.1.table
index 75911ee32..04cdde1f1 100644
--- a/definitions/grib2/tables/16/4.2.3.1.table
+++ b/definitions/grib2/tables/16/4.2.3.1.table
@@ -17,16 +17,16 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
-20 20 Aerosol optical thickness at 0.635 um
-21 21 Aerosol optical thickness at 0.810 um
-22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-26 Reserved
+20 20 Aerosol optical thickness at 0.635 um
+21 21 Aerosol optical thickness at 0.810 um
+22 22 Aerosol optical thickness at 1.640 um
+23 23 Angstrom coefficient
+# 24-26 Reserved
27 27 Bidirectional reflectance factor (Numeric)
28 28 Brightness temperature (K)
29 29 Scaled radiance (Numeric)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.201.table b/definitions/grib2/tables/16/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/16/4.201.table
+++ b/definitions/grib2/tables/16/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.202.table b/definitions/grib2/tables/16/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/16/4.202.table
+++ b/definitions/grib2/tables/16/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.203.table b/definitions/grib2/tables/16/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/16/4.203.table
+++ b/definitions/grib2/tables/16/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.204.table b/definitions/grib2/tables/16/4.204.table
index 91bcf1814..ffbd89502 100644
--- a/definitions/grib2/tables/16/4.204.table
+++ b/definitions/grib2/tables/16/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.205.table b/definitions/grib2/tables/16/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/16/4.205.table
+++ b/definitions/grib2/tables/16/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.206.table b/definitions/grib2/tables/16/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/16/4.206.table
+++ b/definitions/grib2/tables/16/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.207.table b/definitions/grib2/tables/16/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/16/4.207.table
+++ b/definitions/grib2/tables/16/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.208.table b/definitions/grib2/tables/16/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/16/4.208.table
+++ b/definitions/grib2/tables/16/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.209.table b/definitions/grib2/tables/16/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/16/4.209.table
+++ b/definitions/grib2/tables/16/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.210.table b/definitions/grib2/tables/16/4.210.table
index 524a6ca73..791878469 100644
--- a/definitions/grib2/tables/16/4.210.table
+++ b/definitions/grib2/tables/16/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.211.table b/definitions/grib2/tables/16/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/16/4.211.table
+++ b/definitions/grib2/tables/16/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.212.table b/definitions/grib2/tables/16/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/16/4.212.table
+++ b/definitions/grib2/tables/16/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.213.table b/definitions/grib2/tables/16/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/16/4.213.table
+++ b/definitions/grib2/tables/16/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.215.table b/definitions/grib2/tables/16/4.215.table
index 034db72be..7888772d5 100644
--- a/definitions/grib2/tables/16/4.215.table
+++ b/definitions/grib2/tables/16/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.216.table b/definitions/grib2/tables/16/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/16/4.216.table
+++ b/definitions/grib2/tables/16/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.217.table b/definitions/grib2/tables/16/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/16/4.217.table
+++ b/definitions/grib2/tables/16/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.218.table b/definitions/grib2/tables/16/4.218.table
index c585bed96..0ad5f49ee 100644
--- a/definitions/grib2/tables/16/4.218.table
+++ b/definitions/grib2/tables/16/4.218.table
@@ -1,44 +1,44 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation/crops
-15 15 Permanent snow/ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-19 19 Warm liquid water cloud
-20 20 Supercooled liquid water cloud
-21 21 Mixed phase cloud
-22 22 Optically thin ice cloud
-23 23 Optically thick ice cloud
-24 24 Multi-layered cloud
-# 25-96 Reserved
-97 97 Snow/ice on land
-98 98 Snow/ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud/fog/Stratus
-102 102 Low cloud/Stratocumulus
-103 103 Low cloud/unknown type
-104 104 Medium cloud/Nimbostratus
-105 105 Medium cloud/Altostratus
-106 106 Medium cloud/unknown type
-107 107 High cloud/Cumulus
-108 108 High cloud/Cirrus
-109 109 High cloud/unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multi-layered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/Stratus
+102 102 Low cloud/Stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/Nimbostratus
+105 105 Medium cloud/Altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/Cumulus
+108 108 High cloud/Cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.219.table b/definitions/grib2/tables/16/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/16/4.219.table
+++ b/definitions/grib2/tables/16/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.220.table b/definitions/grib2/tables/16/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/16/4.220.table
+++ b/definitions/grib2/tables/16/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.221.table b/definitions/grib2/tables/16/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/16/4.221.table
+++ b/definitions/grib2/tables/16/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.222.table b/definitions/grib2/tables/16/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/16/4.222.table
+++ b/definitions/grib2/tables/16/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.223.table b/definitions/grib2/tables/16/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/16/4.223.table
+++ b/definitions/grib2/tables/16/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/16/4.224.table b/definitions/grib2/tables/16/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/16/4.224.table
+++ b/definitions/grib2/tables/16/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.227.table b/definitions/grib2/tables/16/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/16/4.227.table
+++ b/definitions/grib2/tables/16/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/16/4.234.table b/definitions/grib2/tables/16/4.234.table
index 9844a91d2..d8b3715b3 100644
--- a/definitions/grib2/tables/16/4.234.table
+++ b/definitions/grib2/tables/16/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/16/4.236.table b/definitions/grib2/tables/16/4.236.table
index 08c7f8d56..b667b65fc 100644
--- a/definitions/grib2/tables/16/4.236.table
+++ b/definitions/grib2/tables/16/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in PDT 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/16/4.240.table b/definitions/grib2/tables/16/4.240.table
index c12ebbb77..1838acfc0 100644
--- a/definitions/grib2/tables/16/4.240.table
+++ b/definitions/grib2/tables/16/4.240.table
@@ -1,12 +1,12 @@
# Code table 4.240 - Type of distribution function
-0 0 No specific distribution function given
-1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in meter
-2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
-3 3 Gaussian (Normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
-4 4 Gaussian (Normal) distribution with spatially variable concentration, mean diameter and variance
-5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+0 0 No specific distribution function given
+1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in meter
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (Normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (Normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
-# 8-49151 Reserved
-# 49152-65534 Reserved for local use
-65535 65535 Missing value
+# 8-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/16/4.241.table b/definitions/grib2/tables/16/4.241.table
index a037b4ba5..5ea7f775a 100644
--- a/definitions/grib2/tables/16/4.241.table
+++ b/definitions/grib2/tables/16/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/16/4.242.table b/definitions/grib2/tables/16/4.242.table
index 083f88c29..f6865957c 100644
--- a/definitions/grib2/tables/16/4.242.table
+++ b/definitions/grib2/tables/16/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GlobCover GCV2009
-2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Reserved
+1 1 Land use classes according to ESA-GlobCover GCV2009
+2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/16/4.243.table b/definitions/grib2/tables/16/4.243.table
index b39053311..24d21b719 100644
--- a/definitions/grib2/tables/16/4.243.table
+++ b/definitions/grib2/tables/16/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Freshwater flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rainfed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/16/4.3.table b/definitions/grib2/tables/16/4.3.table
index f205ea0c2..bcf8102a1 100644
--- a/definitions/grib2/tables/16/4.3.table
+++ b/definitions/grib2/tables/16/4.3.table
@@ -1,22 +1,22 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-16 16 Physical retrieval
-17 17 Regression analysis
-# 18-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+# 18-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.4.table b/definitions/grib2/tables/16/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/16/4.4.table
+++ b/definitions/grib2/tables/16/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.5.table b/definitions/grib2/tables/16/4.5.table
index 73c6eb7bf..8d4ae8d1a 100644
--- a/definitions/grib2/tables/16/4.5.table
+++ b/definitions/grib2/tables/16/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface (-)
2 2 Cloud base level (-)
3 3 Level of cloud tops (-)
@@ -12,11 +12,11 @@
10 10 Entire atmosphere (-)
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,18 +25,18 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level (-)
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
-# 115-116 Reserved
+# 115-116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level (-)
119 hpl Hybrid pressure level (-)
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
-# 151-159 Reserved
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
+# 151-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom (-)
@@ -45,18 +45,18 @@
165 165 Bottom of sediment layer penetrated by thermal wave (-)
166 sfc Mixing layer (-)
167 167 Bottom of root zone (-)
-# 168-173 Reserved
-174 sfc Top surface of ice on sea, lake or river
-175 175 Top surface of ice, under snow cover, on sea, lake or river
-176 176 Bottom surface (underside) ice on sea, lake or river
-177 sfc Deep soil (of indefinite depth)
-178 178 Reserved
-179 179 Top surface of glacier ice and inland ice
-180 180 Deep inland or glacier ice (of indefinite depth)
-181 181 Grid tile land fraction as a model surface
-182 182 Grid tile water fraction as a model surface
-183 183 Grid tile ice fraction on sea, lake or river as a model surface
-184 184 Grid tile glacier ice and inland ice fraction as a model surface
-# 185-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 168-173 Reserved
+174 sfc Top surface of ice on sea, lake or river
+175 175 Top surface of ice, under snow cover, on sea, lake or river
+176 176 Bottom surface (underside) ice on sea, lake or river
+177 sfc Deep soil (of indefinite depth)
+178 178 Reserved
+179 179 Top surface of glacier ice and inland ice
+180 180 Deep inland or glacier ice (of indefinite depth)
+181 181 Grid tile land fraction as a model surface
+182 182 Grid tile water fraction as a model surface
+183 183 Grid tile ice fraction on sea, lake or river as a model surface
+184 184 Grid tile glacier ice and inland ice fraction as a model surface
+# 185-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.6.table b/definitions/grib2/tables/16/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/16/4.6.table
+++ b/definitions/grib2/tables/16/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.7.table b/definitions/grib2/tables/16/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/16/4.7.table
+++ b/definitions/grib2/tables/16/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.8.table b/definitions/grib2/tables/16/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/16/4.8.table
+++ b/definitions/grib2/tables/16/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.9.table b/definitions/grib2/tables/16/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/16/4.9.table
+++ b/definitions/grib2/tables/16/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/4.91.table b/definitions/grib2/tables/16/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/16/4.91.table
+++ b/definitions/grib2/tables/16/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/16/5.0.table b/definitions/grib2/tables/16/5.0.table
index 5ec77ed0f..2795336df 100644
--- a/definitions/grib2/tables/16/5.0.table
+++ b/definitions/grib2/tables/16/5.0.table
@@ -1,23 +1,23 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
-# 42-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+# 42-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/16/5.1.table b/definitions/grib2/tables/16/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/16/5.1.table
+++ b/definitions/grib2/tables/16/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.2.table b/definitions/grib2/tables/16/5.2.table
index 40586a131..d77fdf4e7 100644
--- a/definitions/grib2/tables/16/5.2.table
+++ b/definitions/grib2/tables/16/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.3.table b/definitions/grib2/tables/16/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/16/5.3.table
+++ b/definitions/grib2/tables/16/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.4.table b/definitions/grib2/tables/16/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/16/5.4.table
+++ b/definitions/grib2/tables/16/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.40.table b/definitions/grib2/tables/16/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/16/5.40.table
+++ b/definitions/grib2/tables/16/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.5.table b/definitions/grib2/tables/16/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/16/5.5.table
+++ b/definitions/grib2/tables/16/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.6.table b/definitions/grib2/tables/16/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/16/5.6.table
+++ b/definitions/grib2/tables/16/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/16/5.7.table b/definitions/grib2/tables/16/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/16/5.7.table
+++ b/definitions/grib2/tables/16/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/16/6.0.table b/definitions/grib2/tables/16/6.0.table
index f539b26d7..a8f30f5a4 100644
--- a/definitions/grib2/tables/16/6.0.table
+++ b/definitions/grib2/tables/16/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/17/0.0.table b/definitions/grib2/tables/17/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/17/0.0.table
+++ b/definitions/grib2/tables/17/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/1.0.table b/definitions/grib2/tables/17/1.0.table
index d1134399b..893633977 100644
--- a/definitions/grib2/tables/17/1.0.table
+++ b/definitions/grib2/tables/17/1.0.table
@@ -1,22 +1,22 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
-10 10 Version implemented on 7 November 2012
-11 11 Version implemented on 8 May 2013
-12 12 Version implemented on 14 November 2013
-13 13 Version implemented on 7 May 2014
-14 14 Version implemented on 5 November 2014
-15 15 Version implemented on 6 May 2015
-16 16 Version implemented on 11 November 2015
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Version implemented on 6 May 2015
+16 16 Version implemented on 11 November 2015
17 17 Version implemented on 4 May 2016
18 18 Pre-operational to be implemented by next amendment
-# 19-254 Future versions
-255 255 Missing
+# 19-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/17/1.1.table b/definitions/grib2/tables/17/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/17/1.1.table
+++ b/definitions/grib2/tables/17/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/17/1.2.table b/definitions/grib2/tables/17/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/17/1.2.table
+++ b/definitions/grib2/tables/17/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/1.3.table b/definitions/grib2/tables/17/1.3.table
index 0c95269d5..c1a9a7b9d 100644
--- a/definitions/grib2/tables/17/1.3.table
+++ b/definitions/grib2/tables/17/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
-6 6 S2S operational products
-7 7 S2S test products
+6 6 S2S operational products
+7 7 S2S test products
8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA)
9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/1.4.table b/definitions/grib2/tables/17/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/17/1.4.table
+++ b/definitions/grib2/tables/17/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/17/1.5.table b/definitions/grib2/tables/17/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/17/1.5.table
+++ b/definitions/grib2/tables/17/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/17/1.6.table b/definitions/grib2/tables/17/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/17/1.6.table
+++ b/definitions/grib2/tables/17/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.0.table b/definitions/grib2/tables/17/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/17/3.0.table
+++ b/definitions/grib2/tables/17/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/17/3.10.table b/definitions/grib2/tables/17/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/17/3.10.table
+++ b/definitions/grib2/tables/17/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/17/3.11.table b/definitions/grib2/tables/17/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/17/3.11.table
+++ b/definitions/grib2/tables/17/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.15.table b/definitions/grib2/tables/17/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/17/3.15.table
+++ b/definitions/grib2/tables/17/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.2.table b/definitions/grib2/tables/17/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/17/3.2.table
+++ b/definitions/grib2/tables/17/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.20.table b/definitions/grib2/tables/17/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/17/3.20.table
+++ b/definitions/grib2/tables/17/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.21.table b/definitions/grib2/tables/17/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/17/3.21.table
+++ b/definitions/grib2/tables/17/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.3.table b/definitions/grib2/tables/17/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/17/3.3.table
+++ b/definitions/grib2/tables/17/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/17/3.4.table b/definitions/grib2/tables/17/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/17/3.4.table
+++ b/definitions/grib2/tables/17/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/17/3.5.table b/definitions/grib2/tables/17/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/17/3.5.table
+++ b/definitions/grib2/tables/17/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/17/3.7.table b/definitions/grib2/tables/17/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/17/3.7.table
+++ b/definitions/grib2/tables/17/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.8.table b/definitions/grib2/tables/17/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/17/3.8.table
+++ b/definitions/grib2/tables/17/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/3.9.table b/definitions/grib2/tables/17/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/17/3.9.table
+++ b/definitions/grib2/tables/17/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/17/4.0.table b/definitions/grib2/tables/17/4.0.table
index 802eca6bf..ff8a54b04 100644
--- a/definitions/grib2/tables/17/4.0.table
+++ b/definitions/grib2/tables/17/4.0.table
@@ -1,65 +1,65 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 49-50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-52 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
-56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters
-57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
-# 58-59 Reserved
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
-# 62-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 49-50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+52 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+# 58-59 Reserved
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+# 62-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/17/4.1.0.table b/definitions/grib2/tables/17/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/17/4.1.0.table
+++ b/definitions/grib2/tables/17/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.1.1.table b/definitions/grib2/tables/17/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/17/4.1.1.table
+++ b/definitions/grib2/tables/17/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.1.10.table b/definitions/grib2/tables/17/4.1.10.table
index a9b20eb9c..88d3c8743 100644
--- a/definitions/grib2/tables/17/4.1.10.table
+++ b/definitions/grib2/tables/17/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Subsurface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.1.192.table b/definitions/grib2/tables/17/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/17/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/17/4.1.2.table b/definitions/grib2/tables/17/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/17/4.1.2.table
+++ b/definitions/grib2/tables/17/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.1.3.table b/definitions/grib2/tables/17/4.1.3.table
index 7bf60d4a7..ba38c9301 100644
--- a/definitions/grib2/tables/17/4.1.3.table
+++ b/definitions/grib2/tables/17/4.1.3.table
@@ -1,11 +1,11 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-2 2 Cloud properties
-3 3 Flight rule conditions
-4 4 Volcanic ash
-5 5 Sea-surface temperature
-6 6 Solar radiation
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rule conditions
+4 4 Volcanic ash
+5 5 Sea-surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.10.table b/definitions/grib2/tables/17/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/17/4.10.table
+++ b/definitions/grib2/tables/17/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/17/4.11.table b/definitions/grib2/tables/17/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/17/4.11.table
+++ b/definitions/grib2/tables/17/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.12.table b/definitions/grib2/tables/17/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/17/4.12.table
+++ b/definitions/grib2/tables/17/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.13.table b/definitions/grib2/tables/17/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/17/4.13.table
+++ b/definitions/grib2/tables/17/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.14.table b/definitions/grib2/tables/17/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/17/4.14.table
+++ b/definitions/grib2/tables/17/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.15.table b/definitions/grib2/tables/17/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/17/4.15.table
+++ b/definitions/grib2/tables/17/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.0.table b/definitions/grib2/tables/17/4.2.0.0.table
index f24b8832c..4e2cf578e 100644
--- a/definitions/grib2/tables/17/4.2.0.0.table
+++ b/definitions/grib2/tables/17/4.2.0.0.table
@@ -27,6 +27,6 @@
25 25 Temperature tendency due to long-wave radiation, clear sky (K s-1)
26 26 Temperature tendency due to parameterization (K s-1)
27 27 Wet-bulb temperature (K)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.1.table b/definitions/grib2/tables/17/4.2.0.1.table
index 70001f746..004d11d25 100644
--- a/definitions/grib2/tables/17/4.2.0.1.table
+++ b/definitions/grib2/tables/17/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,7 +86,7 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
@@ -115,6 +115,6 @@
115 115 Mass density of liquid water coating on snow expressed as mass of liquid water per unit volume of air (kg m-3)
116 116 Specific mass of liquid water coating on snow expressed as mass of liquid water per unit mass of moist air (kg kg-1)
117 117 Mass mixing ratio of liquid water coating on snow expressed as mass of liquid water per unit mass of dry air (kg kg-1)
-# 118-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 118-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.13.table b/definitions/grib2/tables/17/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/17/4.2.0.13.table
+++ b/definitions/grib2/tables/17/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.14.table b/definitions/grib2/tables/17/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/17/4.2.0.14.table
+++ b/definitions/grib2/tables/17/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.15.table b/definitions/grib2/tables/17/4.2.0.15.table
index dfbc4d12f..8df082466 100644
--- a/definitions/grib2/tables/17/4.2.0.15.table
+++ b/definitions/grib2/tables/17/4.2.0.15.table
@@ -16,6 +16,6 @@
14 14 Reflectivity of hail (dB)
15 15 Hybrid scan reflectivity (dB)
16 16 Hybrid scan reflectivity height (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.16.table b/definitions/grib2/tables/17/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/17/4.2.0.16.table
+++ b/definitions/grib2/tables/17/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.18.table b/definitions/grib2/tables/17/4.2.0.18.table
index 9ae3539ca..16cfa489d 100644
--- a/definitions/grib2/tables/17/4.2.0.18.table
+++ b/definitions/grib2/tables/17/4.2.0.18.table
@@ -8,7 +8,7 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
@@ -16,6 +16,6 @@
14 14 Specific activity concentration (Bq kg-1)
15 15 Maximum of air concentration in layer (Bq m-3)
16 16 Height of maximum air concentration (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.19.table b/definitions/grib2/tables/17/4.2.0.19.table
index 8705082c5..e4db36249 100644
--- a/definitions/grib2/tables/17/4.2.0.19.table
+++ b/definitions/grib2/tables/17/4.2.0.19.table
@@ -31,6 +31,6 @@
29 29 Clear air turbulence (CAT) (m2/3 s-1)
30 30 Eddy dissipation parameter (m2/3 s-1)
31 31 Maximum of Eddy dissipation parameter in layer (m2/3 s-1)
-# 32-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.190.table b/definitions/grib2/tables/17/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/17/4.2.0.190.table
+++ b/definitions/grib2/tables/17/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.191.table b/definitions/grib2/tables/17/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/17/4.2.0.191.table
+++ b/definitions/grib2/tables/17/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.2.table b/definitions/grib2/tables/17/4.2.0.2.table
index 8ebc75124..7967bf7bf 100644
--- a/definitions/grib2/tables/17/4.2.0.2.table
+++ b/definitions/grib2/tables/17/4.2.0.2.table
@@ -44,6 +44,6 @@
42 42 v-component of geostrophic wind (m s-1)
43 43 Geostrophic wind direction (degree true)
44 44 Geostrophic wind speed (m s-1)
-# 45-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 45-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.20.table b/definitions/grib2/tables/17/4.2.0.20.table
index 983539bd2..38479b834 100644
--- a/definitions/grib2/tables/17/4.2.0.20.table
+++ b/definitions/grib2/tables/17/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -28,7 +28,7 @@
60 60 Aerosol specific number concentration (kg-1)
61 61 Maximum of mass density in layer (kg m-3)
62 62 Height of maximum mass density (m)
-# 63-99 Reserved
+# 63-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -41,6 +41,6 @@
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
111 111 Angstrom exponent (Numeric)
-# 112-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 112-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.3.table b/definitions/grib2/tables/17/4.2.0.3.table
index c7c6359d4..17e7f204f 100644
--- a/definitions/grib2/tables/17/4.2.0.3.table
+++ b/definitions/grib2/tables/17/4.2.0.3.table
@@ -30,6 +30,6 @@
28 28 Downdraught mass flux (kg m-2 s-1)
29 29 Updraught detrainment rate (kg m-3 s-1)
30 30 Downdraught detrainment rate (kg m-3 s-1)
-# 31-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 31-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.4.table b/definitions/grib2/tables/17/4.2.0.4.table
index 0a5ded2b5..f97270456 100644
--- a/definitions/grib2/tables/17/4.2.0.4.table
+++ b/definitions/grib2/tables/17/4.2.0.4.table
@@ -14,11 +14,11 @@
12 12 Downward UV radiation (W m-2)
13 13 Direct short-wave radiation flux (W m-2)
14 14 Diffuse short-wave radiation flux (W m-2)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
52 52 Downward short-wave radiation flux, clear sky (W m-2)
53 53 Upward short-wave radiation flux, clear sky (W m-2)
-# 54-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 54-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.5.table b/definitions/grib2/tables/17/4.2.0.5.table
index 4550220b6..ddfa634ce 100644
--- a/definitions/grib2/tables/17/4.2.0.5.table
+++ b/definitions/grib2/tables/17/4.2.0.5.table
@@ -8,6 +8,6 @@
6 6 Net long-wave radiation flux, clear sky (W m-2)
7 7 Brightness temperature (K)
8 8 Downward long-wave radiation flux, clear sky (W m-2)
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.6.table b/definitions/grib2/tables/17/4.2.0.6.table
index 4cec0c8aa..0450ec194 100644
--- a/definitions/grib2/tables/17/4.2.0.6.table
+++ b/definitions/grib2/tables/17/4.2.0.6.table
@@ -40,10 +40,10 @@
38 38 Mass density of cloud droplets (kg m-3)
39 39 Mass density of cloud ice (kg m-3)
40 40 Mass density of convective cloud water droplets (kg m-3)
-# 41-46 Reserved
+# 41-46 Reserved
47 47 Volume fraction of cloud water droplets (Numeric)
48 48 Volume fraction of cloud ice particles (Numeric)
49 49 Volume fraction of cloud (ice and/or water) (Numeric)
-# 50-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 50-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.0.7.table b/definitions/grib2/tables/17/4.2.0.7.table
index 6d0d87a46..3e653431f 100644
--- a/definitions/grib2/tables/17/4.2.0.7.table
+++ b/definitions/grib2/tables/17/4.2.0.7.table
@@ -13,11 +13,11 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraught helicity (m2 s-2)
16 16 Bulk Richardson number (Numeric)
17 17 Gradient Richardson number (Numeric)
18 18 Flux Richardson number (Numeric)
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.1.0.table b/definitions/grib2/tables/17/4.2.1.0.table
index bcd849c2e..a2660f4f3 100644
--- a/definitions/grib2/tables/17/4.2.1.0.table
+++ b/definitions/grib2/tables/17/4.2.1.0.table
@@ -16,6 +16,6 @@
14 14 Upstream accumulated precipitation (kg m-2)
15 15 Upstream accumulated snow melt (kg m-2)
16 16 Percolation rate (kg m-2 s-1)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.1.1.table b/definitions/grib2/tables/17/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/17/4.2.1.1.table
+++ b/definitions/grib2/tables/17/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.0.table b/definitions/grib2/tables/17/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/17/4.2.10.0.table
+++ b/definitions/grib2/tables/17/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.1.table b/definitions/grib2/tables/17/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/17/4.2.10.1.table
+++ b/definitions/grib2/tables/17/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.191.table b/definitions/grib2/tables/17/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/17/4.2.10.191.table
+++ b/definitions/grib2/tables/17/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.2.table b/definitions/grib2/tables/17/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/17/4.2.10.2.table
+++ b/definitions/grib2/tables/17/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.3.table b/definitions/grib2/tables/17/4.2.10.3.table
index f951bbe78..937720c93 100644
--- a/definitions/grib2/tables/17/4.2.10.3.table
+++ b/definitions/grib2/tables/17/4.2.10.3.table
@@ -1,6 +1,6 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.10.4.table b/definitions/grib2/tables/17/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/17/4.2.10.4.table
+++ b/definitions/grib2/tables/17/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.2.0.table b/definitions/grib2/tables/17/4.2.2.0.table
index 81548840c..b253cac22 100644
--- a/definitions/grib2/tables/17/4.2.2.0.table
+++ b/definitions/grib2/tables/17/4.2.2.0.table
@@ -38,6 +38,6 @@
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.2.3.table b/definitions/grib2/tables/17/4.2.2.3.table
index 690fab42b..2674e9f42 100644
--- a/definitions/grib2/tables/17/4.2.2.3.table
+++ b/definitions/grib2/tables/17/4.2.2.3.table
@@ -27,6 +27,6 @@
25 25 Snow depth at elevation bands (kg m-2)
26 26 Soil heat flux (W m-2)
27 27 Soil depth (m)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.2.4.table b/definitions/grib2/tables/17/4.2.2.4.table
index bb54fac22..ceb761557 100644
--- a/definitions/grib2/tables/17/4.2.2.4.table
+++ b/definitions/grib2/tables/17/4.2.2.4.table
@@ -11,6 +11,6 @@
9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric)
10 10 Fire Buildup Index (Canadian Forest Service) (Numeric)
11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.3.0.table b/definitions/grib2/tables/17/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/17/4.2.3.0.table
+++ b/definitions/grib2/tables/17/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.2.3.1.table b/definitions/grib2/tables/17/4.2.3.1.table
index 8e0793fe0..04cdde1f1 100644
--- a/definitions/grib2/tables/17/4.2.3.1.table
+++ b/definitions/grib2/tables/17/4.2.3.1.table
@@ -17,16 +17,16 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-26 Reserved
+23 23 Angstrom coefficient
+# 24-26 Reserved
27 27 Bidirectional reflectance factor (Numeric)
28 28 Brightness temperature (K)
29 29 Scaled radiance (Numeric)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.201.table b/definitions/grib2/tables/17/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/17/4.201.table
+++ b/definitions/grib2/tables/17/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.202.table b/definitions/grib2/tables/17/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/17/4.202.table
+++ b/definitions/grib2/tables/17/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.203.table b/definitions/grib2/tables/17/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/17/4.203.table
+++ b/definitions/grib2/tables/17/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.204.table b/definitions/grib2/tables/17/4.204.table
index 481372936..8e0be1f8c 100644
--- a/definitions/grib2/tables/17/4.204.table
+++ b/definitions/grib2/tables/17/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (6-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (6-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.205.table b/definitions/grib2/tables/17/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/17/4.205.table
+++ b/definitions/grib2/tables/17/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.206.table b/definitions/grib2/tables/17/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/17/4.206.table
+++ b/definitions/grib2/tables/17/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.207.table b/definitions/grib2/tables/17/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/17/4.207.table
+++ b/definitions/grib2/tables/17/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.208.table b/definitions/grib2/tables/17/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/17/4.208.table
+++ b/definitions/grib2/tables/17/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.209.table b/definitions/grib2/tables/17/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/17/4.209.table
+++ b/definitions/grib2/tables/17/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.210.table b/definitions/grib2/tables/17/4.210.table
index c01f4bcca..791878469 100644
--- a/definitions/grib2/tables/17/4.210.table
+++ b/definitions/grib2/tables/17/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
0 0 Contrail not present
1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.211.table b/definitions/grib2/tables/17/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/17/4.211.table
+++ b/definitions/grib2/tables/17/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.212.table b/definitions/grib2/tables/17/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/17/4.212.table
+++ b/definitions/grib2/tables/17/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.213.table b/definitions/grib2/tables/17/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/17/4.213.table
+++ b/definitions/grib2/tables/17/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.215.table b/definitions/grib2/tables/17/4.215.table
index 034db72be..7888772d5 100644
--- a/definitions/grib2/tables/17/4.215.table
+++ b/definitions/grib2/tables/17/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.216.table b/definitions/grib2/tables/17/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/17/4.216.table
+++ b/definitions/grib2/tables/17/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.217.table b/definitions/grib2/tables/17/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/17/4.217.table
+++ b/definitions/grib2/tables/17/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.218.table b/definitions/grib2/tables/17/4.218.table
index 7e3a69578..b5b15150b 100644
--- a/definitions/grib2/tables/17/4.218.table
+++ b/definitions/grib2/tables/17/4.218.table
@@ -1,44 +1,44 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation/crops
-15 15 Permanent snow/ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-19 19 Warm liquid water cloud
-20 20 Supercooled liquid water cloud
-21 21 Mixed-phase cloud
-22 22 Optically thin ice cloud
-23 23 Optically thick ice cloud
-24 24 Multilayered cloud
-# 25-96 Reserved
-97 97 Snow/ice on land
-98 98 Snow/ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud/fog/Stratus
-102 102 Low cloud/Stratocumulus
-103 103 Low cloud/unknown type
-104 104 Medium cloud/Nimbostratus
-105 105 Medium cloud/Altostratus
-106 106 Medium cloud/unknown type
-107 107 High cloud/Cumulus
-108 108 High cloud/Cirrus
-109 109 High cloud/unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed-phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multilayered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/Stratus
+102 102 Low cloud/Stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/Nimbostratus
+105 105 Medium cloud/Altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/Cumulus
+108 108 High cloud/Cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.219.table b/definitions/grib2/tables/17/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/17/4.219.table
+++ b/definitions/grib2/tables/17/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.220.table b/definitions/grib2/tables/17/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/17/4.220.table
+++ b/definitions/grib2/tables/17/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.221.table b/definitions/grib2/tables/17/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/17/4.221.table
+++ b/definitions/grib2/tables/17/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.222.table b/definitions/grib2/tables/17/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/17/4.222.table
+++ b/definitions/grib2/tables/17/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.223.table b/definitions/grib2/tables/17/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/17/4.223.table
+++ b/definitions/grib2/tables/17/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/17/4.224.table b/definitions/grib2/tables/17/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/17/4.224.table
+++ b/definitions/grib2/tables/17/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.227.table b/definitions/grib2/tables/17/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/17/4.227.table
+++ b/definitions/grib2/tables/17/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/17/4.234.table b/definitions/grib2/tables/17/4.234.table
index 816541ce9..3b05b4515 100644
--- a/definitions/grib2/tables/17/4.234.table
+++ b/definitions/grib2/tables/17/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/17/4.236.table b/definitions/grib2/tables/17/4.236.table
index fbe093ce9..9c58b488c 100644
--- a/definitions/grib2/tables/17/4.236.table
+++ b/definitions/grib2/tables/17/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/17/4.240.table b/definitions/grib2/tables/17/4.240.table
index ca335fea8..986557483 100644
--- a/definitions/grib2/tables/17/4.240.table
+++ b/definitions/grib2/tables/17/4.240.table
@@ -1,12 +1,12 @@
# Code table 4.240 - Type of distribution function
-0 0 No specific distribution function given
+0 0 No specific distribution function given
1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
-2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
-3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
-4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
-5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
-6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
-# 8-49151 Reserved
-# 49152-65534 Reserved for local use
-65535 65535 Missing value
+# 8-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/17/4.241.table b/definitions/grib2/tables/17/4.241.table
index a037b4ba5..5ea7f775a 100644
--- a/definitions/grib2/tables/17/4.241.table
+++ b/definitions/grib2/tables/17/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/17/4.242.table b/definitions/grib2/tables/17/4.242.table
index 083f88c29..f6865957c 100644
--- a/definitions/grib2/tables/17/4.242.table
+++ b/definitions/grib2/tables/17/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GlobCover GCV2009
-2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Reserved
+1 1 Land use classes according to ESA-GlobCover GCV2009
+2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/17/4.243.table b/definitions/grib2/tables/17/4.243.table
index b39053311..24d21b719 100644
--- a/definitions/grib2/tables/17/4.243.table
+++ b/definitions/grib2/tables/17/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Freshwater flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rainfed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/17/4.3.table b/definitions/grib2/tables/17/4.3.table
index f205ea0c2..bcf8102a1 100644
--- a/definitions/grib2/tables/17/4.3.table
+++ b/definitions/grib2/tables/17/4.3.table
@@ -1,22 +1,22 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-16 16 Physical retrieval
-17 17 Regression analysis
-# 18-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+# 18-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.4.table b/definitions/grib2/tables/17/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/17/4.4.table
+++ b/definitions/grib2/tables/17/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.5.table b/definitions/grib2/tables/17/4.5.table
index e70520c3b..c2771c9c6 100644
--- a/definitions/grib2/tables/17/4.5.table
+++ b/definitions/grib2/tables/17/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface (-)
2 2 Cloud base level (-)
3 3 Level of cloud tops (-)
@@ -16,11 +16,11 @@
14 14 Level of free convection (LFC)
15 15 Convective condensation level (CCL)
16 16 Level of neutral buoyancy or equilibrium level (LNB)
-# 17-19 Reserved
+# 17-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -29,19 +29,19 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level (-)
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
-# 115-116 Reserved
+# 115-116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level (-)
119 hpl Hybrid pressure level (-)
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
151 sol Soil level (Numeric)
-# 152-159 Reserved
+# 152-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom (-)
@@ -50,7 +50,7 @@
165 165 Bottom of sediment layer penetrated by thermal wave (-)
166 sfc Mixing layer (-)
167 167 Bottom of root zone (-)
-# 168-173 Reserved
+# 168-173 Reserved
174 sfc Top surface of ice on sea, lake or river
175 175 Top surface of ice, under snow cover, on sea, lake or river
176 176 Bottom surface (underside) ice on sea, lake or river
@@ -62,6 +62,6 @@
182 182 Grid tile water fraction as a model surface
183 183 Grid tile ice fraction on sea, lake or river as a model surface
184 184 Grid tile glacier ice and inland ice fraction as a model surface
-# 185-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 185-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.6.table b/definitions/grib2/tables/17/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/17/4.6.table
+++ b/definitions/grib2/tables/17/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.7.table b/definitions/grib2/tables/17/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/17/4.7.table
+++ b/definitions/grib2/tables/17/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.8.table b/definitions/grib2/tables/17/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/17/4.8.table
+++ b/definitions/grib2/tables/17/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.9.table b/definitions/grib2/tables/17/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/17/4.9.table
+++ b/definitions/grib2/tables/17/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/4.91.table b/definitions/grib2/tables/17/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/17/4.91.table
+++ b/definitions/grib2/tables/17/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/17/5.0.table b/definitions/grib2/tables/17/5.0.table
index 5ec77ed0f..2795336df 100644
--- a/definitions/grib2/tables/17/5.0.table
+++ b/definitions/grib2/tables/17/5.0.table
@@ -1,23 +1,23 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
-# 42-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+# 42-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/17/5.1.table b/definitions/grib2/tables/17/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/17/5.1.table
+++ b/definitions/grib2/tables/17/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.2.table b/definitions/grib2/tables/17/5.2.table
index 40586a131..d77fdf4e7 100644
--- a/definitions/grib2/tables/17/5.2.table
+++ b/definitions/grib2/tables/17/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.3.table b/definitions/grib2/tables/17/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/17/5.3.table
+++ b/definitions/grib2/tables/17/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.4.table b/definitions/grib2/tables/17/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/17/5.4.table
+++ b/definitions/grib2/tables/17/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.40.table b/definitions/grib2/tables/17/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/17/5.40.table
+++ b/definitions/grib2/tables/17/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.5.table b/definitions/grib2/tables/17/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/17/5.5.table
+++ b/definitions/grib2/tables/17/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.6.table b/definitions/grib2/tables/17/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/17/5.6.table
+++ b/definitions/grib2/tables/17/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/17/5.7.table b/definitions/grib2/tables/17/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/17/5.7.table
+++ b/definitions/grib2/tables/17/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/17/6.0.table b/definitions/grib2/tables/17/6.0.table
index 2a29aa285..a8f30f5a4 100644
--- a/definitions/grib2/tables/17/6.0.table
+++ b/definitions/grib2/tables/17/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
-0 0 A bit map applies to this product and is specified in this Section
+0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/18/0.0.table b/definitions/grib2/tables/18/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/18/0.0.table
+++ b/definitions/grib2/tables/18/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/1.0.table b/definitions/grib2/tables/18/1.0.table
index 8829485d9..0e6f26f8e 100644
--- a/definitions/grib2/tables/18/1.0.table
+++ b/definitions/grib2/tables/18/1.0.table
@@ -1,22 +1,22 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
-10 10 Version implemented on 7 November 2012
-11 11 Version implemented on 8 May 2013
-12 12 Version implemented on 14 November 2013
-13 13 Version implemented on 7 May 2014
-14 14 Version implemented on 5 November 2014
-15 15 Version implemented on 6 May 2015
-16 16 Version implemented on 11 November 2015
-17 17 Version implemented on 4 May 2016
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Version implemented on 6 May 2015
+16 16 Version implemented on 11 November 2015
+17 17 Version implemented on 4 May 2016
18 18 Version implemented on 2 November 2016
19 19 Pre-operational to be implemented by next amendment
# 20-254 Future versions
diff --git a/definitions/grib2/tables/18/1.1.table b/definitions/grib2/tables/18/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/18/1.1.table
+++ b/definitions/grib2/tables/18/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/18/1.2.table b/definitions/grib2/tables/18/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/18/1.2.table
+++ b/definitions/grib2/tables/18/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/1.3.table b/definitions/grib2/tables/18/1.3.table
index 0c95269d5..c1a9a7b9d 100644
--- a/definitions/grib2/tables/18/1.3.table
+++ b/definitions/grib2/tables/18/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
-6 6 S2S operational products
-7 7 S2S test products
+6 6 S2S operational products
+7 7 S2S test products
8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA)
9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/1.4.table b/definitions/grib2/tables/18/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/18/1.4.table
+++ b/definitions/grib2/tables/18/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/18/1.5.table b/definitions/grib2/tables/18/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/18/1.5.table
+++ b/definitions/grib2/tables/18/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/18/1.6.table b/definitions/grib2/tables/18/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/18/1.6.table
+++ b/definitions/grib2/tables/18/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.0.table b/definitions/grib2/tables/18/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/18/3.0.table
+++ b/definitions/grib2/tables/18/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/18/3.10.table b/definitions/grib2/tables/18/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/18/3.10.table
+++ b/definitions/grib2/tables/18/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/18/3.11.table b/definitions/grib2/tables/18/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/18/3.11.table
+++ b/definitions/grib2/tables/18/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.15.table b/definitions/grib2/tables/18/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/18/3.15.table
+++ b/definitions/grib2/tables/18/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.2.table b/definitions/grib2/tables/18/3.2.table
index 9238dc2a7..b9574a424 100644
--- a/definitions/grib2/tables/18/3.2.table
+++ b/definitions/grib2/tables/18/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.20.table b/definitions/grib2/tables/18/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/18/3.20.table
+++ b/definitions/grib2/tables/18/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.21.table b/definitions/grib2/tables/18/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/18/3.21.table
+++ b/definitions/grib2/tables/18/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.3.table b/definitions/grib2/tables/18/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/18/3.3.table
+++ b/definitions/grib2/tables/18/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/18/3.4.table b/definitions/grib2/tables/18/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/18/3.4.table
+++ b/definitions/grib2/tables/18/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/18/3.5.table b/definitions/grib2/tables/18/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/18/3.5.table
+++ b/definitions/grib2/tables/18/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/18/3.7.table b/definitions/grib2/tables/18/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/18/3.7.table
+++ b/definitions/grib2/tables/18/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.8.table b/definitions/grib2/tables/18/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/18/3.8.table
+++ b/definitions/grib2/tables/18/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/3.9.table b/definitions/grib2/tables/18/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/18/3.9.table
+++ b/definitions/grib2/tables/18/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/18/4.0.table b/definitions/grib2/tables/18/4.0.table
index 5ad2ed89a..aceff01af 100644
--- a/definitions/grib2/tables/18/4.0.table
+++ b/definitions/grib2/tables/18/4.0.table
@@ -1,72 +1,72 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+# 50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
# 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated)
-57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56)
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
# 62-69 Reserved
70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time
71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
# 74-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/18/4.1.0.table b/definitions/grib2/tables/18/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/18/4.1.0.table
+++ b/definitions/grib2/tables/18/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.1.1.table b/definitions/grib2/tables/18/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/18/4.1.1.table
+++ b/definitions/grib2/tables/18/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.1.10.table b/definitions/grib2/tables/18/4.1.10.table
index a9b20eb9c..88d3c8743 100644
--- a/definitions/grib2/tables/18/4.1.10.table
+++ b/definitions/grib2/tables/18/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Subsurface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.1.192.table b/definitions/grib2/tables/18/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/18/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/18/4.1.2.table b/definitions/grib2/tables/18/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/18/4.1.2.table
+++ b/definitions/grib2/tables/18/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.1.3.table b/definitions/grib2/tables/18/4.1.3.table
index 7bf60d4a7..ba38c9301 100644
--- a/definitions/grib2/tables/18/4.1.3.table
+++ b/definitions/grib2/tables/18/4.1.3.table
@@ -1,11 +1,11 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-2 2 Cloud properties
-3 3 Flight rule conditions
-4 4 Volcanic ash
-5 5 Sea-surface temperature
-6 6 Solar radiation
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rule conditions
+4 4 Volcanic ash
+5 5 Sea-surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.10.table b/definitions/grib2/tables/18/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/18/4.10.table
+++ b/definitions/grib2/tables/18/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/18/4.11.table b/definitions/grib2/tables/18/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/18/4.11.table
+++ b/definitions/grib2/tables/18/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.12.table b/definitions/grib2/tables/18/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/18/4.12.table
+++ b/definitions/grib2/tables/18/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.13.table b/definitions/grib2/tables/18/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/18/4.13.table
+++ b/definitions/grib2/tables/18/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.14.table b/definitions/grib2/tables/18/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/18/4.14.table
+++ b/definitions/grib2/tables/18/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.15.table b/definitions/grib2/tables/18/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/18/4.15.table
+++ b/definitions/grib2/tables/18/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.0.table b/definitions/grib2/tables/18/4.2.0.0.table
index 7201a8667..83b3e8ef1 100644
--- a/definitions/grib2/tables/18/4.2.0.0.table
+++ b/definitions/grib2/tables/18/4.2.0.0.table
@@ -29,6 +29,6 @@
27 27 Wet-bulb temperature (K)
28 28 Unbalanced component of temperature (K)
29 29 Temperature advection (K s-1)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.1.table b/definitions/grib2/tables/18/4.2.0.1.table
index c38d6a053..7d43684d3 100644
--- a/definitions/grib2/tables/18/4.2.0.1.table
+++ b/definitions/grib2/tables/18/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,7 +86,7 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
@@ -118,6 +118,6 @@
118 118 Unbalanced component of specific humidity (kg kg-1)
119 119 Unbalanced component of specific cloud liquid water content (kg kg-1)
120 120 Unbalanced component of specific cloud ice water content (kg kg-1)
-# 121-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 121-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.13.table b/definitions/grib2/tables/18/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/18/4.2.0.13.table
+++ b/definitions/grib2/tables/18/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.14.table b/definitions/grib2/tables/18/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/18/4.2.0.14.table
+++ b/definitions/grib2/tables/18/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.15.table b/definitions/grib2/tables/18/4.2.0.15.table
index dfbc4d12f..8df082466 100644
--- a/definitions/grib2/tables/18/4.2.0.15.table
+++ b/definitions/grib2/tables/18/4.2.0.15.table
@@ -16,6 +16,6 @@
14 14 Reflectivity of hail (dB)
15 15 Hybrid scan reflectivity (dB)
16 16 Hybrid scan reflectivity height (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.16.table b/definitions/grib2/tables/18/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/18/4.2.0.16.table
+++ b/definitions/grib2/tables/18/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.18.table b/definitions/grib2/tables/18/4.2.0.18.table
index 9d106f419..9ca6db61e 100644
--- a/definitions/grib2/tables/18/4.2.0.18.table
+++ b/definitions/grib2/tables/18/4.2.0.18.table
@@ -8,7 +8,7 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
@@ -18,6 +18,6 @@
16 16 Height of maximum air concentration (m)
17 17 Column-integrated air concentration (Bq m-2)
18 18 Column-averaged air concentration in layer (Bq m-3)
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.19.table b/definitions/grib2/tables/18/4.2.0.19.table
index 8705082c5..e4db36249 100644
--- a/definitions/grib2/tables/18/4.2.0.19.table
+++ b/definitions/grib2/tables/18/4.2.0.19.table
@@ -31,6 +31,6 @@
29 29 Clear air turbulence (CAT) (m2/3 s-1)
30 30 Eddy dissipation parameter (m2/3 s-1)
31 31 Maximum of Eddy dissipation parameter in layer (m2/3 s-1)
-# 32-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.190.table b/definitions/grib2/tables/18/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/18/4.2.0.190.table
+++ b/definitions/grib2/tables/18/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.191.table b/definitions/grib2/tables/18/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/18/4.2.0.191.table
+++ b/definitions/grib2/tables/18/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.2.table b/definitions/grib2/tables/18/4.2.0.2.table
index 5446262e6..8a70b2591 100644
--- a/definitions/grib2/tables/18/4.2.0.2.table
+++ b/definitions/grib2/tables/18/4.2.0.2.table
@@ -46,6 +46,6 @@
44 44 Geostrophic wind speed (m s-1)
45 45 Unbalanced component of divergence (s-1)
46 46 Vorticity advection (s-2)
-# 47-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 47-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.20.table b/definitions/grib2/tables/18/4.2.0.20.table
index efc427a19..bbdeef5b1 100644
--- a/definitions/grib2/tables/18/4.2.0.20.table
+++ b/definitions/grib2/tables/18/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -29,7 +29,7 @@
61 61 Maximum of mass density in layer (kg m-3)
62 62 Height of maximum mass density (m)
63 63 Column-averaged mass density in layer (kg m-3)
-# 64-99 Reserved
+# 64-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -42,6 +42,6 @@
109 109 Aerosol lidar extinction from satellite (/m)
110 110 Aerosol lidar extinction from the ground (/m)
111 111 Angstrom exponent (Numeric)
-# 112-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 112-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.3.table b/definitions/grib2/tables/18/4.2.0.3.table
index 34941dcab..52c421b97 100644
--- a/definitions/grib2/tables/18/4.2.0.3.table
+++ b/definitions/grib2/tables/18/4.2.0.3.table
@@ -31,6 +31,6 @@
29 29 Updraught detrainment rate (kg m-3 s-1)
30 30 Downdraught detrainment rate (kg m-3 s-1)
31 31 Unbalanced component of logarithm of surface pressure (-)
-# 32-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.4.table b/definitions/grib2/tables/18/4.2.0.4.table
index 0a5ded2b5..f97270456 100644
--- a/definitions/grib2/tables/18/4.2.0.4.table
+++ b/definitions/grib2/tables/18/4.2.0.4.table
@@ -14,11 +14,11 @@
12 12 Downward UV radiation (W m-2)
13 13 Direct short-wave radiation flux (W m-2)
14 14 Diffuse short-wave radiation flux (W m-2)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
52 52 Downward short-wave radiation flux, clear sky (W m-2)
53 53 Upward short-wave radiation flux, clear sky (W m-2)
-# 54-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 54-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.5.table b/definitions/grib2/tables/18/4.2.0.5.table
index 4550220b6..ddfa634ce 100644
--- a/definitions/grib2/tables/18/4.2.0.5.table
+++ b/definitions/grib2/tables/18/4.2.0.5.table
@@ -8,6 +8,6 @@
6 6 Net long-wave radiation flux, clear sky (W m-2)
7 7 Brightness temperature (K)
8 8 Downward long-wave radiation flux, clear sky (W m-2)
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.6.table b/definitions/grib2/tables/18/4.2.0.6.table
index 4cec0c8aa..0450ec194 100644
--- a/definitions/grib2/tables/18/4.2.0.6.table
+++ b/definitions/grib2/tables/18/4.2.0.6.table
@@ -40,10 +40,10 @@
38 38 Mass density of cloud droplets (kg m-3)
39 39 Mass density of cloud ice (kg m-3)
40 40 Mass density of convective cloud water droplets (kg m-3)
-# 41-46 Reserved
+# 41-46 Reserved
47 47 Volume fraction of cloud water droplets (Numeric)
48 48 Volume fraction of cloud ice particles (Numeric)
49 49 Volume fraction of cloud (ice and/or water) (Numeric)
-# 50-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 50-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.0.7.table b/definitions/grib2/tables/18/4.2.0.7.table
index 6d0d87a46..3e653431f 100644
--- a/definitions/grib2/tables/18/4.2.0.7.table
+++ b/definitions/grib2/tables/18/4.2.0.7.table
@@ -13,11 +13,11 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraught helicity (m2 s-2)
16 16 Bulk Richardson number (Numeric)
17 17 Gradient Richardson number (Numeric)
18 18 Flux Richardson number (Numeric)
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.1.0.table b/definitions/grib2/tables/18/4.2.1.0.table
index bcd849c2e..a2660f4f3 100644
--- a/definitions/grib2/tables/18/4.2.1.0.table
+++ b/definitions/grib2/tables/18/4.2.1.0.table
@@ -16,6 +16,6 @@
14 14 Upstream accumulated precipitation (kg m-2)
15 15 Upstream accumulated snow melt (kg m-2)
16 16 Percolation rate (kg m-2 s-1)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.1.1.table b/definitions/grib2/tables/18/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/18/4.2.1.1.table
+++ b/definitions/grib2/tables/18/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.0.table b/definitions/grib2/tables/18/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/18/4.2.10.0.table
+++ b/definitions/grib2/tables/18/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.1.table b/definitions/grib2/tables/18/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/18/4.2.10.1.table
+++ b/definitions/grib2/tables/18/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.191.table b/definitions/grib2/tables/18/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/18/4.2.10.191.table
+++ b/definitions/grib2/tables/18/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.2.table b/definitions/grib2/tables/18/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/18/4.2.10.2.table
+++ b/definitions/grib2/tables/18/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.3.table b/definitions/grib2/tables/18/4.2.10.3.table
index de7afd61c..b01d7ae46 100644
--- a/definitions/grib2/tables/18/4.2.10.3.table
+++ b/definitions/grib2/tables/18/4.2.10.3.table
@@ -2,6 +2,6 @@
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
2 2 Heat exchange coefficient (-)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.10.4.table b/definitions/grib2/tables/18/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/18/4.2.10.4.table
+++ b/definitions/grib2/tables/18/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.2.0.table b/definitions/grib2/tables/18/4.2.2.0.table
index 81548840c..b253cac22 100644
--- a/definitions/grib2/tables/18/4.2.2.0.table
+++ b/definitions/grib2/tables/18/4.2.2.0.table
@@ -38,6 +38,6 @@
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.2.3.table b/definitions/grib2/tables/18/4.2.2.3.table
index 690fab42b..2674e9f42 100644
--- a/definitions/grib2/tables/18/4.2.2.3.table
+++ b/definitions/grib2/tables/18/4.2.2.3.table
@@ -27,6 +27,6 @@
25 25 Snow depth at elevation bands (kg m-2)
26 26 Soil heat flux (W m-2)
27 27 Soil depth (m)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.2.4.table b/definitions/grib2/tables/18/4.2.2.4.table
index bb54fac22..ceb761557 100644
--- a/definitions/grib2/tables/18/4.2.2.4.table
+++ b/definitions/grib2/tables/18/4.2.2.4.table
@@ -11,6 +11,6 @@
9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric)
10 10 Fire Buildup Index (Canadian Forest Service) (Numeric)
11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.3.0.table b/definitions/grib2/tables/18/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/18/4.2.3.0.table
+++ b/definitions/grib2/tables/18/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.2.3.1.table b/definitions/grib2/tables/18/4.2.3.1.table
index 8e0793fe0..04cdde1f1 100644
--- a/definitions/grib2/tables/18/4.2.3.1.table
+++ b/definitions/grib2/tables/18/4.2.3.1.table
@@ -17,16 +17,16 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-26 Reserved
+23 23 Angstrom coefficient
+# 24-26 Reserved
27 27 Bidirectional reflectance factor (Numeric)
28 28 Brightness temperature (K)
29 29 Scaled radiance (Numeric)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.201.table b/definitions/grib2/tables/18/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/18/4.201.table
+++ b/definitions/grib2/tables/18/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.202.table b/definitions/grib2/tables/18/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/18/4.202.table
+++ b/definitions/grib2/tables/18/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.203.table b/definitions/grib2/tables/18/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/18/4.203.table
+++ b/definitions/grib2/tables/18/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.204.table b/definitions/grib2/tables/18/4.204.table
index 481372936..8e0be1f8c 100644
--- a/definitions/grib2/tables/18/4.204.table
+++ b/definitions/grib2/tables/18/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (6-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (6-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.205.table b/definitions/grib2/tables/18/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/18/4.205.table
+++ b/definitions/grib2/tables/18/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.206.table b/definitions/grib2/tables/18/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/18/4.206.table
+++ b/definitions/grib2/tables/18/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.207.table b/definitions/grib2/tables/18/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/18/4.207.table
+++ b/definitions/grib2/tables/18/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.208.table b/definitions/grib2/tables/18/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/18/4.208.table
+++ b/definitions/grib2/tables/18/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.209.table b/definitions/grib2/tables/18/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/18/4.209.table
+++ b/definitions/grib2/tables/18/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.210.table b/definitions/grib2/tables/18/4.210.table
index c01f4bcca..791878469 100644
--- a/definitions/grib2/tables/18/4.210.table
+++ b/definitions/grib2/tables/18/4.210.table
@@ -1,6 +1,6 @@
# Code table 4.210 - Contrail intensity
0 0 Contrail not present
1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.211.table b/definitions/grib2/tables/18/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/18/4.211.table
+++ b/definitions/grib2/tables/18/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.212.table b/definitions/grib2/tables/18/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/18/4.212.table
+++ b/definitions/grib2/tables/18/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.213.table b/definitions/grib2/tables/18/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/18/4.213.table
+++ b/definitions/grib2/tables/18/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.215.table b/definitions/grib2/tables/18/4.215.table
index 034db72be..7888772d5 100644
--- a/definitions/grib2/tables/18/4.215.table
+++ b/definitions/grib2/tables/18/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.216.table b/definitions/grib2/tables/18/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/18/4.216.table
+++ b/definitions/grib2/tables/18/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.217.table b/definitions/grib2/tables/18/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/18/4.217.table
+++ b/definitions/grib2/tables/18/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.218.table b/definitions/grib2/tables/18/4.218.table
index 7e3a69578..b5b15150b 100644
--- a/definitions/grib2/tables/18/4.218.table
+++ b/definitions/grib2/tables/18/4.218.table
@@ -1,44 +1,44 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation/crops
-15 15 Permanent snow/ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-19 19 Warm liquid water cloud
-20 20 Supercooled liquid water cloud
-21 21 Mixed-phase cloud
-22 22 Optically thin ice cloud
-23 23 Optically thick ice cloud
-24 24 Multilayered cloud
-# 25-96 Reserved
-97 97 Snow/ice on land
-98 98 Snow/ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud/fog/Stratus
-102 102 Low cloud/Stratocumulus
-103 103 Low cloud/unknown type
-104 104 Medium cloud/Nimbostratus
-105 105 Medium cloud/Altostratus
-106 106 Medium cloud/unknown type
-107 107 High cloud/Cumulus
-108 108 High cloud/Cirrus
-109 109 High cloud/unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed-phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multilayered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/Stratus
+102 102 Low cloud/Stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/Nimbostratus
+105 105 Medium cloud/Altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/Cumulus
+108 108 High cloud/Cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.219.table b/definitions/grib2/tables/18/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/18/4.219.table
+++ b/definitions/grib2/tables/18/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.220.table b/definitions/grib2/tables/18/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/18/4.220.table
+++ b/definitions/grib2/tables/18/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.221.table b/definitions/grib2/tables/18/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/18/4.221.table
+++ b/definitions/grib2/tables/18/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.222.table b/definitions/grib2/tables/18/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/18/4.222.table
+++ b/definitions/grib2/tables/18/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.223.table b/definitions/grib2/tables/18/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/18/4.223.table
+++ b/definitions/grib2/tables/18/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/18/4.224.table b/definitions/grib2/tables/18/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/18/4.224.table
+++ b/definitions/grib2/tables/18/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.227.table b/definitions/grib2/tables/18/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/18/4.227.table
+++ b/definitions/grib2/tables/18/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/18/4.234.table b/definitions/grib2/tables/18/4.234.table
index 816541ce9..3b05b4515 100644
--- a/definitions/grib2/tables/18/4.234.table
+++ b/definitions/grib2/tables/18/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/18/4.236.table b/definitions/grib2/tables/18/4.236.table
index fbe093ce9..9c58b488c 100644
--- a/definitions/grib2/tables/18/4.236.table
+++ b/definitions/grib2/tables/18/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/18/4.240.table b/definitions/grib2/tables/18/4.240.table
index 7313e6eec..986557483 100644
--- a/definitions/grib2/tables/18/4.240.table
+++ b/definitions/grib2/tables/18/4.240.table
@@ -1,12 +1,12 @@
# Code table 4.240 - Type of distribution function
-0 0 No specific distribution function given
-1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
-2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
-3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
-4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
-5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
-6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
+0 0 No specific distribution function given
+1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
-# 8-49151 Reserved
-# 49152-65534 Reserved for local use
-65535 65535 Missing value
+# 8-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/18/4.241.table b/definitions/grib2/tables/18/4.241.table
index a037b4ba5..5ea7f775a 100644
--- a/definitions/grib2/tables/18/4.241.table
+++ b/definitions/grib2/tables/18/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/18/4.242.table b/definitions/grib2/tables/18/4.242.table
index 083f88c29..f6865957c 100644
--- a/definitions/grib2/tables/18/4.242.table
+++ b/definitions/grib2/tables/18/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GlobCover GCV2009
-2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Reserved
+1 1 Land use classes according to ESA-GlobCover GCV2009
+2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/18/4.243.table b/definitions/grib2/tables/18/4.243.table
index b39053311..24d21b719 100644
--- a/definitions/grib2/tables/18/4.243.table
+++ b/definitions/grib2/tables/18/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Freshwater flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rainfed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/18/4.3.table b/definitions/grib2/tables/18/4.3.table
index 8ba9e08ab..cea1bef4f 100644
--- a/definitions/grib2/tables/18/4.3.table
+++ b/definitions/grib2/tables/18/4.3.table
@@ -1,23 +1,23 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-16 16 Physical retrieval
-17 17 Regression analysis
-18 18 Difference between two forecasts
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+18 18 Difference between two forecasts
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.4.table b/definitions/grib2/tables/18/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/18/4.4.table
+++ b/definitions/grib2/tables/18/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.5.table b/definitions/grib2/tables/18/4.5.table
index 2f1a8a8b7..33abd6293 100644
--- a/definitions/grib2/tables/18/4.5.table
+++ b/definitions/grib2/tables/18/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface (-)
2 2 Cloud base level (-)
3 3 Level of cloud tops (-)
@@ -16,15 +16,15 @@
14 14 Level of free convection (LFC)
15 15 Convective condensation level (CCL)
16 16 Level of neutral buoyancy or equilibrium level (LNB)
-# 17-19 Reserved
+# 17-19 Reserved
20 20 Isothermal level (K)
21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3)
22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3)
23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3)
24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3)
-# 25-99 Reserved
+# 25-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -33,20 +33,20 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level (-)
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
115 115 Sigma height level
# 116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level (-)
119 hpl Hybrid pressure level (-)
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
151 sol Soil level (Numeric)
-# 152-159 Reserved
+# 152-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom (-)
@@ -55,7 +55,7 @@
165 165 Bottom of sediment layer penetrated by thermal wave (-)
166 sfc Mixing layer (-)
167 167 Bottom of root zone (-)
-# 168-173 Reserved
+# 168-173 Reserved
174 sfc Top surface of ice on sea, lake or river
175 175 Top surface of ice, under snow cover, on sea, lake or river
176 176 Bottom surface (underside) ice on sea, lake or river
@@ -67,6 +67,6 @@
182 182 Grid tile water fraction as a model surface
183 183 Grid tile ice fraction on sea, lake or river as a model surface
184 184 Grid tile glacier ice and inland ice fraction as a model surface
-# 185-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 185-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.6.table b/definitions/grib2/tables/18/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/18/4.6.table
+++ b/definitions/grib2/tables/18/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.7.table b/definitions/grib2/tables/18/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/18/4.7.table
+++ b/definitions/grib2/tables/18/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.8.table b/definitions/grib2/tables/18/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/18/4.8.table
+++ b/definitions/grib2/tables/18/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.9.table b/definitions/grib2/tables/18/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/18/4.9.table
+++ b/definitions/grib2/tables/18/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/4.91.table b/definitions/grib2/tables/18/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/18/4.91.table
+++ b/definitions/grib2/tables/18/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/18/5.0.table b/definitions/grib2/tables/18/5.0.table
index 33597681b..4d6cc68c8 100644
--- a/definitions/grib2/tables/18/5.0.table
+++ b/definitions/grib2/tables/18/5.0.table
@@ -1,24 +1,24 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
42 42 Grid point data - CCSDS recommended lossless compression
-# 43-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+# 43-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/18/5.1.table b/definitions/grib2/tables/18/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/18/5.1.table
+++ b/definitions/grib2/tables/18/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.2.table b/definitions/grib2/tables/18/5.2.table
index 40586a131..d77fdf4e7 100644
--- a/definitions/grib2/tables/18/5.2.table
+++ b/definitions/grib2/tables/18/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.3.table b/definitions/grib2/tables/18/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/18/5.3.table
+++ b/definitions/grib2/tables/18/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.4.table b/definitions/grib2/tables/18/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/18/5.4.table
+++ b/definitions/grib2/tables/18/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.40.table b/definitions/grib2/tables/18/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/18/5.40.table
+++ b/definitions/grib2/tables/18/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.5.table b/definitions/grib2/tables/18/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/18/5.5.table
+++ b/definitions/grib2/tables/18/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.6.table b/definitions/grib2/tables/18/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/18/5.6.table
+++ b/definitions/grib2/tables/18/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/18/5.7.table b/definitions/grib2/tables/18/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/18/5.7.table
+++ b/definitions/grib2/tables/18/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/18/6.0.table b/definitions/grib2/tables/18/6.0.table
index 2a29aa285..a8f30f5a4 100644
--- a/definitions/grib2/tables/18/6.0.table
+++ b/definitions/grib2/tables/18/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
-0 0 A bit map applies to this product and is specified in this Section
+0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/19/0.0.table b/definitions/grib2/tables/19/0.0.table
index b24c50564..2c5afceb4 100644
--- a/definitions/grib2/tables/19/0.0.table
+++ b/definitions/grib2/tables/19/0.0.table
@@ -1,10 +1,10 @@
# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/1.0.table b/definitions/grib2/tables/19/1.0.table
index bd54828ee..06710c183 100644
--- a/definitions/grib2/tables/19/1.0.table
+++ b/definitions/grib2/tables/19/1.0.table
@@ -1,22 +1,22 @@
# Code table 1.0 - GRIB master tables version number
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Version implemented on 2 May 2012
-10 10 Version implemented on 7 November 2012
-11 11 Version implemented on 8 May 2013
-12 12 Version implemented on 14 November 2013
-13 13 Version implemented on 7 May 2014
-14 14 Version implemented on 5 November 2014
-15 15 Version implemented on 6 May 2015
-16 16 Version implemented on 11 November 2015
-17 17 Version implemented on 4 May 2016
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Version implemented on 6 May 2015
+16 16 Version implemented on 11 November 2015
+17 17 Version implemented on 4 May 2016
18 18 Version implemented on 2 November 2016
19 19 Version implemented on 3 May 2017
20 20 Pre-operational to be implemented by next amendment
diff --git a/definitions/grib2/tables/19/1.1.table b/definitions/grib2/tables/19/1.1.table
index d50f8fd72..f6d332005 100644
--- a/definitions/grib2/tables/19/1.1.table
+++ b/definitions/grib2/tables/19/1.1.table
@@ -1,4 +1,4 @@
# Code table 1.1 - GRIB local tables version number
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/19/1.2.table b/definitions/grib2/tables/19/1.2.table
index 934b70455..638f1efbb 100644
--- a/definitions/grib2/tables/19/1.2.table
+++ b/definitions/grib2/tables/19/1.2.table
@@ -1,8 +1,8 @@
# Code table 1.2 - Significance of reference time
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/1.3.table b/definitions/grib2/tables/19/1.3.table
index 0c95269d5..c1a9a7b9d 100644
--- a/definitions/grib2/tables/19/1.3.table
+++ b/definitions/grib2/tables/19/1.3.table
@@ -1,14 +1,14 @@
# Code table 1.3 - Production status of data
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
-6 6 S2S operational products
-7 7 S2S test products
+6 6 S2S operational products
+7 7 S2S test products
8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA)
9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/1.4.table b/definitions/grib2/tables/19/1.4.table
index 03203d874..877288c0e 100644
--- a/definitions/grib2/tables/19/1.4.table
+++ b/definitions/grib2/tables/19/1.4.table
@@ -1,13 +1,13 @@
# Code table 1.4 - Type of data
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/19/1.5.table b/definitions/grib2/tables/19/1.5.table
index b2cf9f087..533111959 100644
--- a/definitions/grib2/tables/19/1.5.table
+++ b/definitions/grib2/tables/19/1.5.table
@@ -1,7 +1,7 @@
# Code table 1.5 - Identification template number
-0 0 Calendar definition
-1 1 Paleontological offset
-2 2 Calendar definition and paleontological offset
-# 3-32767 Reserved
-# 32768-65534 Reserved for local use
-65535 65535 Missing
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/19/1.6.table b/definitions/grib2/tables/19/1.6.table
index 5db921990..bd46899a7 100644
--- a/definitions/grib2/tables/19/1.6.table
+++ b/definitions/grib2/tables/19/1.6.table
@@ -1,8 +1,8 @@
# Code table 1.6 - Type of calendar
-0 0 Gregorian
-1 1 360-day
-2 2 365-day
-3 3 Proleptic Gregorian
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.0.table b/definitions/grib2/tables/19/3.0.table
index 45187b80d..a442a06a0 100644
--- a/definitions/grib2/tables/19/3.0.table
+++ b/definitions/grib2/tables/19/3.0.table
@@ -1,6 +1,6 @@
# Code table 3.0 - Source of grid definition
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/19/3.10.table b/definitions/grib2/tables/19/3.10.table
index afa8843a7..1612d05e3 100644
--- a/definitions/grib2/tables/19/3.10.table
+++ b/definitions/grib2/tables/19/3.10.table
@@ -1,8 +1,8 @@
# Flag table 3.10 - Scanning mode for one diamond
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/19/3.11.table b/definitions/grib2/tables/19/3.11.table
index e516a2ab9..06ae10810 100644
--- a/definitions/grib2/tables/19/3.11.table
+++ b/definitions/grib2/tables/19/3.11.table
@@ -1,7 +1,7 @@
# Code table 3.11 - Interpretation of list of numbers at end of section 3
-0 0 There is no appended list
-1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
-2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
-3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
-# 4-254 Reserved
-255 255 Missing
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.15.table b/definitions/grib2/tables/19/3.15.table
index 331217ebe..6087902a3 100644
--- a/definitions/grib2/tables/19/3.15.table
+++ b/definitions/grib2/tables/19/3.15.table
@@ -1,23 +1,23 @@
# Code table 3.15 - Physical meaning of vertical coordinate
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.2.table b/definitions/grib2/tables/19/3.2.table
index 1b5c8241d..56ffdc08e 100644
--- a/definitions/grib2/tables/19/3.2.table
+++ b/definitions/grib2/tables/19/3.2.table
@@ -1,14 +1,14 @@
# Code table 3.2 - Shape of the Earth
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame
-9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.20.table b/definitions/grib2/tables/19/3.20.table
index efbf08d19..e2bb156ee 100644
--- a/definitions/grib2/tables/19/3.20.table
+++ b/definitions/grib2/tables/19/3.20.table
@@ -1,6 +1,6 @@
# Code table 3.20 - Type of horizontal line
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.21.table b/definitions/grib2/tables/19/3.21.table
index 88dbb9019..e001e1c8f 100644
--- a/definitions/grib2/tables/19/3.21.table
+++ b/definitions/grib2/tables/19/3.21.table
@@ -1,8 +1,8 @@
# Code table 3.21 - Vertical dimension coordinate values definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.3.table b/definitions/grib2/tables/19/3.3.table
index 5dd7c7001..25cb46a1d 100644
--- a/definitions/grib2/tables/19/3.3.table
+++ b/definitions/grib2/tables/19/3.3.table
@@ -1,9 +1,9 @@
# Flag table 3.3 - Resolution and component flags
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/19/3.4.table b/definitions/grib2/tables/19/3.4.table
index 897b813d7..43835c014 100644
--- a/definitions/grib2/tables/19/3.4.table
+++ b/definitions/grib2/tables/19/3.4.table
@@ -1,17 +1,17 @@
# Flag table 3.4 - Scanning mode
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-5 0 Points within odd rows are not offset in i (x) direction
-5 1 Points within odd rows are offset by Di/2 in i (x) direction
-6 0 Points within even rows are not offset in i (x) direction
-6 1 Points within even rows are offset by Di/2 in i (x) direction
-7 0 Points are not offset in j (y) direction
-7 1 Points are offset by Dj/2 in j (y) direction
-8 0 Rows have Ni grid points and columns have Nj grid points
-8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/19/3.5.table b/definitions/grib2/tables/19/3.5.table
index eabdde896..2f8ec82e3 100644
--- a/definitions/grib2/tables/19/3.5.table
+++ b/definitions/grib2/tables/19/3.5.table
@@ -1,5 +1,5 @@
# Flag table 3.5 - Projection centre
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/19/3.7.table b/definitions/grib2/tables/19/3.7.table
index 0a7d6efde..34c0de085 100644
--- a/definitions/grib2/tables/19/3.7.table
+++ b/definitions/grib2/tables/19/3.7.table
@@ -1,5 +1,5 @@
# Code table 3.7 - Spectral data representation mode
-0 0 Reserved
+0 0 Reserved
1 1 see separate doc or pdf file
-# 2-254 Reserved
-255 255 Missing
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.8.table b/definitions/grib2/tables/19/3.8.table
index 844e74235..578fab37f 100644
--- a/definitions/grib2/tables/19/3.8.table
+++ b/definitions/grib2/tables/19/3.8.table
@@ -1,7 +1,7 @@
# Code table 3.8 - Grid point position
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/3.9.table b/definitions/grib2/tables/19/3.9.table
index fd730bc64..ecd65514a 100644
--- a/definitions/grib2/tables/19/3.9.table
+++ b/definitions/grib2/tables/19/3.9.table
@@ -1,4 +1,4 @@
# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/19/4.0.table b/definitions/grib2/tables/19/4.0.table
index 906bf12d3..a37b59d09 100644
--- a/definitions/grib2/tables/19/4.0.table
+++ b/definitions/grib2/tables/19/4.0.table
@@ -1,75 +1,75 @@
# Code table 4.0 - Product definition template number
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
-8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
-34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-# 35-39 Reserved
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+# 35-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
-46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
-48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
-# 50 Reserved
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
# 52 Reserved
-53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
-54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
-55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
-56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated)
-57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
-58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
-59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56)
-60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
-# 62-66 Reserved
-67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
-68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated)
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56)
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+# 62-66 Reserved
+67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
+68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
# 69 Reserved
70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
-# 74-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+# 74-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
-# 32768-65534 Reserved for local use
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/19/4.1.0.table b/definitions/grib2/tables/19/4.1.0.table
index 04cfd7802..df58636d6 100644
--- a/definitions/grib2/tables/19/4.1.0.table
+++ b/definitions/grib2/tables/19/4.1.0.table
@@ -1,27 +1,27 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.1.1.table b/definitions/grib2/tables/19/4.1.1.table
index 7b22b6fed..05a854da0 100644
--- a/definitions/grib2/tables/19/4.1.1.table
+++ b/definitions/grib2/tables/19/4.1.1.table
@@ -1,7 +1,7 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.1.10.table b/definitions/grib2/tables/19/4.1.10.table
index a9b20eb9c..88d3c8743 100644
--- a/definitions/grib2/tables/19/4.1.10.table
+++ b/definitions/grib2/tables/19/4.1.10.table
@@ -1,10 +1,10 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Subsurface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.1.192.table b/definitions/grib2/tables/19/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/19/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/19/4.1.2.table b/definitions/grib2/tables/19/4.1.2.table
index 5b488fe9e..e74126645 100644
--- a/definitions/grib2/tables/19/4.1.2.table
+++ b/definitions/grib2/tables/19/4.1.2.table
@@ -1,9 +1,9 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.1.3.table b/definitions/grib2/tables/19/4.1.3.table
index 7bf60d4a7..ba38c9301 100644
--- a/definitions/grib2/tables/19/4.1.3.table
+++ b/definitions/grib2/tables/19/4.1.3.table
@@ -1,11 +1,11 @@
# Code table 4.1 - Parameter category by product discipline
-0 0 Image format products
-1 1 Quantitative products
-2 2 Cloud properties
-3 3 Flight rule conditions
-4 4 Volcanic ash
-5 5 Sea-surface temperature
-6 6 Solar radiation
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rule conditions
+4 4 Volcanic ash
+5 5 Sea-surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.10.table b/definitions/grib2/tables/19/4.10.table
index 1a92baaf6..8a390e4be 100644
--- a/definitions/grib2/tables/19/4.10.table
+++ b/definitions/grib2/tables/19/4.10.table
@@ -1,16 +1,16 @@
# Code table 4.10 - Type of statistical processing
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-11 11 Summation
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/19/4.11.table b/definitions/grib2/tables/19/4.11.table
index 7f404c849..01cc81303 100644
--- a/definitions/grib2/tables/19/4.11.table
+++ b/definitions/grib2/tables/19/4.11.table
@@ -1,10 +1,10 @@
# Code table 4.11 - Type of time intervals
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.12.table b/definitions/grib2/tables/19/4.12.table
index 03fd89b36..d42b47e96 100644
--- a/definitions/grib2/tables/19/4.12.table
+++ b/definitions/grib2/tables/19/4.12.table
@@ -1,7 +1,7 @@
# Code table 4.12 - Operating mode
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.13.table b/definitions/grib2/tables/19/4.13.table
index c92854eec..a0e28eac8 100644
--- a/definitions/grib2/tables/19/4.13.table
+++ b/definitions/grib2/tables/19/4.13.table
@@ -1,6 +1,6 @@
# Code table 4.13 - Quality control indicator
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.14.table b/definitions/grib2/tables/19/4.14.table
index a88cb93fa..d525b23b3 100644
--- a/definitions/grib2/tables/19/4.14.table
+++ b/definitions/grib2/tables/19/4.14.table
@@ -1,6 +1,6 @@
# Code table 4.14 - Clutter filter indicator
-0 0 No clutter filter used
-1 1 Clutter filter used
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.15.table b/definitions/grib2/tables/19/4.15.table
index 2e5f3dea3..7adddedb6 100644
--- a/definitions/grib2/tables/19/4.15.table
+++ b/definitions/grib2/tables/19/4.15.table
@@ -1,11 +1,11 @@
# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.0.table b/definitions/grib2/tables/19/4.2.0.0.table
index 7201a8667..83b3e8ef1 100644
--- a/definitions/grib2/tables/19/4.2.0.0.table
+++ b/definitions/grib2/tables/19/4.2.0.0.table
@@ -29,6 +29,6 @@
27 27 Wet-bulb temperature (K)
28 28 Unbalanced component of temperature (K)
29 29 Temperature advection (K s-1)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.1.table b/definitions/grib2/tables/19/4.2.0.1.table
index c38d6a053..7d43684d3 100644
--- a/definitions/grib2/tables/19/4.2.0.1.table
+++ b/definitions/grib2/tables/19/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,7 +86,7 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rainwater content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
@@ -118,6 +118,6 @@
118 118 Unbalanced component of specific humidity (kg kg-1)
119 119 Unbalanced component of specific cloud liquid water content (kg kg-1)
120 120 Unbalanced component of specific cloud ice water content (kg kg-1)
-# 121-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 121-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.13.table b/definitions/grib2/tables/19/4.2.0.13.table
index 5086101ad..3f5c30675 100644
--- a/definitions/grib2/tables/19/4.2.0.13.table
+++ b/definitions/grib2/tables/19/4.2.0.13.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.14.table b/definitions/grib2/tables/19/4.2.0.14.table
index 215884737..97fb38c8b 100644
--- a/definitions/grib2/tables/19/4.2.0.14.table
+++ b/definitions/grib2/tables/19/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.15.table b/definitions/grib2/tables/19/4.2.0.15.table
index dfbc4d12f..8df082466 100644
--- a/definitions/grib2/tables/19/4.2.0.15.table
+++ b/definitions/grib2/tables/19/4.2.0.15.table
@@ -16,6 +16,6 @@
14 14 Reflectivity of hail (dB)
15 15 Hybrid scan reflectivity (dB)
16 16 Hybrid scan reflectivity height (m)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.16.table b/definitions/grib2/tables/19/4.2.0.16.table
index 0c240a853..9499d9333 100644
--- a/definitions/grib2/tables/19/4.2.0.16.table
+++ b/definitions/grib2/tables/19/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.18.table b/definitions/grib2/tables/19/4.2.0.18.table
index 9d106f419..9ca6db61e 100644
--- a/definitions/grib2/tables/19/4.2.0.18.table
+++ b/definitions/grib2/tables/19/4.2.0.18.table
@@ -8,7 +8,7 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
@@ -18,6 +18,6 @@
16 16 Height of maximum air concentration (m)
17 17 Column-integrated air concentration (Bq m-2)
18 18 Column-averaged air concentration in layer (Bq m-3)
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.19.table b/definitions/grib2/tables/19/4.2.0.19.table
index 1d7b4da91..b27eb2dbe 100644
--- a/definitions/grib2/tables/19/4.2.0.19.table
+++ b/definitions/grib2/tables/19/4.2.0.19.table
@@ -31,6 +31,6 @@
29 29 Clear air turbulence (CAT) (m2/3 s-1)
30 30 Eddy dissipation parameter (m2/3 s-1)
31 31 Maximum of eddy dissipation parameter in layer (m2/3 s-1)
-# 32-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.190.table b/definitions/grib2/tables/19/4.2.0.190.table
index de621a924..a0d6ba0ac 100644
--- a/definitions/grib2/tables/19/4.2.0.190.table
+++ b/definitions/grib2/tables/19/4.2.0.190.table
@@ -1,5 +1,5 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.191.table b/definitions/grib2/tables/19/4.2.0.191.table
index e3bba0ebe..b3a7092ea 100644
--- a/definitions/grib2/tables/19/4.2.0.191.table
+++ b/definitions/grib2/tables/19/4.2.0.191.table
@@ -3,6 +3,6 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.2.table b/definitions/grib2/tables/19/4.2.0.2.table
index 5446262e6..8a70b2591 100644
--- a/definitions/grib2/tables/19/4.2.0.2.table
+++ b/definitions/grib2/tables/19/4.2.0.2.table
@@ -46,6 +46,6 @@
44 44 Geostrophic wind speed (m s-1)
45 45 Unbalanced component of divergence (s-1)
46 46 Vorticity advection (s-2)
-# 47-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 47-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.20.table b/definitions/grib2/tables/19/4.2.0.20.table
index 3278506dd..0f95689f8 100644
--- a/definitions/grib2/tables/19/4.2.0.20.table
+++ b/definitions/grib2/tables/19/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -29,7 +29,7 @@
61 61 Maximum of mass density in layer (kg m-3)
62 62 Height of maximum mass density (m)
63 63 Column-averaged mass density in layer (kg m-3)
-# 64-99 Reserved
+# 64-99 Reserved
100 100 Surface area density (aerosol) (m-1)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -42,6 +42,6 @@
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
111 111 Angstrom exponent (Numeric)
-# 112-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 112-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.3.table b/definitions/grib2/tables/19/4.2.0.3.table
index 34941dcab..52c421b97 100644
--- a/definitions/grib2/tables/19/4.2.0.3.table
+++ b/definitions/grib2/tables/19/4.2.0.3.table
@@ -31,6 +31,6 @@
29 29 Updraught detrainment rate (kg m-3 s-1)
30 30 Downdraught detrainment rate (kg m-3 s-1)
31 31 Unbalanced component of logarithm of surface pressure (-)
-# 32-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.4.table b/definitions/grib2/tables/19/4.2.0.4.table
index 0a5ded2b5..f97270456 100644
--- a/definitions/grib2/tables/19/4.2.0.4.table
+++ b/definitions/grib2/tables/19/4.2.0.4.table
@@ -14,11 +14,11 @@
12 12 Downward UV radiation (W m-2)
13 13 Direct short-wave radiation flux (W m-2)
14 14 Diffuse short-wave radiation flux (W m-2)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
52 52 Downward short-wave radiation flux, clear sky (W m-2)
53 53 Upward short-wave radiation flux, clear sky (W m-2)
-# 54-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 54-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.5.table b/definitions/grib2/tables/19/4.2.0.5.table
index 4550220b6..ddfa634ce 100644
--- a/definitions/grib2/tables/19/4.2.0.5.table
+++ b/definitions/grib2/tables/19/4.2.0.5.table
@@ -8,6 +8,6 @@
6 6 Net long-wave radiation flux, clear sky (W m-2)
7 7 Brightness temperature (K)
8 8 Downward long-wave radiation flux, clear sky (W m-2)
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.6.table b/definitions/grib2/tables/19/4.2.0.6.table
index 4cec0c8aa..0450ec194 100644
--- a/definitions/grib2/tables/19/4.2.0.6.table
+++ b/definitions/grib2/tables/19/4.2.0.6.table
@@ -40,10 +40,10 @@
38 38 Mass density of cloud droplets (kg m-3)
39 39 Mass density of cloud ice (kg m-3)
40 40 Mass density of convective cloud water droplets (kg m-3)
-# 41-46 Reserved
+# 41-46 Reserved
47 47 Volume fraction of cloud water droplets (Numeric)
48 48 Volume fraction of cloud ice particles (Numeric)
49 49 Volume fraction of cloud (ice and/or water) (Numeric)
-# 50-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 50-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.0.7.table b/definitions/grib2/tables/19/4.2.0.7.table
index aff6a6516..6289d8b20 100644
--- a/definitions/grib2/tables/19/4.2.0.7.table
+++ b/definitions/grib2/tables/19/4.2.0.7.table
@@ -13,12 +13,12 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraught helicity (m2 s-2)
16 16 Bulk Richardson number (Numeric)
17 17 Gradient Richardson number (Numeric)
18 18 Flux Richardson number (Numeric)
19 19 Convective available potential energy - shear (m2 s-2)
-# 20-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 20-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.1.0.table b/definitions/grib2/tables/19/4.2.1.0.table
index bcd849c2e..a2660f4f3 100644
--- a/definitions/grib2/tables/19/4.2.1.0.table
+++ b/definitions/grib2/tables/19/4.2.1.0.table
@@ -16,6 +16,6 @@
14 14 Upstream accumulated precipitation (kg m-2)
15 15 Upstream accumulated snow melt (kg m-2)
16 16 Percolation rate (kg m-2 s-1)
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.1.1.table b/definitions/grib2/tables/19/4.2.1.1.table
index b488eb0bd..171da3958 100644
--- a/definitions/grib2/tables/19/4.2.1.1.table
+++ b/definitions/grib2/tables/19/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.0.table b/definitions/grib2/tables/19/4.2.10.0.table
index 095f51bdf..3611abd9a 100644
--- a/definitions/grib2/tables/19/4.2.10.0.table
+++ b/definitions/grib2/tables/19/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea-surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (/s)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.1.table b/definitions/grib2/tables/19/4.2.10.1.table
index 5959bfa28..f0a073c00 100644
--- a/definitions/grib2/tables/19/4.2.10.1.table
+++ b/definitions/grib2/tables/19/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.191.table b/definitions/grib2/tables/19/4.2.10.191.table
index 524929e78..1ebf85006 100644
--- a/definitions/grib2/tables/19/4.2.10.191.table
+++ b/definitions/grib2/tables/19/4.2.10.191.table
@@ -1,8 +1,8 @@
# Code table 4.2 - Parameter number by product discipline and parameter category
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-2 2 Reserved
+2 2 Reserved
3 3 Days since last observation (d)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.2.table b/definitions/grib2/tables/19/4.2.10.2.table
index 6797062ac..4633bad4f 100644
--- a/definitions/grib2/tables/19/4.2.10.2.table
+++ b/definitions/grib2/tables/19/4.2.10.2.table
@@ -12,6 +12,6 @@
10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
12 12 Compressive ice strength (N/m)
-# 13-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.3.table b/definitions/grib2/tables/19/4.2.10.3.table
index de7afd61c..b01d7ae46 100644
--- a/definitions/grib2/tables/19/4.2.10.3.table
+++ b/definitions/grib2/tables/19/4.2.10.3.table
@@ -2,6 +2,6 @@
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
2 2 Heat exchange coefficient (-)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.10.4.table b/definitions/grib2/tables/19/4.2.10.4.table
index 54774f1b7..d5615ae26 100644
--- a/definitions/grib2/tables/19/4.2.10.4.table
+++ b/definitions/grib2/tables/19/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2/s)
6 6 Ocean vertical momentum diffusivity (m2/s)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (/m)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.2.0.table b/definitions/grib2/tables/19/4.2.2.0.table
index 81548840c..b253cac22 100644
--- a/definitions/grib2/tables/19/4.2.2.0.table
+++ b/definitions/grib2/tables/19/4.2.2.0.table
@@ -38,6 +38,6 @@
36 36 Tile fraction (Proportion)
37 37 Tile percentage (%)
38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
-# 39-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 39-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.2.3.table b/definitions/grib2/tables/19/4.2.2.3.table
index 690fab42b..2674e9f42 100644
--- a/definitions/grib2/tables/19/4.2.2.3.table
+++ b/definitions/grib2/tables/19/4.2.2.3.table
@@ -27,6 +27,6 @@
25 25 Snow depth at elevation bands (kg m-2)
26 26 Soil heat flux (W m-2)
27 27 Soil depth (m)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.2.4.table b/definitions/grib2/tables/19/4.2.2.4.table
index bb54fac22..ceb761557 100644
--- a/definitions/grib2/tables/19/4.2.2.4.table
+++ b/definitions/grib2/tables/19/4.2.2.4.table
@@ -11,6 +11,6 @@
9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric)
10 10 Fire Buildup Index (Canadian Forest Service) (Numeric)
11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.3.0.table b/definitions/grib2/tables/19/4.2.3.0.table
index c0ffa29f5..80a829673 100644
--- a/definitions/grib2/tables/19/4.2.3.0.table
+++ b/definitions/grib2/tables/19/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.2.3.1.table b/definitions/grib2/tables/19/4.2.3.1.table
index 8e0793fe0..04cdde1f1 100644
--- a/definitions/grib2/tables/19/4.2.3.1.table
+++ b/definitions/grib2/tables/19/4.2.3.1.table
@@ -17,16 +17,16 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-26 Reserved
+23 23 Angstrom coefficient
+# 24-26 Reserved
27 27 Bidirectional reflectance factor (Numeric)
28 28 Brightness temperature (K)
29 29 Scaled radiance (Numeric)
-# 30-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.201.table b/definitions/grib2/tables/19/4.201.table
index 47f1b486f..fa173c4e0 100644
--- a/definitions/grib2/tables/19/4.201.table
+++ b/definitions/grib2/tables/19/4.201.table
@@ -1,15 +1,15 @@
# Code table 4.201 - Precipitation type
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-6 6 Wet snow
-7 7 Mixture of rain and snow
-8 8 Ice pellets
-9 9 Graupel
-10 10 Hail
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.202.table b/definitions/grib2/tables/19/4.202.table
index 438502ff9..7f3c8f6cf 100644
--- a/definitions/grib2/tables/19/4.202.table
+++ b/definitions/grib2/tables/19/4.202.table
@@ -1,4 +1,4 @@
# Code table 4.202 - Precipitable water category
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.203.table b/definitions/grib2/tables/19/4.203.table
index 8a9aedf7a..cf5eb6bdc 100644
--- a/definitions/grib2/tables/19/4.203.table
+++ b/definitions/grib2/tables/19/4.203.table
@@ -1,26 +1,26 @@
# Code table 4.203 - Cloud type
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.204.table b/definitions/grib2/tables/19/4.204.table
index 481372936..8e0be1f8c 100644
--- a/definitions/grib2/tables/19/4.204.table
+++ b/definitions/grib2/tables/19/4.204.table
@@ -1,9 +1,9 @@
# Code table 4.204 - Thunderstorm coverage
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (6-45%)
-4 4 Numerous (> 45%)
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (6-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.205.table b/definitions/grib2/tables/19/4.205.table
index 5b4484dfd..c40c7f47b 100644
--- a/definitions/grib2/tables/19/4.205.table
+++ b/definitions/grib2/tables/19/4.205.table
@@ -1,6 +1,6 @@
# Code table 4.205 - Presence of aerosol
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.206.table b/definitions/grib2/tables/19/4.206.table
index 02c3dfdf9..76472c261 100644
--- a/definitions/grib2/tables/19/4.206.table
+++ b/definitions/grib2/tables/19/4.206.table
@@ -1,6 +1,6 @@
# Code table 4.206 - Volcanic ash
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.207.table b/definitions/grib2/tables/19/4.207.table
index 8ddb2e048..b6392fca0 100644
--- a/definitions/grib2/tables/19/4.207.table
+++ b/definitions/grib2/tables/19/4.207.table
@@ -1,10 +1,10 @@
# Code table 4.207 - Icing
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.208.table b/definitions/grib2/tables/19/4.208.table
index b83685a1a..4361d38c0 100644
--- a/definitions/grib2/tables/19/4.208.table
+++ b/definitions/grib2/tables/19/4.208.table
@@ -1,9 +1,9 @@
# Code table 4.208 - Turbulence
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.209.table b/definitions/grib2/tables/19/4.209.table
index cb7617071..39ea549ac 100644
--- a/definitions/grib2/tables/19/4.209.table
+++ b/definitions/grib2/tables/19/4.209.table
@@ -1,9 +1,9 @@
# Code table 4.209 - Planetary boundary-layer regime
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.210.table b/definitions/grib2/tables/19/4.210.table
index ae569a8ba..791878469 100644
--- a/definitions/grib2/tables/19/4.210.table
+++ b/definitions/grib2/tables/19/4.210.table
@@ -3,4 +3,4 @@
1 1 Contrail present
# 2-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.211.table b/definitions/grib2/tables/19/4.211.table
index 098eb2d43..2a28a84d9 100644
--- a/definitions/grib2/tables/19/4.211.table
+++ b/definitions/grib2/tables/19/4.211.table
@@ -1,7 +1,7 @@
# Code table 4.211 - Contrail engine type
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.212.table b/definitions/grib2/tables/19/4.212.table
index 1a085b88d..6a3dcf88c 100644
--- a/definitions/grib2/tables/19/4.212.table
+++ b/definitions/grib2/tables/19/4.212.table
@@ -1,18 +1,18 @@
# Code table 4.212 - Land use
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.213.table b/definitions/grib2/tables/19/4.213.table
index c65784a00..68d627af6 100644
--- a/definitions/grib2/tables/19/4.213.table
+++ b/definitions/grib2/tables/19/4.213.table
@@ -1,16 +1,16 @@
# Code table 4.213 - Soil type
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.215.table b/definitions/grib2/tables/19/4.215.table
index 034db72be..7888772d5 100644
--- a/definitions/grib2/tables/19/4.215.table
+++ b/definitions/grib2/tables/19/4.215.table
@@ -1,9 +1,9 @@
# Code table 4.215 - Remotely sensed snow coverage
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.216.table b/definitions/grib2/tables/19/4.216.table
index 5d1460cef..b51b358f4 100644
--- a/definitions/grib2/tables/19/4.216.table
+++ b/definitions/grib2/tables/19/4.216.table
@@ -1,5 +1,5 @@
# Code table 4.216 - Elevation of snow-covered terrain
-# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.217.table b/definitions/grib2/tables/19/4.217.table
index a4452182c..a700410d5 100644
--- a/definitions/grib2/tables/19/4.217.table
+++ b/definitions/grib2/tables/19/4.217.table
@@ -1,8 +1,8 @@
# Code table 4.217 - Cloud mask type
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.218.table b/definitions/grib2/tables/19/4.218.table
index 7e3a69578..b5b15150b 100644
--- a/definitions/grib2/tables/19/4.218.table
+++ b/definitions/grib2/tables/19/4.218.table
@@ -1,44 +1,44 @@
# Code table 4.218 - Pixel scene type
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation/crops
-15 15 Permanent snow/ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-19 19 Warm liquid water cloud
-20 20 Supercooled liquid water cloud
-21 21 Mixed-phase cloud
-22 22 Optically thin ice cloud
-23 23 Optically thick ice cloud
-24 24 Multilayered cloud
-# 25-96 Reserved
-97 97 Snow/ice on land
-98 98 Snow/ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud/fog/Stratus
-102 102 Low cloud/Stratocumulus
-103 103 Low cloud/unknown type
-104 104 Medium cloud/Nimbostratus
-105 105 Medium cloud/Altostratus
-106 106 Medium cloud/unknown type
-107 107 High cloud/Cumulus
-108 108 High cloud/Cirrus
-109 109 High cloud/unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed-phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multilayered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/Stratus
+102 102 Low cloud/Stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/Nimbostratus
+105 105 Medium cloud/Altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/Cumulus
+108 108 High cloud/Cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.219.table b/definitions/grib2/tables/19/4.219.table
index 86df0522e..9979f50ad 100644
--- a/definitions/grib2/tables/19/4.219.table
+++ b/definitions/grib2/tables/19/4.219.table
@@ -1,8 +1,8 @@
# Code table 4.219 - Cloud top height quality indicator
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.220.table b/definitions/grib2/tables/19/4.220.table
index 93e841f8b..88e869e42 100644
--- a/definitions/grib2/tables/19/4.220.table
+++ b/definitions/grib2/tables/19/4.220.table
@@ -1,6 +1,6 @@
# Code table 4.220 - Horizontal dimension processed
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.221.table b/definitions/grib2/tables/19/4.221.table
index 8448533d7..011cc3518 100644
--- a/definitions/grib2/tables/19/4.221.table
+++ b/definitions/grib2/tables/19/4.221.table
@@ -1,6 +1,6 @@
# Code table 4.221 - Treatment of missing data
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.222.table b/definitions/grib2/tables/19/4.222.table
index 57f113014..558d947ac 100644
--- a/definitions/grib2/tables/19/4.222.table
+++ b/definitions/grib2/tables/19/4.222.table
@@ -1,6 +1,6 @@
# Code table 4.222 - Categorical result
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.223.table b/definitions/grib2/tables/19/4.223.table
index f0deb076a..572c4e7a8 100644
--- a/definitions/grib2/tables/19/4.223.table
+++ b/definitions/grib2/tables/19/4.223.table
@@ -1,5 +1,5 @@
# Code table 4.223 - Fire detection indicator
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/19/4.224.table b/definitions/grib2/tables/19/4.224.table
index e87cde4bb..014f56e23 100644
--- a/definitions/grib2/tables/19/4.224.table
+++ b/definitions/grib2/tables/19/4.224.table
@@ -1,18 +1,18 @@
# Code table 4.224 - Categorical outlook
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.227.table b/definitions/grib2/tables/19/4.227.table
index 27c76553d..48c3b7633 100644
--- a/definitions/grib2/tables/19/4.227.table
+++ b/definitions/grib2/tables/19/4.227.table
@@ -1,9 +1,9 @@
# Code table 4.227 - Icing scenario (weather/cloud classification)
-0 0 None
-1 1 General
-2 2 Convective
-3 3 Stratiform
-4 4 Freezing
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/19/4.234.table b/definitions/grib2/tables/19/4.234.table
index 816541ce9..3b05b4515 100644
--- a/definitions/grib2/tables/19/4.234.table
+++ b/definitions/grib2/tables/19/4.234.table
@@ -1,21 +1,21 @@
# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Crops, mixed farming
-2 2 Short grass
-3 3 Evergreen needleleaf trees
-4 4 Deciduous needleleaf trees
-5 5 Deciduous broadleaf trees
-6 6 Evergreen broadleaf trees
-7 7 Tall grass
-8 8 Desert
-9 9 Tundra
-10 10 Irrigated crops
-11 11 Semidesert
-12 12 Ice caps and glaciers
-13 13 Bogs and marshes
-14 14 Inland water
-15 15 Ocean
-16 16 Evergreen shrubs
-17 17 Deciduous shrubs
-18 18 Mixed forest
-19 19 Interrupted forest
-20 20 Water and land mixtures
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/19/4.236.table b/definitions/grib2/tables/19/4.236.table
index fbe093ce9..9c58b488c 100644
--- a/definitions/grib2/tables/19/4.236.table
+++ b/definitions/grib2/tables/19/4.236.table
@@ -1,8 +1,8 @@
# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
-1 1 Coarse
-2 2 Medium
-3 3 Medium-fine
-4 4 Fine
-5 5 Very-fine
-6 6 Organic
-7 7 Tropical-organic
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/19/4.240.table b/definitions/grib2/tables/19/4.240.table
index 35e363211..400a13e26 100644
--- a/definitions/grib2/tables/19/4.240.table
+++ b/definitions/grib2/tables/19/4.240.table
@@ -1,13 +1,13 @@
# Code table 4.240 - Type of distribution function
-0 0 No specific distribution function given
-1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
-2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
-3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
-4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
-5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
-6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
+0 0 No specific distribution function given
+1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type no. 7 (see above) with fixed variance(p1) and fixed particle density(p2)
-# 9-49151 Reserved
-# 49152-65534 Reserved for local use
-65535 65535 Missing value
+# 9-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/19/4.241.table b/definitions/grib2/tables/19/4.241.table
index a037b4ba5..5ea7f775a 100644
--- a/definitions/grib2/tables/19/4.241.table
+++ b/definitions/grib2/tables/19/4.241.table
@@ -1,9 +1,9 @@
# Code table 4.241 - Coverage attributes
-0 0 Undefined
-1 1 Unmodified
-2 2 Snow covered
-3 3 Flooded
-4 4 Ice covered
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Undefined
+1 1 Unmodified
+2 2 Snow covered
+3 3 Flooded
+4 4 Ice covered
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/19/4.242.table b/definitions/grib2/tables/19/4.242.table
index 083f88c29..f6865957c 100644
--- a/definitions/grib2/tables/19/4.242.table
+++ b/definitions/grib2/tables/19/4.242.table
@@ -1,7 +1,7 @@
# Code table 4.242 - Tile classification
-0 0 Reserved
-1 1 Land use classes according to ESA-GlobCover GCV2009
-2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+0 0 Reserved
+1 1 Land use classes according to ESA-GlobCover GCV2009
+2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/19/4.243.table b/definitions/grib2/tables/19/4.243.table
index b39053311..24d21b719 100644
--- a/definitions/grib2/tables/19/4.243.table
+++ b/definitions/grib2/tables/19/4.243.table
@@ -1,43 +1,43 @@
# Code table 4.243 - Tile class
-0 0 Reserved
-1 1 Evergreen broadleaved forest
-2 2 Deciduous broadleaved closed forest
-3 3 Deciduous broadleaved open forest
-4 4 Evergreen needle-leaf forest
-5 5 Deciduous needle-leaf forest
-6 6 Mixed leaf trees
-7 7 Freshwater flooded trees
-8 8 Saline water flooded trees
-9 9 Mosaic tree/natural vegetation
-10 10 Burnt tree cover
-11 11 Evergreen shrubs closed-open
-12 12 Deciduous shrubs closed-open
-13 13 Herbaceous vegetation closed-open
-14 14 Sparse herbaceous or grass
-15 15 Flooded shrubs or herbaceous
-16 16 Cultivated and managed areas
-17 17 Mosaic crop/tree/natural vegetation
-18 18 Mosaic crop/shrub/grass
-19 19 Bare areas
-20 20 Water
-21 21 Snow and ice
-22 22 Artificial surface
-23 23 Ocean
-24 24 Irrigated croplands
-25 25 Rainfed croplands
-26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
-27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
-28 28 Closed broadleaved evergreen forest
-29 29 Closed needle-leaved evergreen forest
-30 30 Open needle-leaved deciduous forest
-31 31 Mixed broadleaved and needle-leaved forest
-32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
-33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
-34 34 Closed to open shrubland
-35 35 Sparse vegetation
-36 36 Closed to open forest regularly flooded
-37 37 Closed forest or shrubland permanently flooded
-38 38 Closed to open grassland regularly flooded
-39 39 Undefined
-# 40-32767 Reserved
-# 32768- Reserved for local use
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/19/4.3.table b/definitions/grib2/tables/19/4.3.table
index 8ba9e08ab..cea1bef4f 100644
--- a/definitions/grib2/tables/19/4.3.table
+++ b/definitions/grib2/tables/19/4.3.table
@@ -1,23 +1,23 @@
# Code table 4.3 - Type of generating process
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-12 12 Post-processed analysis
-13 13 Post-processed forecast
-14 14 Nowcast
-15 15 Hindcast
-16 16 Physical retrieval
-17 17 Regression analysis
-18 18 Difference between two forecasts
-# 19-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+18 18 Difference between two forecasts
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.4.table b/definitions/grib2/tables/19/4.4.table
index 7087ebddb..6e63e069c 100644
--- a/definitions/grib2/tables/19/4.4.table
+++ b/definitions/grib2/tables/19/4.4.table
@@ -1,17 +1,17 @@
# Code table 4.4 - Indicator of unit of time range
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.5.table b/definitions/grib2/tables/19/4.5.table
index 2f1a8a8b7..33abd6293 100644
--- a/definitions/grib2/tables/19/4.5.table
+++ b/definitions/grib2/tables/19/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface (-)
2 2 Cloud base level (-)
3 3 Level of cloud tops (-)
@@ -16,15 +16,15 @@
14 14 Level of free convection (LFC)
15 15 Convective condensation level (CCL)
16 16 Level of neutral buoyancy or equilibrium level (LNB)
-# 17-19 Reserved
+# 17-19 Reserved
20 20 Isothermal level (K)
21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3)
22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3)
23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3)
24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3)
-# 25-99 Reserved
+# 25-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -33,20 +33,20 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level (-)
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
115 115 Sigma height level
# 116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level (-)
119 hpl Hybrid pressure level (-)
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
151 sol Soil level (Numeric)
-# 152-159 Reserved
+# 152-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 sfc Lake or river bottom (-)
@@ -55,7 +55,7 @@
165 165 Bottom of sediment layer penetrated by thermal wave (-)
166 sfc Mixing layer (-)
167 167 Bottom of root zone (-)
-# 168-173 Reserved
+# 168-173 Reserved
174 sfc Top surface of ice on sea, lake or river
175 175 Top surface of ice, under snow cover, on sea, lake or river
176 176 Bottom surface (underside) ice on sea, lake or river
@@ -67,6 +67,6 @@
182 182 Grid tile water fraction as a model surface
183 183 Grid tile ice fraction on sea, lake or river as a model surface
184 184 Grid tile glacier ice and inland ice fraction as a model surface
-# 185-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 185-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.6.table b/definitions/grib2/tables/19/4.6.table
index b2dfeb498..ce799721d 100644
--- a/definitions/grib2/tables/19/4.6.table
+++ b/definitions/grib2/tables/19/4.6.table
@@ -1,9 +1,9 @@
# Code table 4.6 - Type of ensemble forecast
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.7.table b/definitions/grib2/tables/19/4.7.table
index e0de0e1b2..69b2b4d77 100644
--- a/definitions/grib2/tables/19/4.7.table
+++ b/definitions/grib2/tables/19/4.7.table
@@ -1,14 +1,14 @@
# Code table 4.7 - Derived forecast
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.8.table b/definitions/grib2/tables/19/4.8.table
index ad883039c..78467454a 100644
--- a/definitions/grib2/tables/19/4.8.table
+++ b/definitions/grib2/tables/19/4.8.table
@@ -1,6 +1,6 @@
# Code table 4.8 - Clustering method
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.9.table b/definitions/grib2/tables/19/4.9.table
index 5878b5ad3..0ce312dd1 100644
--- a/definitions/grib2/tables/19/4.9.table
+++ b/definitions/grib2/tables/19/4.9.table
@@ -1,9 +1,9 @@
# Code table 4.9 - Probability type
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/4.91.table b/definitions/grib2/tables/19/4.91.table
index 44cf25f44..ae31ed61c 100644
--- a/definitions/grib2/tables/19/4.91.table
+++ b/definitions/grib2/tables/19/4.91.table
@@ -1,16 +1,16 @@
# Code table 4.91 - Type of Interval
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/19/5.0.table b/definitions/grib2/tables/19/5.0.table
index 33597681b..4d6cc68c8 100644
--- a/definitions/grib2/tables/19/5.0.table
+++ b/definitions/grib2/tables/19/5.0.table
@@ -1,24 +1,24 @@
# Code table 5.0 - Data representation template number
-0 0 Grid point data - simple packing
-1 1 Matrix value at grid point - simple packing
-2 2 Grid point data - complex packing
-3 3 Grid point data - complex packing and spatial differencing
-4 4 Grid point data - IEEE floating point data
-40 40 Grid point data - JPEG 2000 code stream format
-41 41 Grid point data - Portable Network Graphics (PNG)
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
42 42 Grid point data - CCSDS recommended lossless compression
-# 43-49 Reserved
-50 50 Spectral data - simple packing
-51 51 Spherical harmonics data - complex packing
-# 52-60 Reserved
-61 61 Grid point data - simple packing with logarithm pre-processing
-# 62-199 Reserved
-200 200 Run length packing with level values
-# 201-49151 Reserved
-# 49152-65534 Reserved for local use
+# 43-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
40000 40000 JPEG2000 Packing
40010 40010 PNG pacling
50000 50000 Sperical harmonics ieee packing
50001 50001 Second order packing
50002 50002 Second order packing
-65535 65535 Missing
+65535 65535 Missing
diff --git a/definitions/grib2/tables/19/5.1.table b/definitions/grib2/tables/19/5.1.table
index 854330c74..1189b5e46 100644
--- a/definitions/grib2/tables/19/5.1.table
+++ b/definitions/grib2/tables/19/5.1.table
@@ -1,6 +1,6 @@
# Code table 5.1 - Type of original field values
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.2.table b/definitions/grib2/tables/19/5.2.table
index 40586a131..d77fdf4e7 100644
--- a/definitions/grib2/tables/19/5.2.table
+++ b/definitions/grib2/tables/19/5.2.table
@@ -1,8 +1,8 @@
# Code table 5.2 - Matrix coordinate value function definition
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.3.table b/definitions/grib2/tables/19/5.3.table
index c3b7b30fe..481331791 100644
--- a/definitions/grib2/tables/19/5.3.table
+++ b/definitions/grib2/tables/19/5.3.table
@@ -1,7 +1,7 @@
# Code table 5.3 - Matrix coordinate parameter
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.4.table b/definitions/grib2/tables/19/5.4.table
index 8121c1819..e84ab1901 100644
--- a/definitions/grib2/tables/19/5.4.table
+++ b/definitions/grib2/tables/19/5.4.table
@@ -1,6 +1,6 @@
# Code table 5.4 - Group splitting method
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.40.table b/definitions/grib2/tables/19/5.40.table
index b9bad2c39..97e8880ab 100644
--- a/definitions/grib2/tables/19/5.40.table
+++ b/definitions/grib2/tables/19/5.40.table
@@ -1,5 +1,5 @@
# Code table 5.40 - Type of compression
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.5.table b/definitions/grib2/tables/19/5.5.table
index 3ef3eb070..f2316975a 100644
--- a/definitions/grib2/tables/19/5.5.table
+++ b/definitions/grib2/tables/19/5.5.table
@@ -1,7 +1,7 @@
# Code table 5.5 - Missing value management for complex packing
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.6.table b/definitions/grib2/tables/19/5.6.table
index 6d5177877..db68ead9c 100644
--- a/definitions/grib2/tables/19/5.6.table
+++ b/definitions/grib2/tables/19/5.6.table
@@ -1,7 +1,7 @@
# Code table 5.6 - Order of spatial differencing
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/19/5.7.table b/definitions/grib2/tables/19/5.7.table
index 5ab780056..e54862c19 100644
--- a/definitions/grib2/tables/19/5.7.table
+++ b/definitions/grib2/tables/19/5.7.table
@@ -1,7 +1,7 @@
# Code table 5.7 - Precision of floating-point numbers
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/19/6.0.table b/definitions/grib2/tables/19/6.0.table
index 2a29aa285..a8f30f5a4 100644
--- a/definitions/grib2/tables/19/6.0.table
+++ b/definitions/grib2/tables/19/6.0.table
@@ -1,6 +1,6 @@
# Code table 6.0 - Bit map indicator
-0 0 A bit map applies to this product and is specified in this Section
+0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/20/4.1.192.table b/definitions/grib2/tables/20/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/20/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/21/4.1.192.table b/definitions/grib2/tables/21/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/21/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/22/4.1.192.table b/definitions/grib2/tables/22/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/22/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/23/4.1.192.table b/definitions/grib2/tables/23/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/23/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/24/4.1.192.table b/definitions/grib2/tables/24/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/24/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/25/4.1.192.table b/definitions/grib2/tables/25/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/25/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/26/4.1.192.table b/definitions/grib2/tables/26/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/26/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/27/4.1.192.table b/definitions/grib2/tables/27/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/27/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/28/4.1.192.table b/definitions/grib2/tables/28/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/28/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/29/4.1.192.table b/definitions/grib2/tables/29/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/29/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/30/4.1.192.table b/definitions/grib2/tables/30/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/30/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/31/4.1.192.table b/definitions/grib2/tables/31/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/31/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/32/0.0.table b/definitions/grib2/tables/32/0.0.table
new file mode 100644
index 000000000..a8542e94f
--- /dev/null
+++ b/definitions/grib2/tables/32/0.0.table
@@ -0,0 +1,13 @@
+# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Satellite remote sensing products (formerly Space products)
+4 4 Space weather products
+# 5-9 Reserved
+10 10 Oceanographic products
+# 11-19 Reserved
+20 20 Health and socioeconomic impacts
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/1.0.table b/definitions/grib2/tables/32/1.0.table
new file mode 100644
index 000000000..93726303d
--- /dev/null
+++ b/definitions/grib2/tables/32/1.0.table
@@ -0,0 +1,37 @@
+# Code table 1.0 - GRIB master tables version number
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Version implemented on 6 May 2015
+16 16 Version implemented on 11 November 2015
+17 17 Version implemented on 4 May 2016
+18 18 Version implemented on 2 November 2016
+19 19 Version implemented on 3 May 2017
+20 20 Version implemented on 8 November 2017
+21 21 Version implemented on 2 May 2018
+22 22 Version implemented on 7 November 2018
+23 23 Version implemented on 15 May 2019
+24 24 Version implemented on 6 November 2019
+25 25 Version implemented on 6 May 2020
+26 26 Version implemented on 16 November 2020
+27 27 Version implemented on 15 June 2021
+28 28 Version implemented on 15 November 2021
+29 29 Version implemented on 15 May 2022
+30 30 Version implemented on 15 November 2022
+31 31 Version implemented on 15 May 2023
+32 32 Version implemented on 30 November 2023
+33 33 Pre-operational to be implemented by next amendment
+# 34-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/32/1.1.table b/definitions/grib2/tables/32/1.1.table
new file mode 100644
index 000000000..f6d332005
--- /dev/null
+++ b/definitions/grib2/tables/32/1.1.table
@@ -0,0 +1,4 @@
+# Code table 1.1 - GRIB local tables version number
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/32/1.2.table b/definitions/grib2/tables/32/1.2.table
new file mode 100644
index 000000000..77f96637a
--- /dev/null
+++ b/definitions/grib2/tables/32/1.2.table
@@ -0,0 +1,9 @@
+# Code table 1.2 - Significance of reference time
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+4 4 Local time
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/1.3.table b/definitions/grib2/tables/32/1.3.table
new file mode 100644
index 000000000..88c033e42
--- /dev/null
+++ b/definitions/grib2/tables/32/1.3.table
@@ -0,0 +1,18 @@
+# Code table 1.3 - Production status of data
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
+6 6 S2S operational products
+7 7 S2S test products
+8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA)
+9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA)
+10 10 Copernicus regional reanalysis (CARRA/CERRA)
+11 11 Copernicus regional reanalysis test (CARRA/CERRA)
+12 12 Destination Earth
+13 13 Destination Earth test
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/1.4.table b/definitions/grib2/tables/32/1.4.table
new file mode 100644
index 000000000..877288c0e
--- /dev/null
+++ b/definitions/grib2/tables/32/1.4.table
@@ -0,0 +1,13 @@
+# Code table 1.4 - Type of data
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/32/1.5.table b/definitions/grib2/tables/32/1.5.table
new file mode 100644
index 000000000..533111959
--- /dev/null
+++ b/definitions/grib2/tables/32/1.5.table
@@ -0,0 +1,7 @@
+# Code table 1.5 - Identification template number
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/1.6.table b/definitions/grib2/tables/32/1.6.table
new file mode 100644
index 000000000..bd46899a7
--- /dev/null
+++ b/definitions/grib2/tables/32/1.6.table
@@ -0,0 +1,8 @@
+# Code table 1.6 - Type of calendar
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.0.table b/definitions/grib2/tables/32/3.0.table
new file mode 100644
index 000000000..a442a06a0
--- /dev/null
+++ b/definitions/grib2/tables/32/3.0.table
@@ -0,0 +1,6 @@
+# Code table 3.0 - Source of grid definition
+0 0 Specified in Code table 3.1
+1 1 Predetermined grid definition (Defined by originating centre)
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/32/3.1.table b/definitions/grib2/tables/32/3.1.table
new file mode 100644
index 000000000..26dc8da3f
--- /dev/null
+++ b/definitions/grib2/tables/32/3.1.table
@@ -0,0 +1,57 @@
+# Code table 3.1 - Grid definition template number
+0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree)
+1 1 Rotated latitude/longitude
+2 2 Stretched latitude/longitude
+3 3 Stretched and rotated latitude/longitude
+4 4 Variable resolution latitude/longitude
+5 5 Variable resolution rotated latitude/longitude
+# 6-9 Reserved
+10 10 Mercator
+# 11 Reserved
+12 12 Transverse Mercator
+13 13 Mercator with modelling subdomains definition
+# 14-19 Reserved
+20 20 Polar stereographic projection (Can be south or north)
+# 21-22 Reserved
+23 23 Polar stereographic with modelling subdomains definition
+# 24-29 Reserved
+30 30 Lambert conformal (Can be secant or tangent, conical or bipolar)
+31 31 Albers equal area
+# 32 Reserved
+33 33 Lambert conformal with modelling subdomains definition
+# 34-39 Reserved
+40 40 Gaussian latitude/longitude
+41 41 Rotated Gaussian latitude/longitude
+42 42 Stretched Gaussian latitude/longitude
+43 43 Stretched and rotated Gaussian latitude/longitude
+# 44-49 Reserved
+50 50 Spherical harmonic coefficients
+51 51 Rotated spherical harmonic coefficients
+52 52 Stretched spherical harmonic coefficients
+53 53 Stretched and rotated spherical harmonic coefficients
+# 54-60 Reserved
+61 61 Spectral Mercator with modelling subdomains definition
+62 62 Spectral polar stereographic with modelling subdomains definition
+63 63 Spectral Lambert conformal with modelling subdomains definition
+# 64-89 Reserved
+90 90 Space view perspective or orthographic
+# 91-99 Reserved
+100 100 Triangular grid based on an icosahedron
+101 101 General unstructured grid
+# 102-109 Reserved
+110 110 Equatorial azimuthal equidistant projection
+# 111-119 Reserved
+120 120 Azimuth-range projection
+# 121-139 Reserved
+140 140 Lambert azimuthal equal area projection
+# 141-149 Reserved
+150 150 Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)
+# 151-999 Reserved
+1000 1000 Cross-section grid with points equally spaced on the horizontal
+# 1001-1099 Reserved
+1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal
+# 1101-1199 Reserved
+1200 1200 Time section grid
+# 1201-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/3.10.table b/definitions/grib2/tables/32/3.10.table
new file mode 100644
index 000000000..1612d05e3
--- /dev/null
+++ b/definitions/grib2/tables/32/3.10.table
@@ -0,0 +1,8 @@
+# Flag table 3.10 - Scanning mode for one diamond
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/32/3.11.table b/definitions/grib2/tables/32/3.11.table
new file mode 100644
index 000000000..06ae10810
--- /dev/null
+++ b/definitions/grib2/tables/32/3.11.table
@@ -0,0 +1,7 @@
+# Code table 3.11 - Interpretation of list of numbers at end of section 3
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.12.table b/definitions/grib2/tables/32/3.12.table
new file mode 100644
index 000000000..7d4757100
--- /dev/null
+++ b/definitions/grib2/tables/32/3.12.table
@@ -0,0 +1,6 @@
+# Code table 3.12 - HEALPix rhomboids or points ordering
+0 0 Ring ordering
+1 1 Nested ordering
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.13.table b/definitions/grib2/tables/32/3.13.table
new file mode 100644
index 000000000..aabe4fc03
--- /dev/null
+++ b/definitions/grib2/tables/32/3.13.table
@@ -0,0 +1,8 @@
+# Flag table 3.13 - HEALPix scanning mode
+1 0 Points scan in +i (+x) direction
+1 1 Points scan in -i (-x) direction
+2 0 Points scan in -j (-y) direction
+2 1 Points scan in +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/32/3.15.table b/definitions/grib2/tables/32/3.15.table
new file mode 100644
index 000000000..43539dbfc
--- /dev/null
+++ b/definitions/grib2/tables/32/3.15.table
@@ -0,0 +1,23 @@
+# Code table 3.15 - Physical meaning of vertical coordinate
+# 0-19 Reserved
+20 20 Temperature (K)
+# 21-99 Reserved
+100 100 Pressure (Pa)
+101 101 Pressure deviation from mean sea level (Pa)
+102 102 Altitude above mean sea level (m)
+103 103 Height above ground (m)
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
+106 106 Depth below land surface (m)
+107 pt Potential temperature (theta) (K)
+108 108 Pressure deviation from ground to level (Pa)
+109 pv Potential vorticity (K m2 kg-1 s-1)
+110 110 Geometrical height (m)
+111 111 Eta coordinate
+112 112 Geopotential height (gpm)
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
+160 160 Depth below sea level (m)
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.2.table b/definitions/grib2/tables/32/3.2.table
new file mode 100644
index 000000000..13b9bf469
--- /dev/null
+++ b/definitions/grib2/tables/32/3.2.table
@@ -0,0 +1,16 @@
+# Code table 3.2 - Shape of the reference system
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992
+11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.20.table b/definitions/grib2/tables/32/3.20.table
new file mode 100644
index 000000000..e2bb156ee
--- /dev/null
+++ b/definitions/grib2/tables/32/3.20.table
@@ -0,0 +1,6 @@
+# Code table 3.20 - Type of horizontal line
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.21.table b/definitions/grib2/tables/32/3.21.table
new file mode 100644
index 000000000..e001e1c8f
--- /dev/null
+++ b/definitions/grib2/tables/32/3.21.table
@@ -0,0 +1,8 @@
+# Code table 3.21 - Vertical dimension coordinate values definition
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.25.table b/definitions/grib2/tables/32/3.25.table
new file mode 100644
index 000000000..e5a754994
--- /dev/null
+++ b/definitions/grib2/tables/32/3.25.table
@@ -0,0 +1,10 @@
+# Code table 3.25 - Type of bi-Fourier truncation
+# 0-76 Reserved
+77 77 Rectangular
+# 78-87 Reserved
+88 88 Elliptic
+# 89-98 Reserved
+99 99 Diamond
+# 100-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.3.table b/definitions/grib2/tables/32/3.3.table
new file mode 100644
index 000000000..25cb46a1d
--- /dev/null
+++ b/definitions/grib2/tables/32/3.3.table
@@ -0,0 +1,9 @@
+# Flag table 3.3 - Resolution and component flags
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/32/3.4.table b/definitions/grib2/tables/32/3.4.table
new file mode 100644
index 000000000..0f9d84464
--- /dev/null
+++ b/definitions/grib2/tables/32/3.4.table
@@ -0,0 +1,17 @@
+# Flag table 3.4 - Scanning mode
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction are consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scan in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/32/3.5.table b/definitions/grib2/tables/32/3.5.table
new file mode 100644
index 000000000..2f8ec82e3
--- /dev/null
+++ b/definitions/grib2/tables/32/3.5.table
@@ -0,0 +1,5 @@
+# Flag table 3.5 - Projection centre
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/32/3.6.table b/definitions/grib2/tables/32/3.6.table
new file mode 100644
index 000000000..5ab13aaa5
--- /dev/null
+++ b/definitions/grib2/tables/32/3.6.table
@@ -0,0 +1,3 @@
+# Code table 3.6 - Spectral data representation type
+1 1 see separate doc or pdf file
+2 2 Bi-Fourier representation
diff --git a/definitions/grib2/tables/32/3.7.table b/definitions/grib2/tables/32/3.7.table
new file mode 100644
index 000000000..34c0de085
--- /dev/null
+++ b/definitions/grib2/tables/32/3.7.table
@@ -0,0 +1,5 @@
+# Code table 3.7 - Spectral data representation mode
+0 0 Reserved
+1 1 see separate doc or pdf file
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.8.table b/definitions/grib2/tables/32/3.8.table
new file mode 100644
index 000000000..fcd17dca8
--- /dev/null
+++ b/definitions/grib2/tables/32/3.8.table
@@ -0,0 +1,10 @@
+# Code table 3.8 - Grid point position
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+3 3 Grid points at shape vertices
+4 4 Grid points at centre of shapes
+5 5 Grid points at midpoints of shape sides
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/3.9.table b/definitions/grib2/tables/32/3.9.table
new file mode 100644
index 000000000..ecd65514a
--- /dev/null
+++ b/definitions/grib2/tables/32/3.9.table
@@ -0,0 +1,4 @@
+# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/32/4.0.table b/definitions/grib2/tables/32/4.0.table
new file mode 100644
index 000000000..be04d32bf
--- /dev/null
+++ b/definitions/grib2/tables/32/4.0.table
@@ -0,0 +1,115 @@
+# Code table 4.0 - Product definition template number
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
+35 35 Satellite product with or without associated quality values
+# 36-39 Reserved
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol
+# 50 Reserved
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+# 52 Reserved
+53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time
+54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters
+55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated)
+57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function
+59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56)
+60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time
+63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles
+# 64-66 Reserved
+67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
+68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function
+# 69 Reserved
+70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval
+# 74-75 Reserved
+76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink
+77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink
+78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink
+79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink
+80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink
+81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink
+82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink
+83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink
+84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink
+85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
+86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time
+87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
+89 89 Post-processed quantile forecasts at a horizontal level or in a horizontal layer at a point in time
+90 90 Post-processed quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
+93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
+94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
+95 95 Average, accumulation, extreme values or other statistically processed value at a horizontal level or in a horizontal layer at a specified local time
+96 96 Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
+97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
+98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
+99 99 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions
+100 100 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions
+101 101 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae
+102 102 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae
+103 103 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range
+104 104 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range
+105 105 Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+106 106 Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+107 107 Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+108 108 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products
+109 109 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products
+110 110 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products
+111 111 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products
+112 112 Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+113 113 Generalised tiles at a horizontal level or horizontal layer at a point in time
+114 114 Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+115 115 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time
+116 116 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+117 117 Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+118 118 Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+# 119-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
+# 1102-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/4.1.0.table b/definitions/grib2/tables/32/4.1.0.table
new file mode 100644
index 000000000..7f390b679
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.0.table
@@ -0,0 +1,28 @@
+# Product discipline 0 - Meteorological products
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+21 21 Thermodynamic properties
+# 22-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.1.table b/definitions/grib2/tables/32/4.1.1.table
new file mode 100644
index 000000000..df2c13fa8
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.1.table
@@ -0,0 +1,7 @@
+# Product discipline 1 - Hydrological products
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.10.table b/definitions/grib2/tables/32/4.1.10.table
new file mode 100644
index 000000000..5a64f9652
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.10.table
@@ -0,0 +1,10 @@
+# Product discipline 10 - Oceanographic products
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.2.table b/definitions/grib2/tables/32/4.1.2.table
new file mode 100644
index 000000000..9d6f690ac
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.2.table
@@ -0,0 +1,11 @@
+# Product discipline 2 - Land surface products
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+5 5 Glaciers and inland ice
+6 6 Urban areas
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.20.table b/definitions/grib2/tables/32/4.1.20.table
new file mode 100644
index 000000000..e651e326f
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.20.table
@@ -0,0 +1,8 @@
+# Product discipline 20 - Health and socioeconomic impacts
+0 0 Health indicators
+1 1 Epidemiology
+2 2 Socioeconomic indicators
+3 3 Renewable energy sector
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.3.table b/definitions/grib2/tables/32/4.1.3.table
new file mode 100644
index 000000000..35d82f440
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.3.table
@@ -0,0 +1,11 @@
+# Product discipline 3 - Satellite remote sensing products (formerly Space products)
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rule conditions
+4 4 Volcanic ash
+5 5 Sea-surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.1.4.table b/definitions/grib2/tables/32/4.1.4.table
new file mode 100644
index 000000000..7d1378729
--- /dev/null
+++ b/definitions/grib2/tables/32/4.1.4.table
@@ -0,0 +1,15 @@
+# Product discipline 4 - Space weather products
+0 0 Temperature
+1 1 Momentum
+2 2 Charged particle mass and number
+3 3 Electric and magnetic fields
+4 4 Energetic particles
+5 5 Waves
+6 6 Solar electromagnetic emissions
+7 7 Terrestrial electromagnetic emissions
+8 8 Imagery
+9 9 Ion-neutral coupling
+10 10 Space weather indices
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.10.table b/definitions/grib2/tables/32/4.10.table
new file mode 100644
index 000000000..b66560e8d
--- /dev/null
+++ b/definitions/grib2/tables/32/4.10.table
@@ -0,0 +1,20 @@
+# Code table 4.10 - Type of statistical processing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+12 12 Return period
+# 13-99 Reserved
+100 100 Severity
+101 101 Mode
+# 102-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/32/4.100.table b/definitions/grib2/tables/32/4.100.table
new file mode 100644
index 000000000..a24770d68
--- /dev/null
+++ b/definitions/grib2/tables/32/4.100.table
@@ -0,0 +1,10 @@
+# Code table 4.100 - Type of reference dataset
+0 0 Analysis
+1 1 Forecast
+2 2 Reforecast (Hindcast)
+3 3 Reanalysis
+4 4 Climate projection
+5 5 Gridded observations
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.101.table b/definitions/grib2/tables/32/4.101.table
new file mode 100644
index 000000000..e65f87826
--- /dev/null
+++ b/definitions/grib2/tables/32/4.101.table
@@ -0,0 +1,10 @@
+# Code table 4.101 - Type of relationship to reference dataset
+0 0 Anomaly
+1 1 Standardized anomaly
+2 2 Significance (Wilcoxon-Mann-Whitney)
+# 3-19 Reserved
+20 20 Extreme Forecast Index (EFI)
+21 21 Shift of Tails (SOT)
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.102.table b/definitions/grib2/tables/32/4.102.table
new file mode 100644
index 000000000..ec8edebf5
--- /dev/null
+++ b/definitions/grib2/tables/32/4.102.table
@@ -0,0 +1,11 @@
+# Code table 4.102 - Statistical processing of reference period
+0 0 Average
+1 1 Accumulation
+2 2 Maximum
+3 3 Minimum
+4 4 Median
+# 5-19 Reserved
+20 20 Model Climate
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.11.table b/definitions/grib2/tables/32/4.11.table
new file mode 100644
index 000000000..01cc81303
--- /dev/null
+++ b/definitions/grib2/tables/32/4.11.table
@@ -0,0 +1,10 @@
+# Code table 4.11 - Type of time intervals
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.12.table b/definitions/grib2/tables/32/4.12.table
new file mode 100644
index 000000000..d42b47e96
--- /dev/null
+++ b/definitions/grib2/tables/32/4.12.table
@@ -0,0 +1,7 @@
+# Code table 4.12 - Operating mode
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.13.table b/definitions/grib2/tables/32/4.13.table
new file mode 100644
index 000000000..a0e28eac8
--- /dev/null
+++ b/definitions/grib2/tables/32/4.13.table
@@ -0,0 +1,6 @@
+# Code table 4.13 - Quality control indicator
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.14.table b/definitions/grib2/tables/32/4.14.table
new file mode 100644
index 000000000..d525b23b3
--- /dev/null
+++ b/definitions/grib2/tables/32/4.14.table
@@ -0,0 +1,6 @@
+# Code table 4.14 - Clutter filter indicator
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.15.table b/definitions/grib2/tables/32/4.15.table
new file mode 100644
index 000000000..7adddedb6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.15.table
@@ -0,0 +1,11 @@
+# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.16.table b/definitions/grib2/tables/32/4.16.table
new file mode 100644
index 000000000..5b9f6fd73
--- /dev/null
+++ b/definitions/grib2/tables/32/4.16.table
@@ -0,0 +1,10 @@
+# Code table 4.16 - Quality value associated with parameter
+0 0 Confidence index
+1 1 Quality indicator
+2 2 Correlation of product with used calibration product
+3 3 Standard deviation
+4 4 Random error
+5 5 Probability
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.192.table b/definitions/grib2/tables/32/4.192.table
new file mode 100644
index 000000000..e1fd91594
--- /dev/null
+++ b/definitions/grib2/tables/32/4.192.table
@@ -0,0 +1,4 @@
+1 1 first
+2 2 second
+3 3 third
+4 4 fourth
diff --git a/definitions/grib2/tables/32/4.2.0.0.table b/definitions/grib2/tables/32/4.2.0.0.table
new file mode 100644
index 000000000..e4912c9d6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.0.table
@@ -0,0 +1,37 @@
+# Product discipline 0 - Meteorological products, parameter category 0: temperature
+0 0 Temperature (K)
+1 1 Virtual temperature (K)
+2 2 Potential temperature (K)
+3 3 Pseudo-adiabatic potential temperature or equivalent potential temperature (K)
+4 4 Maximum temperature (K)
+5 5 Minimum temperature (K)
+6 6 Dewpoint temperature (K)
+7 7 Dewpoint depression (or deficit) (K)
+8 8 Lapse rate (K/m)
+9 9 Temperature anomaly (K)
+10 10 Latent heat net flux (W m-2)
+11 11 Sensible heat net flux (W m-2)
+12 12 Heat index (K)
+13 13 Wind chill factor (K)
+14 14 Minimum dewpoint depression (K)
+15 15 Virtual potential temperature (K)
+16 16 Snow phase change heat flux (W m-2)
+17 17 Skin temperature (K)
+18 18 Snow temperature (top of snow) (K)
+19 19 Turbulent transfer coefficient for heat (Numeric)
+20 20 Turbulent diffusion coefficient for heat (m2/s)
+21 21 Apparent temperature (K)
+22 22 Temperature tendency due to short-wave radiation (K s-1)
+23 23 Temperature tendency due to long-wave radiation (K s-1)
+24 24 Temperature tendency due to short-wave radiation, clear sky (K s-1)
+25 25 Temperature tendency due to long-wave radiation, clear sky (K s-1)
+26 26 Temperature tendency due to parameterization (K s-1)
+27 27 Wet-bulb temperature (K)
+28 28 Unbalanced component of temperature (K)
+29 29 Temperature advection (K s-1)
+30 30 Latent heat net flux due to evaporation (W m-2)
+31 31 Latent heat net flux due to sublimation (W m-2)
+32 32 Wet-bulb potential temperature (K)
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.1.table b/definitions/grib2/tables/32/4.2.0.1.table
new file mode 100644
index 000000000..2405606cb
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.1.table
@@ -0,0 +1,174 @@
+# Product discipline 0 - Meteorological products, parameter category 1: moisture
+0 0 Specific humidity (kg/kg)
+1 1 Relative humidity (%)
+2 2 Humidity mixing ratio (kg/kg)
+3 3 Precipitable water (kg m-2)
+4 4 Vapour pressure (Pa)
+5 5 Saturation deficit (Pa)
+6 6 Evaporation (kg m-2)
+7 7 Precipitation rate (kg m-2 s-1)
+8 8 Total precipitation (kg m-2)
+9 9 Large-scale precipitation (non-convective) (kg m-2)
+10 10 Convective precipitation (kg m-2)
+11 11 Snow depth (m)
+12 12 Snowfall rate water equivalent (kg m-2 s-1)
+13 13 Water equivalent of accumulated snow depth (kg m-2)
+14 14 Convective snow (kg m-2)
+15 15 Large-scale snow (kg m-2)
+16 16 Snow melt (kg m-2)
+17 17 Snow age (d)
+18 18 Absolute humidity (kg m-3)
+19 19 Precipitation type (Code table 4.201)
+20 20 Integrated liquid water (kg m-2)
+21 21 Condensate (kg/kg)
+22 22 Cloud mixing ratio (kg/kg)
+23 23 Ice water mixing ratio (kg/kg)
+24 24 Rain mixing ratio (kg/kg)
+25 25 Snow mixing ratio (kg/kg)
+26 26 Horizontal moisture convergence (kg kg-1 s-1)
+27 27 Maximum relative humidity (%)
+28 28 Maximum absolute humidity (kg m-3)
+29 29 Total snowfall (m)
+30 30 Precipitable water category (Code table 4.202)
+31 31 Hail (m)
+32 32 Graupel (snow pellets) (kg/kg)
+33 33 Categorical rain (Code table 4.222)
+34 34 Categorical freezing rain (Code table 4.222)
+35 35 Categorical ice pellets (Code table 4.222)
+36 36 Categorical snow (Code table 4.222)
+37 37 Convective precipitation rate (kg m-2 s-1)
+38 38 Horizontal moisture divergence (kg kg-1 s-1)
+39 39 Per cent frozen precipitation (%)
+40 40 Potential evaporation (kg m-2)
+41 41 Potential evaporation rate (W m-2)
+42 42 Snow cover (%)
+43 43 Rain fraction of total cloud water (Proportion)
+44 44 Rime factor (Numeric)
+45 45 Total column integrated rain (kg m-2)
+46 46 Total column integrated snow (kg m-2)
+47 47 Large scale water precipitation (non-convective) (kg m-2)
+48 48 Convective water precipitation (kg m-2)
+49 49 Total water precipitation (kg m-2)
+50 50 Total snow precipitation (kg m-2)
+51 51 Total column water [Vertically integrated total water=vapour + cloud water/ice] (kg m-2)
+52 52 Total precipitation rate (kg m-2 s-1)
+53 53 Total snowfall rate water equivalent (kg m-2 s-1)
+54 54 Large scale precipitation rate (kg m-2 s-1)
+55 55 Convective snowfall rate water equivalent (kg m-2 s-1)
+56 56 Large scale snowfall rate water equivalent (kg m-2 s-1)
+57 57 Total snowfall rate (m/s)
+58 58 Convective snowfall rate (m/s)
+59 59 Large scale snowfall rate (m/s)
+60 60 Snow depth water equivalent (kg m-2)
+61 61 Snow density (kg m-3)
+62 62 Snow evaporation (kg m-2)
+63 63 Reserved
+64 64 Total column integrated water vapour (kg m-2)
+65 65 Rain precipitation rate (kg m-2 s-1)
+66 66 Snow precipitation rate (kg m-2 s-1)
+67 67 Freezing rain precipitation rate (kg m-2 s-1)
+68 68 Ice pellets precipitation rate (kg m-2 s-1)
+69 69 Total column integrated cloud water (kg m-2)
+70 70 Total column integrated cloud ice (kg m-2)
+71 71 Hail mixing ratio (kg/kg)
+72 72 Total column integrated hail (kg m-2)
+73 73 Hail precipitation rate (kg m-2 s-1)
+74 74 Total column integrated graupel (kg m-2)
+75 75 Graupel (snow pellets) precipitation rate (kg m-2 s-1)
+76 76 Convective rain rate (kg m-2 s-1)
+77 77 Large scale rain rate (kg m-2 s-1)
+78 78 Total column integrated water (all components including precipitation) (kg m-2)
+79 79 Evaporation rate (kg m-2 s-1)
+80 80 Total condensate (kg/kg)
+81 81 Total column-integrated condensate (kg m-2)
+82 82 Cloud ice mixing-ratio (kg/kg)
+83 83 Specific cloud liquid water content (kg/kg)
+84 84 Specific cloud ice water content (kg/kg)
+85 85 Specific rainwater content (kg/kg)
+86 86 Specific snow water content (kg/kg)
+87 87 Stratiform precipitation rate (kg m-2 s-1)
+88 88 Categorical convective precipitation (Code table 4.222)
+# 89 Reserved
+90 90 Total kinematic moisture flux (kg kg-1 m s-1)
+91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
+92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
+93 93 Relative humidity with respect to water (%)
+94 94 Relative humidity with respect to ice (%)
+95 95 Freezing or frozen precipitation rate (kg m-2 s-1)
+96 96 Mass density of rain (kg m-3)
+97 97 Mass density of snow (kg m-3)
+98 98 Mass density of graupel (kg m-3)
+99 99 Mass density of hail (kg m-3)
+100 100 Specific number concentration of rain (kg-1)
+101 101 Specific number concentration of snow (kg-1)
+102 102 Specific number concentration of graupel (kg-1)
+103 103 Specific number concentration of hail (kg-1)
+104 104 Number density of rain (m-3)
+105 105 Number density of snow (m-3)
+106 106 Number density of graupel (m-3)
+107 107 Number density of hail (m-3)
+108 108 Specific humidity tendency due to parameterization (kg kg-1 s-1)
+109 109 Mass density of liquid water coating on hail expressed as mass of liquid water per unit volume of air (kg m-3)
+110 110 Specific mass of liquid water coating on hail expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+111 111 Mass mixing ratio of liquid water coating on hail expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+112 112 Mass density of liquid water coating on graupel expressed as mass of liquid water per unit volume of air (kg m-3)
+113 113 Specific mass of liquid water coating on graupel expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+114 114 Mass mixing ratio of liquid water coating on graupel expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+115 115 Mass density of liquid water coating on snow expressed as mass of liquid water per unit volume of air (kg m-3)
+116 116 Specific mass of liquid water coating on snow expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+117 117 Mass mixing ratio of liquid water coating on snow expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+118 118 Unbalanced component of specific humidity (kg kg-1)
+119 119 Unbalanced component of specific cloud liquid water content (kg kg-1)
+120 120 Unbalanced component of specific cloud ice water content (kg kg-1)
+121 121 Fraction of snow cover (Proportion)
+122 122 Precipitation intensity index (Code table 4.247)
+123 123 Dominant precipitation type (Code table 4.201)
+124 124 Presence of showers (Code table 4.222)
+125 125 Presence of blowing snow (Code table 4.222)
+126 126 Presence of blizzard (Code table 4.222)
+127 127 Ice pellets (non-water equivalent) precipitation rate (m/s)
+128 128 Total solid precipitation rate (kg m-2 s-1)
+129 129 Effective radius of cloud water (m)
+130 130 Effective radius of rain (m)
+131 131 Effective radius of cloud ice (m)
+132 132 Effective radius of snow (m)
+133 133 Effective radius of graupel (m)
+134 134 Effective radius of hail (m)
+135 135 Effective radius of subgrid liquid clouds (m)
+136 136 Effective radius of subgrid ice clouds (m)
+137 137 Effective aspect ratio of rain (-)
+138 138 Effective aspect ratio of cloud ice (-)
+139 139 Effective aspect ratio of snow (-)
+140 140 Effective aspect ratio of graupel (-)
+141 141 Effective aspect ratio of hail (-)
+142 142 Effective aspect ratio of subgrid ice clouds (-)
+143 143 Potential evaporation rate (kg m-2 s-1)
+144 144 Specific rain water content (convective) (kg kg-1)
+145 145 Specific snow water content (convective) (kg kg-1)
+146 146 Cloud ice precipitation rate (kg m-2 s-1)
+147 147 Character of precipitation (Code table 4.249)
+148 148 Snow evaporation rate (kg m-2 s-1)
+149 149 Cloud water mixing ratio (kg kg-1)
+150 150 Column integrated eastward water vapour mass flux (kg m-1 s-1)
+151 151 Column integrated northward water vapour mass flux (kg m-1 s-1)
+152 152 Column integrated eastward cloud liquid water mass flux (kg m-1 s-1)
+153 153 Column integrated northward cloud liquid water mass flux (kg m-1 s-1)
+154 154 Column integrated eastward cloud ice mass flux (kg m-1 s-1)
+155 155 Column integrated northward cloud ice mass flux (kg m-1 s-1)
+156 156 Column integrated eastward rain mass flux (kg m-1 s-1)
+157 157 Column integrated northward rain mass flux (kg m-1 s-1)
+158 158 Column integrated eastward snow mass flux (kg m-1 s-1)
+159 159 Column integrated northward snow mass flux (kg m-1 s-1)
+160 160 Column integrated divergence of water vapour mass flux (kg m-2 s-1)
+161 161 Column integrated divergence of cloud liquid water mass flux (kg m-2 s-1)
+162 162 Column integrated divergence of cloud ice mass flux (kg m-2 s-1)
+163 163 Column integrated divergence of rain mass flux (kg m-2 s-1)
+164 164 Column integrated divergence of snow mass flux (kg m-2 s-1)
+165 165 Column integrated divergence of total water mass flux (kg m-2 s-1)
+166 166 Column integrated water vapour flux (kg m-2 s-1)
+167 167 Total column supercooled liquid water (kg m-2)
+168 168 Saturation specific humidity with respect to water (kg m-3)
+169 169 Total column integrated saturation specific humidity with respect to water (kg m-2)
+# 170-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.13.table b/definitions/grib2/tables/32/4.2.0.13.table
new file mode 100644
index 000000000..4c1253b96
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.13.table
@@ -0,0 +1,5 @@
+# Product discipline 0 - Meteorological products, parameter category 13: aerosols
+0 0 Aerosol type (Code table 4.205)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.14.table b/definitions/grib2/tables/32/4.2.0.14.table
new file mode 100644
index 000000000..df0f721ea
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.14.table
@@ -0,0 +1,7 @@
+# Product discipline 0 - Meteorological products, parameter category 14: trace gases
+0 0 Total ozone (DU)
+1 1 Ozone mixing ratio (kg/kg)
+2 2 Total column integrated ozone (DU)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.15.table b/definitions/grib2/tables/32/4.2.0.15.table
new file mode 100644
index 000000000..ac49ad402
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.15.table
@@ -0,0 +1,21 @@
+# Product discipline 0 - Meteorological products, parameter category 15: radar
+0 0 Base spectrum width (m/s)
+1 1 Base reflectivity (dB)
+2 2 Base radial velocity (m/s)
+3 3 Vertically integrated liquid water (VIL) (kg m-2)
+4 4 Layer-maximum base reflectivity (dB)
+5 5 Precipitation (kg m-2)
+6 6 Radar spectra (1) (-)
+7 7 Radar spectra (2) (-)
+8 8 Radar spectra (3) (-)
+9 9 Reflectivity of cloud droplets (dB)
+10 10 Reflectivity of cloud ice (dB)
+11 11 Reflectivity of snow (dB)
+12 12 Reflectivity of rain (dB)
+13 13 Reflectivity of graupel (dB)
+14 14 Reflectivity of hail (dB)
+15 15 Hybrid scan reflectivity (dB)
+16 16 Hybrid scan reflectivity height (m)
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.16.table b/definitions/grib2/tables/32/4.2.0.16.table
new file mode 100644
index 000000000..111e6d986
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.16.table
@@ -0,0 +1,10 @@
+# Product discipline 0 - Meteorological products, parameter category 16: forecast radar imagery
+0 0 Equivalent radar reflectivity factor for rain (mm6 m-3)
+1 1 Equivalent radar reflectivity factor for snow (mm6 m-3)
+2 2 Equivalent radar reflectivity factor for parameterized convection (mm6 m-3)
+3 3 Echo top (m)
+4 4 Reflectivity (dB)
+5 5 Composite reflectivity (dB)
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.17.table b/definitions/grib2/tables/32/4.2.0.17.table
new file mode 100644
index 000000000..90ef72d87
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.17.table
@@ -0,0 +1,7 @@
+# Product discipline 0 - Meteorological products, parameter category 17: electrodynamics
+0 0 Lightning strike density (m-2 s-1)
+1 1 Lightning potential index (LPI) (J kg-1)
+2 2 Cloud-to-ground lightning flash density (km-2 day-1)
+3 3 Cloud-to-cloud lightning flash density (km-2 day-1)
+4 4 Total lightning flash density (km-2 day-1)
+5 5 Subgrid-scale lightning potential index (J kg-1)
diff --git a/definitions/grib2/tables/32/4.2.0.18.table b/definitions/grib2/tables/32/4.2.0.18.table
new file mode 100644
index 000000000..9d527a828
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.18.table
@@ -0,0 +1,23 @@
+# Product discipline 0 - Meteorological products, parameter category 18: nuclear/radiology
+0 0 Air concentration of caesium 137 (Bq m-3)
+1 1 Air concentration of iodine 131 (Bq m-3)
+2 2 Air concentration of radioactive pollutant (Bq m-3)
+3 3 Ground deposition of caesium 137 (Bq m-2)
+4 4 Ground deposition of iodine 131 (Bq m-2)
+5 5 Ground deposition of radioactive pollutant (Bq m-2)
+6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
+7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
+8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
+9 9 Reserved
+10 10 Air concentration (Bq m-3)
+11 11 Wet deposition (Bq m-2)
+12 12 Dry deposition (Bq m-2)
+13 13 Total deposition (wet + dry) (Bq m-2)
+14 14 Specific activity concentration (Bq kg-1)
+15 15 Maximum of air concentration in layer (Bq m-3)
+16 16 Height of maximum air concentration (m)
+17 17 Column-integrated air concentration (Bq m-2)
+18 18 Column-averaged air concentration in layer (Bq m-3)
+# 19-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.19.table b/definitions/grib2/tables/32/4.2.0.19.table
new file mode 100644
index 000000000..680027b38
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.19.table
@@ -0,0 +1,54 @@
+# Product discipline 0 - Meteorological products, parameter category 19: physical atmospheric properties
+0 0 Visibility (m)
+1 1 Albedo (%)
+2 2 Thunderstorm probability (%)
+3 3 Mixed layer depth (m)
+4 4 Volcanic ash (Code table 4.206)
+5 5 Icing top (m)
+6 6 Icing base (m)
+7 7 Icing (Code table 4.207)
+8 8 Turbulence top (m)
+9 9 Turbulence base (m)
+10 10 Turbulence (Code table 4.208)
+11 11 Turbulent kinetic energy (J/kg)
+12 12 Planetary boundary-layer regime (Code table 4.209)
+13 13 Contrail intensity (Code table 4.210)
+14 14 Contrail engine type (Code table 4.211)
+15 15 Contrail top (m)
+16 16 Contrail base (m)
+17 17 Maximum snow albedo (%)
+18 18 Snow free albedo (%)
+19 19 Snow albedo (%)
+20 20 Icing (%)
+21 21 In-cloud turbulence (%)
+22 22 Clear air turbulence (CAT) (%)
+23 23 Supercooled large droplet probability (%)
+24 24 Convective turbulent kinetic energy (J/kg)
+25 25 Weather (Code table 4.225)
+26 26 Convective outlook (Code table 4.224)
+27 27 Icing scenario (Code table 4.227)
+28 28 Mountain wave turbulence (eddy dissipation rate) (m2/3 s-1)
+29 29 Clear air turbulence (CAT) (m2/3 s-1)
+30 30 Eddy dissipation parameter (m2/3 s-1)
+31 31 Maximum of eddy dissipation parameter in layer (m2/3 s-1)
+32 32 Highest freezing level (m)
+33 33 Visibility through liquid fog (m)
+34 34 Visibility through ice fog (m)
+35 35 Visibility through blowing snow (m)
+36 36 Presence of snow squalls (Code table 4.222)
+37 37 Icing severity (Code table 4.228)
+38 38 Sky transparency index (Code table 4.214)
+39 39 Seeing index (Code table 4.214)
+40 40 Snow level (m)
+41 41 Duct base height (m)
+42 42 Trapping layer base height (m)
+43 43 Trapping layer top height (m)
+44 44 Mean vertical gradient of refractivity inside trapping layer (m-1)
+45 45 Minimum vertical gradient of refractivity inside trapping layer (m-1)
+46 46 Net radiation flux (W m-2)
+47 47 Global irradiance on tilted surfaces (W m-2)
+48 48 Top of persistent contrails (m)
+49 49 Base of persistent contrails (m)
+# 50-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.190.table b/definitions/grib2/tables/32/4.2.0.190.table
new file mode 100644
index 000000000..dfe39840d
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.190.table
@@ -0,0 +1,5 @@
+# Product discipline 0 - Meteorological products, parameter category 190: CCITT IA5 string
+0 0 Arbitrary text string (CCITT IA5)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.191.table b/definitions/grib2/tables/32/4.2.0.191.table
new file mode 100644
index 000000000..5cf93985f
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.191.table
@@ -0,0 +1,9 @@
+# Product discipline 0 - Meteorological products, parameter category 191: miscellaneous
+0 0 Seconds prior to initial reference time (defined in Section 1) (s)
+1 1 Geographical latitude (deg N)
+2 2 Geographical longitude (deg E)
+3 3 Days since last observation (d)
+4 4 Tropical cyclone density track (Numeric)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.2.table b/definitions/grib2/tables/32/4.2.0.2.table
new file mode 100644
index 000000000..bd6e32851
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.2.table
@@ -0,0 +1,72 @@
+# Product discipline 0 - Meteorological products, parameter category 2: momentum
+0 0 Wind direction (from which blowing) (degree true)
+1 1 Wind speed (m/s)
+2 2 u-component of wind (m/s)
+3 3 v-component of wind (m/s)
+4 4 Stream function (m2/s)
+5 5 Velocity potential (m2/s)
+6 6 Montgomery stream function (m2 s-2)
+7 7 Sigma coordinate vertical velocity (/s)
+8 8 Vertical velocity (pressure) (Pa/s)
+9 9 Vertical velocity (geometric) (m/s)
+10 10 Absolute vorticity (/s)
+11 11 Absolute divergence (/s)
+12 12 Relative vorticity (/s)
+13 13 Relative divergence (/s)
+14 14 Potential vorticity (K m2 kg-1 s-1)
+15 15 Vertical u-component shear (/s)
+16 16 Vertical v-component shear (/s)
+17 17 Momentum flux, u-component (N m-2)
+18 18 Momentum flux, v-component (N m-2)
+19 19 Wind mixing energy (J)
+20 20 Boundary layer dissipation (W m-2)
+21 21 Maximum wind speed (m/s)
+22 22 Wind speed (gust) (m/s)
+23 23 u-component of wind (gust) (m/s)
+24 24 v-component of wind (gust) (m/s)
+25 25 Vertical speed shear (/s)
+26 26 Horizontal momentum flux (N m-2)
+27 27 u-component storm motion (m/s)
+28 28 v-component storm motion (m/s)
+29 29 Drag coefficient (Numeric)
+30 30 Frictional velocity (m/s)
+31 31 Turbulent diffusion coefficient for momentum (m2/s)
+32 32 Eta coordinate vertical velocity (/s)
+33 33 Wind fetch (m)
+34 34 Normal wind component (m/s)
+35 35 Tangential wind component (m/s)
+36 36 Amplitude function for Rossby wave envelope for meridional wind (m/s)
+37 37 Northward turbulent surface stress (N m-2 s)
+38 38 Eastward turbulent surface stress (N m-2 s)
+39 39 Eastward wind tendency due to parameterization (m s-2)
+40 40 Northward wind tendency due to parameterization (m s-2)
+41 41 u-component of geostrophic wind (m s-1)
+42 42 v-component of geostrophic wind (m s-1)
+43 43 Geostrophic wind direction (degree true)
+44 44 Geostrophic wind speed (m s-1)
+45 45 Unbalanced component of divergence (s-1)
+46 46 Vorticity advection (s-2)
+47 47 Surface roughness for heat (m)
+48 48 Surface roughness for moisture (m)
+49 49 Wind stress (N m-2)
+50 50 Eastward wind stress (N m-2)
+51 51 Northward wind stress (N m-2)
+52 52 u-component of wind stress (N m-2)
+53 53 v-component of wind stress (N m-2)
+54 54 Natural logarithm of surface roughness length for heat (Numeric)
+55 55 Natural logarithm of surface roughness length for moisture (Numeric)
+56 56 u-component of neutral wind (m s-1)
+57 57 v-component of neutral wind (m s-1)
+58 58 Magnitude of turbulent surface stress (N m-2)
+59 59 Vertical divergence (s-1)
+60 60 Drag thermal coefficient (Numeric)
+61 61 Drag evaporation coefficient (Numeric)
+62 62 Eastward turbulent surface stress (N m-2)
+63 63 Northward turbulent surface stress (N m-2)
+64 64 Eastward turbulent surface stress due to orographic form drag (N m-2)
+65 65 Northward turbulent surface stress due to orographic form drag (N m-2)
+66 66 Eastward turbulent surface stress due to surface roughness (N m-2)
+67 67 Northward turbulent surface stress due to surface roughness (N m-2)
+# 68-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.20.table b/definitions/grib2/tables/32/4.2.0.20.table
new file mode 100644
index 000000000..7855a8618
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.20.table
@@ -0,0 +1,69 @@
+# Product discipline 0 - Meteorological products, parameter category 20: atmospheric chemical constituents
+0 0 Mass density (concentration) (kg m-3)
+1 1 Column-integrated mass density (kg m-2)
+2 2 Mass mixing ratio (mass fraction in air) (kg/kg)
+3 3 Atmosphere emission mass flux (kg m-2 s-1)
+4 4 Atmosphere net production mass flux (kg m-2 s-1)
+5 5 Atmosphere net production and emission mass flux (kg m-2 s-1)
+6 6 Surface dry deposition mass flux (kg m-2 s-1)
+7 7 Surface wet deposition mass flux (kg m-2 s-1)
+8 8 Atmosphere re-emission mass flux (kg m-2 s-1)
+9 9 Wet deposition by large-scale precipitation mass flux (kg m-2 s-1)
+10 10 Wet deposition by convective precipitation mass flux (kg m-2 s-1)
+11 11 Sedimentation mass flux (kg m-2 s-1)
+12 12 Dry deposition mass flux (kg m-2 s-1)
+13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
+14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
+15 15 Dry deposition velocity (m/s)
+16 16 Mass mixing ratio with respect to dry air (kg/kg)
+17 17 Mass mixing ratio with respect to wet air (kg/kg)
+18 18 Potential of hydrogen (pH) (pH)
+# 19-49 Reserved
+50 50 Amount in atmosphere (mol)
+51 51 Concentration in air (mol m-3)
+52 52 Volume mixing ratio (fraction in air) (mol/mol)
+53 53 Chemical gross production rate of concentration (mol m-3 s-1)
+54 54 Chemical gross destruction rate of concentration (mol m-3 s-1)
+55 55 Surface flux (mol m-2 s-1)
+56 56 Changes of amount in atmosphere (mol/s)
+57 57 Total yearly average burden of the atmosphere (mol)
+58 58 Total yearly averaged atmospheric loss (mol/s)
+59 59 Aerosol number concentration (m-3)
+60 60 Aerosol specific number concentration (kg-1)
+61 61 Maximum of mass density in layer (kg m-3)
+62 62 Height of maximum mass density (m)
+63 63 Column-averaged mass density in layer (kg m-3)
+64 64 Mole fraction with respect to dry air (mol/mol)
+65 65 Mole fraction with respect to wet air (mol/mol)
+66 66 Column-integrated in-cloud scavenging rate by precipitation (kg m-2 s-1)
+67 67 Column-integrated below-cloud scavenging rate by precipitation (kg m-2 s-1)
+68 68 Column-integrated release rate from evaporating precipitation (kg m-2 s-1)
+69 69 Column-integrated in-cloud scavenging rate by large-scale precipitation (kg m-2 s-1)
+70 70 Column-integrated below-cloud scavenging rate by large-scale precipitation (kg m-2 s-1)
+71 71 Column-integrated release rate from evaporating large-scale precipitation (kg m-2 s-1)
+72 72 Column-integrated in-cloud scavenging rate by convective precipitation (kg m-2 s-1)
+73 73 Column-integrated below-cloud scavenging rate by convective precipitation (kg m-2 s-1)
+74 74 Column-integrated release rate from evaporating convective precipitation (kg m-2 s-1)
+75 75 Wildfire flux (kg m-2 s-1)
+76 76 Emission rate (kg kg-1 s-1)
+77 77 Surface emission flux (kg m-2 s-1)
+78 78 Column integrated eastward mass flux (kg m-1 s-1)
+79 79 Column integrated northward mass flux (kg m-1 s-1)
+80 80 Column integrated divergence of mass flux (kg m-2 s-1)
+81 81 Column integrated net source (kg m-2 s-1)
+# 82-99 Reserved
+100 100 Surface area density (aerosol) (/m)
+101 101 Vertical visual range (m)
+102 102 Aerosol optical thickness (Numeric)
+103 103 Single scattering albedo (Numeric)
+104 104 Asymmetry factor (Numeric)
+105 105 Aerosol extinction coefficient (/m)
+106 106 Aerosol absorption coefficient (/m)
+107 107 Aerosol lidar backscatter from satellite (m-1 sr-1)
+108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
+109 109 Aerosol lidar extinction from satellite (/m)
+110 110 Aerosol lidar extinction from the ground (/m)
+111 111 Angstrom exponent (Numeric)
+# 112-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.21.table b/definitions/grib2/tables/32/4.2.0.21.table
new file mode 100644
index 000000000..05646e1a6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.21.table
@@ -0,0 +1,27 @@
+# Product discipline 0 - Meteorological products, parameter category 21: thermodynamic properties
+0 0 Column integrated potential + internal energy (J m-2)
+1 1 Column integrated kinetic energy (J m-2)
+2 2 Column integrated total energy (J m-2)
+3 3 Column integrated enthalpy (J m-2)
+4 4 Column integrated water enthalpy (J m-2)
+5 5 Column integrated eastward enthalpy flux (W m-1)
+6 6 Column integrated northward enthalpy flux (W m-1)
+7 7 Column integrated eastward potential energy flux (W m-1)
+8 8 Column integrated northward potential energy flux (W m-1)
+9 9 Column integrated eastward kinetic energy flux (W m-1)
+10 10 Column integrated northward kinetic energy flux (W m-1)
+11 11 Column integrated eastward total energy flux (W m-1)
+12 12 Column integrated northward total energy flux (W m-1)
+13 13 Divergence of column integrated enthalpy flux (W m-2)
+14 14 Divergence of column integrated potential energy flux (W m-2)
+15 15 Divergence of column integrated water potential energy flux (W m-2)
+16 16 Divergence of column integrated kinetic energy flux (W m-2)
+17 17 Divergence of column integrated total energy flux (W m-2)
+18 18 Divergence of column integrated water enthalpy flux (W m-2)
+19 19 Column integrated eastward heat flux (W m-1)
+20 20 Column integrated northward heat flux (W m-1)
+21 21 Column integrated potential+internal+latent energy (J m-2)
+22 22 Eady growth rate (day-1)
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.3.table b/definitions/grib2/tables/32/4.2.0.3.table
new file mode 100644
index 000000000..d685de2ef
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.3.table
@@ -0,0 +1,51 @@
+# Product discipline 0 - Meteorological products, parameter category 3: mass
+0 0 Pressure (Pa)
+1 1 Pressure reduced to MSL (Pa)
+2 2 Pressure tendency (Pa/s)
+3 3 ICAO Standard Atmosphere Reference Height (m)
+4 4 Geopotential (m2 s-2)
+5 5 Geopotential height (gpm)
+6 6 Geometric height (m)
+7 7 Standard deviation of height (m)
+8 8 Pressure anomaly (Pa)
+9 9 Geopotential height anomaly (gpm)
+10 10 Density (kg m-3)
+11 11 Altimeter setting (Pa)
+12 12 Thickness (m)
+13 13 Pressure altitude (m)
+14 14 Density altitude (m)
+15 15 5-wave geopotential height (gpm)
+16 16 Zonal flux of gravity wave stress (N m-2)
+17 17 Meridional flux of gravity wave stress (N m-2)
+18 18 Planetary boundary layer height (m)
+19 19 5-wave geopotential height anomaly (gpm)
+20 20 Standard deviation of sub-grid scale orography (m)
+21 21 Angle of sub-gridscale orography (rad)
+22 22 Slope of sub-gridscale orography (Numeric)
+23 23 Gravity wave dissipation (W m-2)
+24 24 Anisotropy of sub-gridscale orography (Numeric)
+25 25 Natural logarithm of pressure in Pa (Numeric)
+26 26 Exner pressure (Numeric)
+27 27 Updraught mass flux (kg m-2 s-1)
+28 28 Downdraught mass flux (kg m-2 s-1)
+29 29 Updraught detrainment rate (kg m-3 s-1)
+30 30 Downdraught detrainment rate (kg m-3 s-1)
+31 31 Unbalanced component of logarithm of surface pressure (-)
+32 32 Saturation water vapour pressure (Pa)
+33 33 Geometric altitude above mean sea level (m)
+34 34 Geometric height above ground level (m)
+35 35 Column integrated divergence of total mass flux (kg m-2 s-1)
+36 36 Column integrated eastward total mass flux (kg m-1 s-1)
+37 37 Column integrated northward total mass flux (kg m-1 s-1)
+38 38 Standard deviation of filtered subgrid orography (m)
+39 39 Column integrated mass of atmosphere (kg m-2)
+40 40 Column integrated eastward geopotential flux (W m-1)
+41 41 Column integrated northward geopotential flux (W m-1)
+42 42 Column integrated divergence of water geopotential flux (W m-2)
+43 43 Column integrated divergence of geopotential flux (W m-2)
+44 44 Height of zero-degree wet-bulb temperature (m)
+45 45 Height of one-degree wet-bulb temperature (m)
+46 46 Pressure departure from hydrostatic state (Pa)
+# 47-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.4.table b/definitions/grib2/tables/32/4.2.0.4.table
new file mode 100644
index 000000000..88c24ae52
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.4.table
@@ -0,0 +1,33 @@
+# Product discipline 0 - Meteorological products, parameter category 4: short-wave radiation
+0 0 Net short-wave radiation flux (surface) (W m-2)
+1 1 Net short-wave radiation flux (top of atmosphere) (W m-2)
+2 2 Short-wave radiation flux (W m-2)
+3 3 Global radiation flux (W m-2)
+4 4 Brightness temperature (K)
+5 5 Radiance (with respect to wave number) (W m-1 sr-1)
+6 6 Radiance (with respect to wavelength) (W m-3 sr-1)
+7 7 Downward short-wave radiation flux (W m-2)
+8 8 Upward short-wave radiation flux (W m-2)
+9 9 Net short wave radiation flux (W m-2)
+10 10 Photosynthetically active radiation (W m-2)
+11 11 Net short-wave radiation flux, clear sky (W m-2)
+12 12 Downward UV radiation (W m-2)
+13 13 Direct short-wave radiation flux (W m-2)
+14 14 Diffuse short-wave radiation flux (W m-2)
+15 15 Upward UV radiation emitted/reflected from the Earth's surface (W m-2)
+# 16-49 Reserved
+50 50 UV index (under clear sky) (Numeric)
+51 51 UV index (Numeric)
+52 52 Downward short-wave radiation flux, clear sky (W m-2)
+53 53 Upward short-wave radiation flux, clear sky (W m-2)
+54 54 Direct normal short-wave radiation flux (W m-2)
+55 55 UV visible albedo for diffuse radiation (%)
+56 56 UV visible albedo for direct radiation (%)
+57 57 UV visible albedo for direct radiation, geometric component (%)
+58 58 UV visible albedo for direct radiation, isotropic component (%)
+59 59 UV visible albedo for direct radiation, volumetric component (%)
+60 60 Photosynthetically active radiation flux, clear sky (W m-2)
+61 61 Direct short-wave radiation flux, clear sky (W m-2)
+# 62-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.5.table b/definitions/grib2/tables/32/4.2.0.5.table
new file mode 100644
index 000000000..7065106a2
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.5.table
@@ -0,0 +1,18 @@
+# Product discipline 0 - Meteorological products, parameter category 5: long-wave radiation
+0 0 Net long-wave radiation flux (surface) (W m-2)
+1 1 Net long-wave radiation flux (top of atmosphere) (W m-2)
+2 2 Long-wave radiation flux (W m-2)
+3 3 Downward long-wave radiation flux (W m-2)
+4 4 Upward long-wave radiation flux (W m-2)
+5 5 Net long-wave radiation flux (W m-2)
+6 6 Net long-wave radiation flux, clear sky (W m-2)
+7 7 Brightness temperature (K)
+8 8 Downward long-wave radiation flux, clear sky (W m-2)
+9 9 Near IR albedo for diffuse radiation (%)
+10 10 Near IR albedo for direct radiation (%)
+11 11 Near IR albedo for direct radiation, geometric component (%)
+12 12 Near IR albedo for direct radiation, isotropic component (%)
+13 13 Near IR albedo for direct radiation, volumetric component (%)
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.6.table b/definitions/grib2/tables/32/4.2.0.6.table
new file mode 100644
index 000000000..d831f3474
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.6.table
@@ -0,0 +1,51 @@
+# Product discipline 0 - Meteorological products, parameter category 6: cloud
+0 0 Cloud ice (kg m-2)
+1 1 Total cloud cover (%)
+2 2 Convective cloud cover (%)
+3 3 Low cloud cover (%)
+4 4 Medium cloud cover (%)
+5 5 High cloud cover (%)
+6 6 Cloud water (kg m-2)
+7 7 Cloud amount (%)
+8 8 Cloud type (Code table 4.203)
+9 9 Thunderstorm maximum tops (m)
+10 10 Thunderstorm coverage (Code table 4.204)
+11 11 Cloud base (m)
+12 12 Cloud top (m)
+13 13 Ceiling (m)
+14 14 Non-convective cloud cover (%)
+15 15 Cloud work function (J/kg)
+16 16 Convective cloud efficiency (Proportion)
+17 17 Total condensate (kg/kg)
+18 18 Total column-integrated cloud water (kg m-2)
+19 19 Total column-integrated cloud ice (kg m-2)
+20 20 Total column-integrated condensate (kg m-2)
+21 21 Ice fraction of total condensate (Proportion)
+22 22 Cloud cover (%)
+23 23 Cloud ice mixing ratio (kg/kg)
+24 24 Sunshine (Numeric)
+25 25 Horizontal extent of cumulonimbus (CB) (%)
+26 26 Height of convective cloud base (m)
+27 27 Height of convective cloud top (m)
+28 28 Number of cloud droplets per unit mass of air (/kg)
+29 29 Number of cloud ice particles per unit mass of air (/kg)
+30 30 Number density of cloud droplets (m-3)
+31 31 Number density of cloud ice particles (m-3)
+32 32 Fraction of cloud cover (Numeric)
+33 33 Sunshine duration (s)
+34 34 Surface long-wave effective total cloudiness (Numeric)
+35 35 Surface short-wave effective total cloudiness (Numeric)
+36 36 Fraction of stratiform precipitation cover (Proportion)
+37 37 Fraction of convective precipitation cover (Proportion)
+38 38 Mass density of cloud droplets (kg m-3)
+39 39 Mass density of cloud ice (kg m-3)
+40 40 Mass density of convective cloud water droplets (kg m-3)
+# 41-46 Reserved
+47 47 Volume fraction of cloud water droplets (Numeric)
+48 48 Volume fraction of cloud ice particles (Numeric)
+49 49 Volume fraction of cloud (ice and/or water) (Numeric)
+50 50 Fog (%)
+51 51 Sunshine duration fraction (Proportion)
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.0.7.table b/definitions/grib2/tables/32/4.2.0.7.table
new file mode 100644
index 000000000..15acb1857
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.0.7.table
@@ -0,0 +1,25 @@
+# Product discipline 0 - Meteorological products, parameter category 7: thermodynamic stability indices
+0 0 Parcel lifted index (to 500 hPa) (K)
+1 1 Best lifted index (to 500 hPa) (K)
+2 2 K index (K)
+3 3 KO index (K)
+4 4 Total totals index (K)
+5 5 Sweat index (Numeric)
+6 6 Convective available potential energy (J/kg)
+7 7 Convective inhibition (J/kg)
+8 8 Storm relative helicity (J/kg)
+9 9 Energy helicity index (Numeric)
+10 10 Surface lifted index (K)
+11 11 Best (4-layer) lifted index (K)
+12 12 Richardson number (Numeric)
+13 13 Showalter index (K)
+14 14 Reserved
+15 15 Updraught helicity (m2 s-2)
+16 16 Bulk Richardson number (Numeric)
+17 17 Gradient Richardson number (Numeric)
+18 18 Flux Richardson number (Numeric)
+19 19 Convective available potential energy - shear (m2 s-2)
+20 20 Thunderstorm intensity index (Code table 4.246)
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.1.0.table b/definitions/grib2/tables/32/4.2.1.0.table
new file mode 100644
index 000000000..49056313b
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.1.0.table
@@ -0,0 +1,24 @@
+# Product discipline 1 - Hydrological products, parameter category 0: hydrology basic products
+0 0 Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time) (kg m-2)
+1 1 Flash flood runoff (Encoded as an accumulation over a floating subinterval of time) (kg m-2)
+2 2 Remotely-sensed snow cover (Code table 4.215)
+3 3 Elevation of snow-covered terrain (Code table 4.216)
+4 4 Snow water equivalent per cent of normal (%)
+5 5 Baseflow-groundwater runoff (kg m-2)
+6 6 Storm surface runoff (kg m-2)
+7 7 Discharge from rivers or streams (m3/s)
+8 8 Groundwater upper storage (kg m-2)
+9 9 Groundwater lower storage (kg m-2)
+10 10 Side flow into river channel (m3 s-1 m-1)
+11 11 River storage of water (m3)
+12 12 Floodplain storage of water (m3)
+13 13 Depth of water on soil surface (kg m-2)
+14 14 Upstream accumulated precipitation (kg m-2)
+15 15 Upstream accumulated snow melt (kg m-2)
+16 16 Percolation rate (kg m-2 s-1)
+17 17 River outflow of water (m3 s-1)
+18 18 Floodplain outflow of water (m3 s-1)
+19 19 Floodpath outflow of water (m3 s-1)
+# 20-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.1.1.table b/definitions/grib2/tables/32/4.2.1.1.table
new file mode 100644
index 000000000..e3931d5e6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.1.1.table
@@ -0,0 +1,7 @@
+# Product discipline 1 - Hydrological products, parameter category 1: hydrology probabilities
+0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
+1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
+2 2 Probability of 0.01 inch of precipitation (POP) (%)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.1.2.table b/definitions/grib2/tables/32/4.2.1.2.table
new file mode 100644
index 000000000..7c3773afd
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.1.2.table
@@ -0,0 +1,21 @@
+# Product discipline 1 - Hydrological products, parameter category 2: inland water and sediment properties
+0 0 Water depth (m)
+1 1 Water temperature (K)
+2 2 Water fraction (Proportion)
+3 3 Sediment thickness (m)
+4 4 Sediment temperature (K)
+5 5 Ice thickness (m)
+6 6 Ice temperature (K)
+7 7 Ice cover (Proportion)
+8 8 Land cover (0 = water, 1 = land) (Proportion)
+9 9 Shape factor with respect to salinity profile (-)
+10 10 Shape factor with respect to temperature profile in thermocline (-)
+11 11 Attenuation coefficient of water with respect to solar radiation (/m)
+12 12 Salinity (kg/kg)
+13 13 Cross-sectional area of flow in channel (m2)
+14 14 Snow temperature (K)
+15 15 Lake depth (m)
+16 16 River depth (m)
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.0.table b/definitions/grib2/tables/32/4.2.10.0.table
new file mode 100644
index 000000000..0c9be88f6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.0.table
@@ -0,0 +1,102 @@
+# Product discipline 10 - Oceanographic products, parameter category 0: waves
+0 0 Wave spectra (1) (-)
+1 1 Wave spectra (2) (-)
+2 2 Wave spectra (3) (-)
+3 3 Significant height of combined wind waves and swell (m)
+4 4 Direction of wind waves (degree true)
+5 5 Significant height of wind waves (m)
+6 6 Mean period of wind waves (s)
+7 7 Direction of swell waves (degree true)
+8 8 Significant height of swell waves (m)
+9 9 Mean period of swell waves (s)
+10 10 Primary wave direction (degree true)
+11 11 Primary wave mean period (s)
+12 12 Secondary wave direction (degree true)
+13 13 Secondary wave mean period (s)
+14 14 Mean direction of combined wind waves and swell (degree true)
+15 15 Mean period of combined wind waves and swell (s)
+16 16 Coefficient of drag with waves (-)
+17 17 Friction velocity (m/s)
+18 18 Wave stress (N m-2)
+19 19 Normalized wave stress (-)
+20 20 Mean square slope of waves (-)
+21 21 u-component surface Stokes drift (m/s)
+22 22 v-component surface Stokes drift (m/s)
+23 23 Period of maximum individual wave height (s)
+24 24 Maximum individual wave height (m)
+25 25 Inverse mean wave frequency (s)
+26 26 Inverse mean frequency of wind waves (s)
+27 27 Inverse mean frequency of total swell (s)
+28 28 Mean zero-crossing wave period (s)
+29 29 Mean zero-crossing period of wind waves (s)
+30 30 Mean zero-crossing period of total swell (s)
+31 31 Wave directional width (-)
+32 32 Directional width of wind waves (-)
+33 33 Directional width of total swell (-)
+34 34 Peak wave period (s)
+35 35 Peak period of wind waves (s)
+36 36 Peak period of total swell (s)
+37 37 Altimeter wave height (m)
+38 38 Altimeter corrected wave height (m)
+39 39 Altimeter range relative correction (-)
+40 40 10-metre neutral wind speed over waves (m/s)
+41 41 10-metre wind direction over waves (deg)
+42 42 Wave energy spectrum (m2 s rad-1)
+43 43 Kurtosis of the sea-surface elevation due to waves (-)
+44 44 Benjamin-Feir index (-)
+45 45 Spectral peakedness factor (/s)
+46 46 Peak wave direction (deg)
+47 47 Significant wave height of first swell partition (m)
+48 48 Significant wave height of second swell partition (m)
+49 49 Significant wave height of third swell partition (m)
+50 50 Mean wave period of first swell partition (s)
+51 51 Mean wave period of second swell partition (s)
+52 52 Mean wave period of third swell partition (s)
+53 53 Mean wave direction of first swell partition (deg)
+54 54 Mean wave direction of second swell partition (deg)
+55 55 Mean wave direction of third swell partition (deg)
+56 56 Wave directional width of first swell partition (-)
+57 57 Wave directional width of second swell partition (-)
+58 58 Wave directional width of third swell partition (-)
+59 59 Wave frequency width of first swell partition (-)
+60 60 Wave frequency width of second swell partition (-)
+61 61 Wave frequency width of third swell partition (-)
+62 62 Wave frequency width (-)
+63 63 Frequency width of wind waves (-)
+64 64 Frequency width of total swell (-)
+65 65 Peak wave period of first swell partition (s)
+66 66 Peak wave period of second swell partition (s)
+67 67 Peak wave period of third swell partition (s)
+68 68 Peak wave direction of first swell partition (degree true)
+69 69 Peak wave direction of second swell partition (degree true)
+70 70 Peak wave direction of third swell partition (degree true)
+71 71 Peak direction of wind waves (degree true)
+72 72 Peak direction of total swell (degree true)
+73 73 Whitecap fraction (fraction)
+74 74 Mean direction of total swell (degree)
+75 75 Mean direction of wind waves (degree)
+76 76 Charnock (Numeric)
+77 77 Wave Spectral Skewness (Numeric)
+78 78 Wave energy flux magnitude (W m-1)
+79 79 Wave energy flux mean direction (degree true)
+80 80 Ratio of wave angular and frequency width (Numeric)
+81 81 Free convective velocity over the oceans (m s-1)
+82 82 Air density over the oceans (kg m-3)
+83 83 Normalized energy flux into waves (Numeric)
+84 84 Normalized stress into ocean (Numeric)
+85 85 Normalized energy flux into ocean (Numeric)
+86 86 Surface elevation variance due to waves (over all frequencies and directions) (m2 s rad-1)
+87 87 Wave induced mean sea level correction (m)
+88 88 Spectral width index (Numeric)
+89 89 Number of events in freak waves statistics (Numeric)
+90 90 u-component of surface momentum flux into ocean (N m-2)
+91 91 v-component of surface momentum flux into ocean (N m-2)
+92 92 Wave turbulent energy flux into ocean (W m-2)
+93 93 Envelop maximum individual wave height (m)
+94 94 Time domain maximum individual crest height (m)
+95 95 Time domain maximum individual wave height (m)
+96 96 Space time maximum individual crest height (m)
+97 97 Space time maximum individual wave height (m)
+# 98-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.1.table b/definitions/grib2/tables/32/4.2.10.1.table
new file mode 100644
index 000000000..aeec67455
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.1.table
@@ -0,0 +1,11 @@
+# Product discipline 10 - Oceanographic products, parameter category 1: currents
+0 0 Current direction (degree true)
+1 1 Current speed (m/s)
+2 2 u-component of current (m/s)
+3 3 v-component of current (m/s)
+4 4 Rip current occurrence probability (%)
+5 5 Eastward current (m s-1)
+6 6 Northward current (m s-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.191.table b/definitions/grib2/tables/32/4.2.10.191.table
new file mode 100644
index 000000000..cd4d4cde7
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.191.table
@@ -0,0 +1,9 @@
+# Product discipline 10 - Oceanographic products, parameter category 191: miscellaneous
+0 0 Seconds prior to initial reference time (defined in Section 1) (s)
+1 1 Meridional overturning stream function (m3/s)
+2 2 Reserved
+3 3 Days since last observation (d)
+4 4 Barotropic stream function (m3 s-1)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.2.table b/definitions/grib2/tables/32/4.2.10.2.table
new file mode 100644
index 000000000..6200dffca
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.2.table
@@ -0,0 +1,30 @@
+# Product discipline 10 - Oceanographic products, parameter category 2: ice
+0 0 Ice cover (Proportion)
+1 1 Ice thickness (m)
+2 2 Direction of ice drift (degree true)
+3 3 Speed of ice drift (m/s)
+4 4 u-component of ice drift (m/s)
+5 5 v-component of ice drift (m/s)
+6 6 Ice growth rate (m/s)
+7 7 Ice divergence (/s)
+8 8 Ice temperature (K)
+9 9 Module of ice internal pressure (Pa m)
+10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
+11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
+12 12 Compressive ice strength (N/m)
+13 13 Snow temperature (over sea ice) (K)
+14 14 Albedo (Numeric)
+15 15 Sea ice volume per unit area (m3 m-2)
+16 16 Snow volume over sea ice per unit area (m3 m-2)
+17 17 Sea ice heat content (J m-2)
+18 18 Snow over sea ice heat content (J m-2)
+19 19 Ice freeboard thickness (m)
+20 20 Ice melt pond fraction (fraction)
+21 21 Ice melt pond depth (m)
+22 22 Ice melt pond volume per unit area (m3 m-2)
+23 23 Sea ice fraction tendency due to parameterization (s-1)
+24 24 x-component of ice drift (m s-1)
+25 25 y-component of ice drift (m s-1)
+# 26-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.3.table b/definitions/grib2/tables/32/4.2.10.3.table
new file mode 100644
index 000000000..6c4277c8e
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.3.table
@@ -0,0 +1,26 @@
+# Product discipline 10 - Oceanographic products, parameter category 3: surface properties
+0 0 Water temperature (K)
+1 1 Deviation of sea level from mean (m)
+2 2 Heat exchange coefficient (-)
+3 3 Practical salinity (Numeric)
+4 4 Downward heat flux (W m-2)
+5 5 Eastward surface stress (N m-2)
+6 6 Northward surface stress (N m-2)
+7 7 x-component surface stress (N m-2)
+8 8 y-component surface stress (N m-2)
+9 9 Thermosteric change in sea surface height (m)
+10 10 Halosteric change in sea surface height (m)
+11 11 Steric change in sea surface height (m)
+12 12 Sea salt flux (kg m-2 s-1)
+13 13 Net upward water flux (kg m-2 s-1)
+14 14 Eastward surface water velocity (m s-1)
+15 15 Northward surface water velocity (m s-1)
+16 16 x-component of surface water velocity (m s-1)
+17 17 y-component of surface water velocity (m s-1)
+18 18 Heat flux correction (W m-2)
+19 19 Sea surface height tendency due to parameterization (m s-1)
+20 20 Deviation of sea level from mean with inverse barometer correction (m)
+21 21 Salinity (kg kg-1)
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.10.4.table b/definitions/grib2/tables/32/4.2.10.4.table
new file mode 100644
index 000000000..0b9ef0956
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.10.4.table
@@ -0,0 +1,54 @@
+# Product discipline 10 - Oceanographic products, parameter category 4: subsurface properties
+0 0 Main thermocline depth (m)
+1 1 Main thermocline anomaly (m)
+2 2 Transient thermocline depth (m)
+3 3 Salinity (kg/kg)
+4 4 Ocean vertical heat diffusivity (m2/s)
+5 5 Ocean vertical salt diffusivity (m2/s)
+6 6 Ocean vertical momentum diffusivity (m2/s)
+7 7 Bathymetry (m)
+# 8-10 Reserved
+11 11 Shape factor with respect to salinity profile (-)
+12 12 Shape factor with respect to temperature profile in thermocline (-)
+13 13 Attenuation coefficient of water with respect to solar radiation (/m)
+14 14 Water depth (m)
+15 15 Water temperature (K)
+16 16 Water density (rho) (kg m-3)
+17 17 Water density anomaly (sigma) (kg m-3)
+18 18 Water potential temperature (theta) (K)
+19 19 Water potential density (rho theta) (kg m-3)
+20 20 Water potential density anomaly (sigma theta) (kg m-3)
+21 21 Practical salinity (Numeric)
+22 22 Water column-integrated heat content (J m-2)
+23 23 Eastward water velocity (m s-1)
+24 24 Northward water velocity (m s-1)
+25 25 x-component water velocity (m s-1)
+26 26 y-component water velocity (m s-1)
+27 27 Upward water velocity (m s-1)
+28 28 Vertical eddy diffusivity (m2 s-1)
+29 29 Bottom pressure equivalent height (m)
+30 30 Fresh water flux into sea water from rivers (kg m-2 s-1)
+31 31 Fresh water flux correction (kg m-2 s-1)
+32 32 Virtual salt flux into sea water (g kg-1 m-2 s-1)
+33 33 Virtual salt flux correction (g kg-1 m-2 s-1)
+34 34 Sea water temperature tendency due to Newtonian relaxation (K s-1)
+35 35 Sea water salinity tendency due to Newtonian relaxation (g kg-1 s-1)
+36 36 Sea water temperature tendency due to parameterization (K s-1)
+37 37 Sea water salinity tendency due to parameterization (g kg-1 s-1)
+38 38 Eastward sea water velocity tendency due to parameterization (m s-2)
+39 39 Northward sea water velocity tendency due to parameterization (m s-2)
+40 40 Sea water temperature tendency due to direct bias correction (K s-1)
+41 41 Sea water salinity tendency due to direct bias correction (g kg-1 s-1)
+42 42 Sea water meridional volume transport (m3 m-2 s-1)
+43 43 Sea water zonal volume transport (m3 m-2 s-1)
+44 44 Sea water column integrated meridional volume transport (m3 m-1 s-1)
+45 45 Sea water column integrated zonal volume transport (m3 m-1 s-1)
+46 46 Sea water meridional mass transport (kg m-2 s-1)
+47 47 Sea water zonal mass transport (kg m-2 s-1)
+48 48 Sea water column integrated meridional mass transport (kg m-1 s-1)
+49 49 Sea water column integrated zonal mass transport (kg m-1 s-1)
+50 50 Sea water column integrated practical salinity (g kg-1 m)
+51 51 Sea water column integrated salinity (kg kg-1 m)
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.2.0.table b/definitions/grib2/tables/32/4.2.2.0.table
new file mode 100644
index 000000000..8daeafd85
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.2.0.table
@@ -0,0 +1,68 @@
+# Product discipline 2 - Land surface products, parameter category 0: vegetation/biomass
+0 0 Land cover (0 = sea, 1 = land) (Proportion)
+1 1 Surface roughness (m)
+2 2 Soil temperature (K)
+3 3 Soil moisture content (kg m-2)
+4 4 Vegetation (%)
+5 5 Water runoff (kg m-2)
+6 6 Evapotranspiration (kg-2 s-1)
+7 7 Model terrain height (m)
+8 8 Land use (Code table 4.212)
+9 9 Volumetric soil moisture content (Proportion)
+10 10 Ground heat flux (W m-2)
+11 11 Moisture availability (%)
+12 12 Exchange coefficient (kg m-2 s-1)
+13 13 Plant canopy surface water (kg m-2)
+14 14 Blackadar's mixing length scale (m)
+15 15 Canopy conductance (m/s)
+16 16 Minimal stomatal resistance (s/m)
+17 17 Wilting point (Proportion)
+18 18 Solar parameter in canopy conductance (Proportion)
+19 19 Temperature parameter in canopy (Proportion)
+20 20 Humidity parameter in canopy conductance (Proportion)
+21 21 Soil moisture parameter in canopy conductance (Proportion)
+22 22 Soil moisture (kg m-3)
+23 23 Column-integrated soil water (kg m-2)
+24 24 Heat flux (W m-2)
+25 25 Volumetric soil moisture (m3 m-3)
+26 26 Wilting point (kg m-3)
+27 27 Volumetric wilting point (m3 m-3)
+28 28 Leaf area index (Numeric)
+29 29 Evergreen forest cover (Proportion)
+30 30 Deciduous forest cover (Proportion)
+31 31 Normalized differential vegetation index (NDVI) (Numeric)
+32 32 Root depth of vegetation (m)
+33 33 Water runoff and drainage (kg m-2)
+34 34 Surface water runoff (kg m-2)
+35 35 Tile class (Code table 4.243)
+36 36 Tile fraction (Proportion)
+37 37 Tile percentage (%)
+38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
+39 39 Evapotranspiration rate (kg m-2 s-1)
+40 40 Potential evapotranspiration rate (kg m-2 s-1)
+41 41 Snow melt rate (kg m-2 s-1)
+42 42 Water runoff and drainage rate (kg m-2 s-1)
+43 43 Drainage direction (Code table 4.250)
+44 44 Upstream area (m2)
+45 45 Wetland cover (Proportion)
+46 46 Wetland type (Code table 4.239)
+47 47 Irrigation cover (Proportion)
+48 48 C4 crop cover (Proportion)
+49 49 C4 grass cover (Proportion)
+50 50 Skin reservoir content (kg m-2)
+51 51 Surface runoff rate (kg m-2 s-1)
+52 52 Subsurface runoff rate (kg m-2 s-1)
+53 53 Low-vegetation cover (Proportion)
+54 54 High-vegetation cover (Proportion)
+55 55 Leaf area index, low-vegetation (m2 m-2)
+56 56 Leaf area index, high-vegetation (m2 m-2)
+57 57 Type of low-vegetation (Code table 4.234)
+58 58 Type of high-vegetation (Code table 4.234)
+59 59 Net ecosystem exchange flux (kg m-2 s-1)
+60 60 Gross primary production flux (kg m-2 s-1)
+61 61 Ecosystem respiration flux (kg m-2 s-1)
+62 62 Emissivity (Proportion)
+63 63 Canopy air temperature (K)
+# 64-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.2.3.table b/definitions/grib2/tables/32/4.2.2.3.table
new file mode 100644
index 000000000..ad6b618f2
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.2.3.table
@@ -0,0 +1,35 @@
+# Product discipline 2 - Land surface products, parameter category 3: soil products
+0 0 Soil type (Code table 4.213)
+1 1 Upper layer soil temperature (K)
+2 2 Upper layer soil moisture (kg m-3)
+3 3 Lower layer soil moisture (kg m-3)
+4 4 Bottom layer soil temperature (K)
+5 5 Liquid volumetric soil moisture (non-frozen) (Proportion)
+6 6 Number of soil layers in root zone (Numeric)
+7 7 Transpiration stress-onset (soil moisture) (Proportion)
+8 8 Direct evaporation cease (soil moisture) (Proportion)
+9 9 Soil porosity (Proportion)
+10 10 Liquid volumetric soil moisture (non-frozen) (m3 m-3)
+11 11 Volumetric transpiration stress-onset (soil moisture) (m3 m-3)
+12 12 Transpiration stress-onset (soil moisture) (kg m-3)
+13 13 Volumetric direct evaporation cease (soil moisture) (m3 m-3)
+14 14 Direct evaporation cease (soil moisture) (kg m-3)
+15 15 Soil porosity (m3 m-3)
+16 16 Volumetric saturation of soil moisture (m3 m-3)
+17 17 Saturation of soil moisture (kg m-3)
+18 18 Soil temperature (K)
+19 19 Soil moisture (kg m-3)
+20 20 Column-integrated soil moisture (kg m-2)
+21 21 Soil ice (kg m-3)
+22 22 Column-integrated soil ice (kg m-2)
+23 23 Liquid water in snow pack (kg m-2)
+24 24 Frost index (K day-1)
+25 25 Snow depth at elevation bands (kg m-2)
+26 26 Soil heat flux (W m-2)
+27 27 Soil depth (m)
+28 28 Snow temperature (K)
+29 29 Ice temperature (K)
+30 30 Soil wetness index (Numeric)
+# 31-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.2.4.table b/definitions/grib2/tables/32/4.2.2.4.table
new file mode 100644
index 000000000..d5c1d641c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.2.4.table
@@ -0,0 +1,40 @@
+# Product discipline 2 - Land surface products, parameter category 4: fire weather products
+0 0 Fire outlook (Code table 4.224)
+1 1 Fire outlook due to dry thunderstorm (Code table 4.224)
+2 2 Haines index (Numeric)
+3 3 Fire burned area (%)
+4 4 Fosberg index (Numeric)
+5 5 Forest Fire Weather Index (as defined by the Canadian Forest Service) (Numeric)
+6 6 Fine Fuel Moisture Code (as defined by the Canadian Forest Service) (Numeric)
+7 7 Duff Moisture Code (as defined by the Canadian Forest Service) (Numeric)
+8 8 Drought Code (as defined by the Canadian Forest Service) (Numeric)
+9 9 Initial Fire Spread Index (as defined by the Canadian Forest Service) (Numeric)
+10 10 Fire Buildup Index (as defined by the Canadian Forest Service) (Numeric)
+11 11 Fire Daily Severity Rating (as defined by the Canadian Forest Service) (Numeric)
+12 12 Keetch-Byram drought index (Numeric)
+13 13 Drought factor (as defined by the Australian forest service ) (Numeric)
+14 14 Rate of spread (as defined by the Australian forest service ) (m/s)
+15 15 Fire danger index (as defined by the Australian forest service ) (Numeric)
+16 16 Spread component (as defined by the US Forest Service National Fire Danger Rating System) (Numeric)
+17 17 Burning index (as defined by the US Forest Service National Fire Danger Rating System) (Numeric)
+18 18 Ignition component (as defined by the US Forest Service National Fire Danger Rating System) (%)
+19 19 Energy release component (as defined by the US Forest Service National Fire Danger Rating System) (Joule/m2)
+20 20 Burning area (%)
+21 21 Burnable area (%)
+22 22 Unburnable area (%)
+23 23 Fuel load (kg m-2)
+24 24 Combustion completeness (%)
+25 25 Fuel moisture content (kg kg-1)
+26 26 Wildfire potential (as defined by the US NOAA Global Systems Laboratory) (Numeric)
+27 27 Live leaf fuel load (kg m-2)
+28 28 Live wood fuel load (kg m-2)
+29 29 Dead leaf fuel load (kg m-2)
+30 30 Dead wood fuel load (kg m-2)
+31 31 Live fuel moisture content (kg kg-1)
+32 32 Fine dead leaf moisture content (kg kg-1)
+33 33 Dense dead leaf moisture content (kg kg-1)
+34 34 Fine dead wood moisture content (kg kg-1)
+35 35 Dense dead wood moisture content (kg kg-1)
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.2.5.table b/definitions/grib2/tables/32/4.2.2.5.table
new file mode 100644
index 000000000..1d08dd573
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.2.5.table
@@ -0,0 +1,6 @@
+# Product discipline 2 - Land surface products, parameter category 5: glaciers and inland ice
+0 0 Glacier cover (Proportion)
+1 1 Glacier temperature (K)
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.2.6.table b/definitions/grib2/tables/32/4.2.2.6.table
new file mode 100644
index 000000000..7a7712af0
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.2.6.table
@@ -0,0 +1,13 @@
+# Product discipline 2 - Land surface products, parameter category 6: urban areas
+0 0 Urban cover (Proportion)
+1 1 Road cover (Proportion)
+2 2 Building cover (Proportion)
+3 3 Building height (m)
+4 4 Vertical-to-horizontal area fraction (m2 m-2)
+5 5 Standard deviation of building height (m)
+6 6 Distance downward from roof surface (m)
+7 7 Distance inward from outer wall surface (m)
+8 8 Distance downward from road surface (m)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.20.0.table b/definitions/grib2/tables/32/4.2.20.0.table
new file mode 100644
index 000000000..a997371d9
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.20.0.table
@@ -0,0 +1,13 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 0: health indicators
+0 0 Universal thermal climate index (K)
+1 1 Mean radiant temperature (K)
+2 2 Wet-bulb globe temperature (K)
+3 3 Globe temperature (K)
+4 4 Humidex (K)
+5 5 Effective temperature (K)
+6 6 Normal effective temperature (K)
+7 7 Standard effective temperature (K)
+8 8 Physiological equivalent temperature (K)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.20.1.table b/definitions/grib2/tables/32/4.2.20.1.table
new file mode 100644
index 000000000..0712cd8d1
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.20.1.table
@@ -0,0 +1,14 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 1: epidemiology
+0 0 Malaria cases (Fraction)
+1 1 Malaria circumsporozoite protein rate (Fraction)
+2 2 Plasmodium falciparum entomological inoculation rate (Bites per day per person)
+3 3 Human bite rate by anopheles vectors (Bites per day per person)
+4 4 Malaria immunity (Fraction)
+5 5 Falciparum parasite rates (Fraction)
+6 6 Detectable falciparum parasite ratio (after day 10) (Fraction)
+7 7 Anopheles vector to host ratio (Fraction)
+8 8 Anopheles vector number (Number m-2)
+9 9 Fraction of malarial vector reproductive habitat (Fraction)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.20.2.table b/definitions/grib2/tables/32/4.2.20.2.table
new file mode 100644
index 000000000..d6b9083d1
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.20.2.table
@@ -0,0 +1,5 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 2: socioeconomic indicators
+0 0 Population density (Person m-2)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.20.3.table b/definitions/grib2/tables/32/4.2.20.3.table
new file mode 100644
index 000000000..9c2f80cfa
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.20.3.table
@@ -0,0 +1,14 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 3: renewable energy sector
+0 0 Renewable power capacity (W)
+1 1 Renewable power production rate (W)
+2 2 Wind power capacity (W)
+3 3 Wind power production rate (W)
+4 4 Solar photovoltaic (PV) power capacity (W)
+5 5 Solar photovoltaic (PV) power production rate (W)
+6 6 Solar non-photovoltaic (PV) power capacity (W)
+7 7 Solar non-photovoltaic (PV) power production rate (W)
+8 8 Concentrated solar power (CSP) power capacity (W)
+9 9 Concentrated solar power (CSP) power production rate (W)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.3.0.table b/definitions/grib2/tables/32/4.2.3.0.table
new file mode 100644
index 000000000..0bec15119
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.0.table
@@ -0,0 +1,14 @@
+# Product discipline 3 - Space products, parameter category 0: image format products
+0 0 Scaled radiance (Numeric)
+1 1 Scaled albedo (Numeric)
+2 2 Scaled brightness temperature (Numeric)
+3 3 Scaled precipitable water (Numeric)
+4 4 Scaled lifted index (Numeric)
+5 5 Scaled cloud top pressure (Numeric)
+6 6 Scaled skin temperature (Numeric)
+7 7 Cloud mask (Code table 4.217)
+8 8 Pixel scene type (Code table 4.218)
+9 9 Fire detection indicator (Code table 4.223)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.3.1.table b/definitions/grib2/tables/32/4.2.3.1.table
new file mode 100644
index 000000000..2aec33b42
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.1.table
@@ -0,0 +1,38 @@
+# Product discipline 3 - Space products, parameter category 1: quantitative products
+0 0 Estimated precipitation (kg m-2)
+1 1 Instantaneous rain rate (kg m-2 s-1)
+2 2 Cloud top height (m)
+3 3 Cloud top height quality indicator (Code table 4.219)
+4 4 Estimated u-component of wind (m/s)
+5 5 Estimated v-component of wind (m/s)
+6 6 Number of pixel used (Numeric)
+7 7 Solar zenith angle (deg)
+8 8 Relative azimuth angle (deg)
+9 9 Reflectance in 0.6 micron channel (%)
+10 10 Reflectance in 0.8 micron channel (%)
+11 11 Reflectance in 1.6 micron channel (%)
+12 12 Reflectance in 3.9 micron channel (%)
+13 13 Atmospheric divergence (/s)
+14 14 Cloudy brightness temperature (K)
+15 15 Clear-sky brightness temperature (K)
+16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
+17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
+18 18 Reserved
+19 19 Wind speed (m/s)
+20 20 Aerosol optical thickness at 0.635 um
+21 21 Aerosol optical thickness at 0.810 um
+22 22 Aerosol optical thickness at 1.640 um
+23 23 Angstrom coefficient
+# 24-26 Reserved
+27 27 Bidirectional reflectance factor (Numeric)
+28 28 Brightness temperature (K)
+29 29 Scaled radiance (Numeric)
+30 30 Reflectance in 0.4 micron channel (%)
+31 31 Cloudy reflectance (%)
+32 32 Clear reflectance (%)
+# 33-97 Reserved
+98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric)
+99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1)
+# 100-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.3.2.table b/definitions/grib2/tables/32/4.2.3.2.table
new file mode 100644
index 000000000..a97ce4942
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.2.table
@@ -0,0 +1,24 @@
+# Product discipline 3 - Space products, parameter category 2: cloud properties
+0 0 Clear sky probability (%)
+1 1 Cloud top temperature (K)
+2 2 Cloud top pressure (Pa)
+3 3 Cloud type (Code table 4.218)
+4 4 Cloud phase (Code table 4.218)
+5 5 Cloud optical depth (Numeric)
+6 6 Cloud particle effective radius (m)
+7 7 Cloud liquid water path (kg m-2)
+8 8 Cloud ice water path (kg m-2)
+9 9 Cloud albedo (Numeric)
+10 10 Cloud emissivity (Numeric)
+11 11 Effective absorption optical depth ratio (Numeric)
+30 30 Measurement cost (Numeric)
+31 31 Upper layer cloud optical depth (Numeric)
+32 32 Upper layer cloud top pressure (Pa)
+33 33 Upper layer cloud effective radius (m)
+34 34 Error in upper layer cloud optical depth (Numeric)
+35 35 Error in upper layer cloud top pressure (Pa)
+36 36 Error in upper layer cloud effective radius (m)
+37 37 Lower layer cloud optical depth (Numeric)
+38 38 Lower layer cloud top pressure (Pa)
+39 39 Error in lower layer cloud optical depth (Numeric)
+40 40 Error in lower layer cloud top pressure (Pa)
diff --git a/definitions/grib2/tables/32/4.2.3.3.table b/definitions/grib2/tables/32/4.2.3.3.table
new file mode 100644
index 000000000..c487a578e
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.3.table
@@ -0,0 +1,4 @@
+# Product discipline 3 - Space products, parameter category 3: flight rule conditions
+0 0 Probability of encountering marginal visual flight rule conditions (%)
+1 1 Probability of encountering low instrument flight rule conditions (%)
+2 2 Probability of encountering instrument flight rule conditions (%)
diff --git a/definitions/grib2/tables/32/4.2.3.4.table b/definitions/grib2/tables/32/4.2.3.4.table
new file mode 100644
index 000000000..7f832ff3c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.4.table
@@ -0,0 +1,10 @@
+# Product discipline 3 - Space products, parameter category 4: volcanic ash
+0 0 Volcanic ash probability (%)
+1 1 Volcanic ash cloud top temperature (K)
+2 2 Volcanic ash cloud top pressure (Pa)
+3 3 Volcanic ash cloud top height (m)
+4 4 Volcanic ash cloud emissivity (Numeric)
+5 5 Volcanic ash effective absorption optical depth ratio (Numeric)
+6 6 Volcanic ash cloud optical depth (Numeric)
+7 7 Volcanic ash column density (kg m-2)
+8 8 Volcanic ash particle effective radius (m)
diff --git a/definitions/grib2/tables/32/4.2.3.5.table b/definitions/grib2/tables/32/4.2.3.5.table
new file mode 100644
index 000000000..58a3f12cb
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.5.table
@@ -0,0 +1,7 @@
+# Product discipline 3 - Space products, parameter category 5: sea-surface temperature
+0 0 Interface sea-surface temperature (K)
+1 1 Skin sea-surface temperature (K)
+2 2 Sub-skin sea-surface temperature (K)
+3 3 Foundation sea-surface temperature (K)
+4 4 Estimated bias between sea-surface temperature and standard (K)
+5 5 Estimated standard deviation between sea surface temperature and standard (K)
diff --git a/definitions/grib2/tables/32/4.2.3.6.table b/definitions/grib2/tables/32/4.2.3.6.table
new file mode 100644
index 000000000..62a5ba656
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.3.6.table
@@ -0,0 +1,7 @@
+# Product discipline 3 - Space products, parameter category 6: solar radiation
+0 0 Global solar irradiance (W m-2)
+1 1 Global solar exposure (J m-2)
+2 2 Direct solar irradiance (W m-2)
+3 3 Direct solar exposure (J m-2)
+4 4 Diffuse solar irradiance (W m-2)
+5 5 Diffuse solar exposure (J m-2)
diff --git a/definitions/grib2/tables/32/4.2.4.0.table b/definitions/grib2/tables/32/4.2.4.0.table
new file mode 100644
index 000000000..337308305
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.0.table
@@ -0,0 +1,10 @@
+# Product discipline 4 - Space weather products, parameter category 0: temperature
+0 0 Temperature (K)
+1 1 Electron temperature (K)
+2 2 Proton temperature (K)
+3 3 Ion temperature (K)
+4 4 Parallel temperature (K)
+5 5 Perpendicular temperature (K)
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.1.table b/definitions/grib2/tables/32/4.2.4.1.table
new file mode 100644
index 000000000..9ec11160f
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.1.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 1: momentum
+0 0 Velocity magnitude (speed) (m s-1)
+1 1 1st vector component of velocity (coordinate system dependent) (m s-1)
+2 2 2nd vector component of velocity (coordinate system dependent) (m s-1)
+3 3 3rd vector component of velocity (coordinate system dependent) (m s-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.10.table b/definitions/grib2/tables/32/4.2.4.10.table
new file mode 100644
index 000000000..8f5b19e06
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.10.table
@@ -0,0 +1,12 @@
+# Product discipline 4 - Space weather products, parameter category 10: space weather indices
+0 0 Scintillation index (sigma phi) (rad)
+1 1 Scintillation index S4 (Numeric)
+2 2 Rate of change of TEC index (ROTI) (TECU/min)
+3 3 Disturbance ionosphere index spatial gradient (DIXSG) (Numeric)
+4 4 Along arc TEC rate (AATR) (TECU/min)
+5 5 Kp (Numeric)
+6 6 Equatorial disturbance storm time index (Dst) (nT)
+7 7 Auroral electrojet (AE) (nT)
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.2.table b/definitions/grib2/tables/32/4.2.4.2.table
new file mode 100644
index 000000000..b479b3361
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.2.table
@@ -0,0 +1,18 @@
+# Product discipline 4 - Space weather products, parameter category 2: charged particle mass and number
+0 0 Particle number density (m-3)
+1 1 Electron density (m-3)
+2 2 Proton density (m-3)
+3 3 Ion density (m-3)
+4 4 Vertical total electron content (TECU)
+5 5 HF absorption frequency (Hz)
+6 6 HF absorption (dB)
+7 7 Spread F (m)
+8 8 h'F (m)
+9 9 Critical frequency (Hz)
+10 10 Maximal usable frequency (MUF) (Hz)
+11 11 Peak height (hm) (m)
+12 12 Peak density (Nm) (m-3)
+13 13 Equivalent slab thickness (tau) (km)
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.3.table b/definitions/grib2/tables/32/4.2.4.3.table
new file mode 100644
index 000000000..3b752bbbc
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.3.table
@@ -0,0 +1,12 @@
+# Product discipline 4 - Space weather products, parameter category 3: electric and magnetic fields
+0 0 Magnetic field magnitude (T)
+1 1 1st vector component of magnetic field (T)
+2 2 2nd vector component of magnetic field (T)
+3 3 3rd vector component of magnetic field (T)
+4 4 Electric field magnitude (V m-1)
+5 5 1st vector component of electric field (V m-1)
+6 6 2nd vector component of electric field (V m-1)
+7 7 3rd vector component of electric field (V m-1)
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.4.table b/definitions/grib2/tables/32/4.2.4.4.table
new file mode 100644
index 000000000..694c8cacc
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.4.table
@@ -0,0 +1,11 @@
+# Product discipline 4 - Space weather products, parameter category 4: energetic particles
+0 0 Proton flux (differential) ((m2 s sr eV)-1)
+1 1 Proton flux (integral) ((m2 s sr )-1)
+2 2 Electron flux (differential) ((m2 s sr eV)-1)
+3 3 Electron flux (integral) ((m2 s sr)-1)
+4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1)
+5 5 Heavy ion flux (integral) ((m2 s sr)-1)
+6 6 Cosmic ray neutron flux (h-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.5.table b/definitions/grib2/tables/32/4.2.4.5.table
new file mode 100644
index 000000000..913efec6f
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.5.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 5: waves
+0 0 Amplitude (dB)
+1 1 Phase (rad)
+2 2 Frequency (Hz)
+3 3 Wavelength (m)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.6.table b/definitions/grib2/tables/32/4.2.4.6.table
new file mode 100644
index 000000000..6d13019a6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.6.table
@@ -0,0 +1,11 @@
+# Product discipline 4 - Space weather products, parameter category 6: solar electromagnetic emissions
+0 0 Integrated solar irradiance (W m-2)
+1 1 Solar X-ray flux (XRS long) (W m-2)
+2 2 Solar X-ray flux (XRS short) (W m-2)
+3 3 Solar EUV irradiance (W m-2)
+4 4 Solar spectral irradiance (W m-2 nm-1)
+5 5 F10.7 (W m-2 Hz-1)
+6 6 Solar radio emissions (W m-2 Hz-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.7.table b/definitions/grib2/tables/32/4.2.4.7.table
new file mode 100644
index 000000000..38c2b17a8
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.7.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 7: terrestrial electromagnetic emissions
+0 0 Limb intensity (J m-2 s-1)
+1 1 Disk intensity (J m-2 s-1)
+2 2 Disk intensity day (J m-2 s-1)
+3 3 Disk intensity night (J m-2 s-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.8.table b/definitions/grib2/tables/32/4.2.4.8.table
new file mode 100644
index 000000000..f350f4807
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.8.table
@@ -0,0 +1,13 @@
+# Product discipline 4 - Space weather products, parameter category 8: imagery
+0 0 X-ray radiance (W sr-1 m-2)
+1 1 EUV radiance (W sr-1 m-2)
+2 2 H-alpha radiance (W sr-1 m-2)
+3 3 White light radiance (W sr-1 m-2)
+4 4 CaII-K radiance (W sr-1 m-2)
+5 5 White light coronagraph radiance (W sr-1 m-2)
+6 6 Heliospheric radiance (W sr-1 m-2)
+7 7 Thematic mask (Numeric)
+8 8 Solar induced chlorophyll fluorescence (W m-2 sr-1 m-1)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.2.4.9.table b/definitions/grib2/tables/32/4.2.4.9.table
new file mode 100644
index 000000000..0e83436e2
--- /dev/null
+++ b/definitions/grib2/tables/32/4.2.4.9.table
@@ -0,0 +1,7 @@
+# Product discipline 4 - Space weather products, parameter category 9: ion-neutral coupling
+0 0 Pedersen conductivity (S m-1)
+1 1 Hall conductivity (S m-1)
+2 2 Parallel conductivity (S m-1)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.201.table b/definitions/grib2/tables/32/4.201.table
new file mode 100644
index 000000000..a725e4e65
--- /dev/null
+++ b/definitions/grib2/tables/32/4.201.table
@@ -0,0 +1,17 @@
+# Code table 4.201 - Precipitation type
+0 0 No precipitation
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+11 11 Drizzle
+12 12 Freezing drizzle
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.202.table b/definitions/grib2/tables/32/4.202.table
new file mode 100644
index 000000000..7f3c8f6cf
--- /dev/null
+++ b/definitions/grib2/tables/32/4.202.table
@@ -0,0 +1,4 @@
+# Code table 4.202 - Precipitable water category
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.203.table b/definitions/grib2/tables/32/4.203.table
new file mode 100644
index 000000000..cf5eb6bdc
--- /dev/null
+++ b/definitions/grib2/tables/32/4.203.table
@@ -0,0 +1,26 @@
+# Code table 4.203 - Cloud type
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.204.table b/definitions/grib2/tables/32/4.204.table
new file mode 100644
index 000000000..8e0be1f8c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.204.table
@@ -0,0 +1,9 @@
+# Code table 4.204 - Thunderstorm coverage
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (6-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.205.table b/definitions/grib2/tables/32/4.205.table
new file mode 100644
index 000000000..c40c7f47b
--- /dev/null
+++ b/definitions/grib2/tables/32/4.205.table
@@ -0,0 +1,6 @@
+# Code table 4.205 - Presence of aerosol
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.206.table b/definitions/grib2/tables/32/4.206.table
new file mode 100644
index 000000000..76472c261
--- /dev/null
+++ b/definitions/grib2/tables/32/4.206.table
@@ -0,0 +1,6 @@
+# Code table 4.206 - Volcanic ash
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.207.table b/definitions/grib2/tables/32/4.207.table
new file mode 100644
index 000000000..b6392fca0
--- /dev/null
+++ b/definitions/grib2/tables/32/4.207.table
@@ -0,0 +1,10 @@
+# Code table 4.207 - Icing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.208.table b/definitions/grib2/tables/32/4.208.table
new file mode 100644
index 000000000..4361d38c0
--- /dev/null
+++ b/definitions/grib2/tables/32/4.208.table
@@ -0,0 +1,9 @@
+# Code table 4.208 - Turbulence
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.209.table b/definitions/grib2/tables/32/4.209.table
new file mode 100644
index 000000000..39ea549ac
--- /dev/null
+++ b/definitions/grib2/tables/32/4.209.table
@@ -0,0 +1,9 @@
+# Code table 4.209 - Planetary boundary-layer regime
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.210.table b/definitions/grib2/tables/32/4.210.table
new file mode 100644
index 000000000..791878469
--- /dev/null
+++ b/definitions/grib2/tables/32/4.210.table
@@ -0,0 +1,6 @@
+# Code table 4.210 - Contrail intensity
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.211.table b/definitions/grib2/tables/32/4.211.table
new file mode 100644
index 000000000..2a28a84d9
--- /dev/null
+++ b/definitions/grib2/tables/32/4.211.table
@@ -0,0 +1,7 @@
+# Code table 4.211 - Contrail engine type
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.212.table b/definitions/grib2/tables/32/4.212.table
new file mode 100644
index 000000000..6a3dcf88c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.212.table
@@ -0,0 +1,18 @@
+# Code table 4.212 - Land use
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.213.table b/definitions/grib2/tables/32/4.213.table
new file mode 100644
index 000000000..68d627af6
--- /dev/null
+++ b/definitions/grib2/tables/32/4.213.table
@@ -0,0 +1,16 @@
+# Code table 4.213 - Soil type
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.214.table b/definitions/grib2/tables/32/4.214.table
new file mode 100644
index 000000000..b08860ce0
--- /dev/null
+++ b/definitions/grib2/tables/32/4.214.table
@@ -0,0 +1,11 @@
+# Code table 4.214 - Environmental Factor Qualifier
+0 0 Worst
+1 1 Very poor
+2 2 Poor
+3 3 Average
+4 4 Good
+5 5 Excellent
+# 6-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.215.table b/definitions/grib2/tables/32/4.215.table
new file mode 100644
index 000000000..7888772d5
--- /dev/null
+++ b/definitions/grib2/tables/32/4.215.table
@@ -0,0 +1,9 @@
+# Code table 4.215 - Remotely sensed snow coverage
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.216.table b/definitions/grib2/tables/32/4.216.table
new file mode 100644
index 000000000..b51b358f4
--- /dev/null
+++ b/definitions/grib2/tables/32/4.216.table
@@ -0,0 +1,5 @@
+# Code table 4.216 - Elevation of snow-covered terrain
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.217.table b/definitions/grib2/tables/32/4.217.table
new file mode 100644
index 000000000..a700410d5
--- /dev/null
+++ b/definitions/grib2/tables/32/4.217.table
@@ -0,0 +1,8 @@
+# Code table 4.217 - Cloud mask type
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.218.table b/definitions/grib2/tables/32/4.218.table
new file mode 100644
index 000000000..a13debf16
--- /dev/null
+++ b/definitions/grib2/tables/32/4.218.table
@@ -0,0 +1,46 @@
+# Code table 4.218 - Pixel scene type
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed-phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multilayered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/stratus
+102 102 Low cloud/stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/nimbostratus
+105 105 Medium cloud/altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/cumulus
+108 108 High cloud/cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+111 111 Single layer water cloud
+112 112 Single layer ice cloud
+# 113-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.219.table b/definitions/grib2/tables/32/4.219.table
new file mode 100644
index 000000000..9979f50ad
--- /dev/null
+++ b/definitions/grib2/tables/32/4.219.table
@@ -0,0 +1,8 @@
+# Code table 4.219 - Cloud top height quality indicator
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.220.table b/definitions/grib2/tables/32/4.220.table
new file mode 100644
index 000000000..88e869e42
--- /dev/null
+++ b/definitions/grib2/tables/32/4.220.table
@@ -0,0 +1,6 @@
+# Code table 4.220 - Horizontal dimension processed
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.221.table b/definitions/grib2/tables/32/4.221.table
new file mode 100644
index 000000000..011cc3518
--- /dev/null
+++ b/definitions/grib2/tables/32/4.221.table
@@ -0,0 +1,6 @@
+# Code table 4.221 - Treatment of missing data
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.222.table b/definitions/grib2/tables/32/4.222.table
new file mode 100644
index 000000000..558d947ac
--- /dev/null
+++ b/definitions/grib2/tables/32/4.222.table
@@ -0,0 +1,6 @@
+# Code table 4.222 - Categorical result
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.223.table b/definitions/grib2/tables/32/4.223.table
new file mode 100644
index 000000000..572c4e7a8
--- /dev/null
+++ b/definitions/grib2/tables/32/4.223.table
@@ -0,0 +1,5 @@
+# Code table 4.223 - Fire detection indicator
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/32/4.224.table b/definitions/grib2/tables/32/4.224.table
new file mode 100644
index 000000000..014f56e23
--- /dev/null
+++ b/definitions/grib2/tables/32/4.224.table
@@ -0,0 +1,18 @@
+# Code table 4.224 - Categorical outlook
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.225.table b/definitions/grib2/tables/32/4.225.table
new file mode 100644
index 000000000..9dc374087
--- /dev/null
+++ b/definitions/grib2/tables/32/4.225.table
@@ -0,0 +1,2 @@
+# Code table 4.225 - Weather (see FM 94 BUFR/FM 95 CREX Code table 0 20 003 - Present weather)
+511 511 Missing value
diff --git a/definitions/grib2/tables/32/4.227.table b/definitions/grib2/tables/32/4.227.table
new file mode 100644
index 000000000..48c3b7633
--- /dev/null
+++ b/definitions/grib2/tables/32/4.227.table
@@ -0,0 +1,9 @@
+# Code table 4.227 - Icing scenario (weather/cloud classification)
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/32/4.228.table b/definitions/grib2/tables/32/4.228.table
new file mode 100644
index 000000000..048a69f0b
--- /dev/null
+++ b/definitions/grib2/tables/32/4.228.table
@@ -0,0 +1,8 @@
+# Code table 4.228 - Icing severity
+0 0 None
+1 1 Trace
+2 2 Light
+3 3 Moderate
+4 4 Severe
+# 5-254 Reserved
+255 255 Missing value
diff --git a/definitions/grib2/tables/32/4.230.table b/definitions/grib2/tables/32/4.230.table
new file mode 100644
index 000000000..705857e5c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.230.table
@@ -0,0 +1,534 @@
+# Code table 4.230 - Atmospheric chemical constituent type
+0 0 Ozone O3
+1 1 Water vapour H2O
+2 2 Methane CH4
+3 3 Carbon dioxide CO2
+4 4 Carbon monoxide CO
+5 5 Nitrogen dioxide NO2
+6 6 Nitrous oxide N2O
+7 7 Formaldehyde HCHO
+8 8 Sulphur dioxide SO2
+9 9 Ammonia NH3
+10 10 Ammonium cation NH4+
+11 11 Nitrogen monoxide NO
+12 12 Atomic oxygen O
+13 13 Nitrate radical NO3*
+14 14 Hydroperoxyl radical HOO*
+15 15 Dinitrogen pentoxide N2O5
+16 16 Nitrous acid HONO
+17 17 Nitric acid HNO3
+18 18 Peroxynitric acid HO2NO2
+19 19 Hydrogen peroxide H2O2
+20 20 Dihydrogen H2
+21 21 Atomic nitrogen N
+22 22 Sulphate anion SO42-
+23 23 Atomic Radon Rn
+24 24 Mercury vapour Hg(0)
+25 25 Mercury(II) cation Hg2+
+26 26 Atomic chlorine Cl
+27 27 Chlorine monoxide ClO
+28 28 Dichlorine peroxide Cl2O2
+29 29 Hypochlorous acid HClO
+30 30 Chlorine nitrate ClONO2
+31 31 Chlorine dioxide ClO2
+32 32 Atomic bromine Br
+33 33 Bromine monoxide BrO
+34 34 Bromine chloride BrCl
+35 35 Hydrogen bromide HBr
+36 36 Hypobromous acid HBrO
+37 37 Bromine nitrate BrONO2
+38 38 Dioxygen O2
+39 39 Nitryl chloride NO2Cl
+40 40 Sulphuric acid H2SO4
+41 41 Hydrogen sulphide H2S
+42 42 Sulphur trioxide SO3
+43 43 Bromine Br2
+44 44 Hydrofluoric acid HF
+45 45 Sulphur hexafluoride SF6
+46 46 Chlorine Cl2
+# 47-9999 Reserved
+10000 10000 Hydroxyl radical HO*
+10001 10001 Methyl peroxy radical CH3OO*
+10002 10002 Methyl hydroperoxide CH3OOH
+10004 10004 Methanol CH3OH
+10005 10005 Formic acid HCOOH
+10006 10006 Hydrogen cyanide HCN
+10007 10007 Aceto nitrile CH3CN
+10008 10008 Ethane C2H6
+10009 10009 Ethene (= Ethylene) C2H4
+10010 10010 Ethyne (= Acetylene) C2H2
+10011 10011 Ethanol C2H5OH
+10012 10012 Acetic acid C2H5OOH
+10013 10013 Peroxyacetyl nitrate CH3C(O)OONO2
+10014 10014 Propane C3H8
+10015 10015 Propene C3H6
+10016 10016 Butane (all isomers) C4H10
+10017 10017 Isoprene C5H10
+10018 10018 Alpha pinene C10H16
+10019 10019 Beta pinene C10H16
+10020 10020 Limonene C10H16
+10021 10021 Benzene C6H6
+10022 10022 Toluene C7H8
+10023 10023 Xylene C8H10
+10024 10024 Methanesulphonic acid CH3SO3H
+10025 10025 Methylglyoxal (2-oxopropanal) CH3C(O)CHO
+10026 10026 Peroxyacetyl radical CH3C(O)OO*
+10027 10027 Methacrylic acid (2-methylprop-2-enoic acid) CH2C(CH3)COOH
+10028 10028 Methacrolein (2-methylprop-2-enal) CH2C(CH3)CHO
+10029 10029 Acetone (propan-2-one) CH3C(O)CH3
+10030 10030 Ethyl dioxidanyl radical CH3CH2OO*
+10031 10031 Butadiene (buta-1,3-diene) (CH2CH)2
+10032 10032 Acetaldehyde (ethanal) CH3CHO
+10033 10033 Glycolaldehyde (hydroxyethanal) HOCH2CHO
+10034 10034 Cresol (methylphenol), all isomers CH3C6H4OH
+10035 10035 Peracetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10036 10036 2-hydroxyethyl oxidanyl radical HOCH2CH2O*
+10037 10037 2-hydroxyethyl dioxidanyl radical HOCH2CH2OO*
+10038 10038 Glyoxal (oxaldehyde) OCHCHO
+10039 10039 Isopropyl dioxidanyl radical (CH3)2CHOO*
+10040 10040 Isopropyl hydroperoxide (2-hydroperoxypropane) (CH3)2CHOOH
+10041 10041 Hydroxyacetone (1-hydroxypropan-2-one) CH3C(O)CH2OH
+10042 10042 Peroxyacetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10043 10043 Methyl vinyl ketone (but-3-en-2-one) CH3C(O)CHCH2
+10044 10044 Phenoxy radical C6H5O*
+10045 10045 Methyl radical CH3*
+10046 10046 Carbonyl sulphide (carbon oxide sulphide) OCS
+10047 10047 Dibromomethane CH2Br2
+10048 10048 Methoxy radical CH3O*
+10049 10049 Tribromomethane CHBr3
+10050 10050 Formyl radical (oxomethyl radical) HOC*
+10051 10051 Hydroxymethyl dioxidanyl radical HOCH2OO*
+10052 10052 Ethyl hydroperoxide CH3CH2OOH
+10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO*
+10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH
+10055 10055 Methyl-peroxy-nitrate (nitroperoxy-methane) CH3OONO2
+10056 10056 2-lambda^1-oxidanyloxy-2-methylbut-3-en-1-ol (4-hydroxy-3-methyl-1-butene-3-ylperoxy radical) HOCH2C(CH3)(OO*)CHCH2
+10057 10057 2-lambda^1-oxidanyloxy-3-methylbut-3-en-1-ol (2-hydroxy-1-isopropenylethylperoxy radical) HOCH2CH(OO*)C(CH3)CH2
+10058 10058 (Z)-4-hydroperoxy-2-methyl-2-butenal CH2(OOH)CHC(CH3)CHO
+10059 10059 (Z)-4-hydroperoxy-3-methyl-2-butenal CH2(OOH)C(CH3)CHCHO
+# 10060-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, etc.)
+10500 10500 Dimethyl sulphide CH3SCH3 (DMS)
+10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO
+# 10502-20000 Reserved
+20001 20001 Hydrogen chloride HCl
+20002 20002 CFC-11 (trichlorofluoromethane) CCl3F
+20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2
+20004 20004 CFC-113 (1,1,2-trichloro-1,2,2-trifluoroethane) Cl2FC-CClF2
+20005 20005 CFC-113a (1,1,1-trichloro-2,2,2-trifluoroethane) Cl3C-CF3
+20006 20006 CFC-114 (1,2-dichloro-1,1,2,2-tetrafluoroethane) ClF2C-CClF2
+20007 20007 CFC-115 (1-chloro-1,1,2,2,2-pentafluoroethane) ClF2C-CF3
+20008 20008 HCFC-22 (chlorodifluoromethane) CHClF2
+20009 20009 HCFC-141b (1,1-dichloro-1-fluoroethane) Cl2FC-CH3
+20010 20010 HCFC-142b (1-chloro-1,1-difluoroethane) ClF2C-CH3
+20011 20011 Halon-1202 (dibromodifluoromethane) CBr2F2
+20012 20012 Halon-1211 (bromochlorodifluoromethane) CBrClF2
+20013 20013 Halon-1301 (bromotrifluoromethane) CBrF3
+20014 20014 Halon-2402 (1,2-dibromo-1,1,2,2-tetrafluoroethane) BrF2C-CBrF2
+20015 20015 HCC-40 (methyl chloride) CH3Cl
+20016 20016 HCC-10 (carbon tetrachloride) CCl4
+20017 20017 HCC-140a (1,1,1-trichloroethane) Cl3C-CH3
+20018 20018 HBC-40B1 (methyl bromide) CH3Br
+20019 20019 HCH (hexachlorocyclohexane) all isomers C6H6Cl6
+20020 20020 alpha-HCH (alpha-hexachlorocyclohexane) both enantiomers alpha-C6H6Cl6
+20021 20021 PCB-153 (2,2',4,4',5,5'-hexachlorobiphenyl) (C6H2Cl3)2
+20022 20022 HCFC-141a (1,1-dichloro-2-fluoroethane) Cl2HC-CH2F
+# 20023-29999 Reserved
+30000 30000 Radioactive pollutant (tracer, defined by originating centre)
+# 30001-30009 Reserved
+30010 30010 Tritium (Hydrogen 3) H-3
+30011 30011 Tritium organic bounded H-3o
+30012 30012 Tritium inorganic H-3a
+30013 30013 Beryllium 7 Be-7
+30014 30014 Beryllium 10 Be-10
+30015 30015 Carbon 14 C-14
+30016 30016 Carbon 14 CO2 C-14CO2
+30017 30017 Carbon 14 other gases C-14og
+30018 30018 Nitrogen 13 N-13
+30019 30019 Nitrogen 16 N-16
+30020 30020 Fluorine 18 F-18
+30021 30021 Sodium 22 Na-22
+30022 30022 Phosphate 32 P-32
+30023 30023 Phosphate 33 P-33
+30024 30024 Sulphur 35 S-35
+30025 30025 Chlorine 36 Cl-36
+30026 30026 Potassium 40 K-40
+30027 30027 Argon 41 Ar-41
+30028 30028 Calcium 41 Ca-41
+30029 30029 Calcium 45 Ca-45
+30030 30030 Titanium 44 Ti-44
+30031 30031 Scandium 46 Sc-46
+30032 30032 Vanadium 48 V-48
+30033 30033 Vanadium 49 V-49
+30034 30034 Chrome 51 Cr-51
+30035 30035 Manganese 52 Mn-52
+30036 30036 Manganese 54 Mn-54
+30037 30037 Iron 55 Fe-55
+30038 30038 Iron 59 Fe-59
+30039 30039 Cobalt 56 Co-56
+30040 30040 Cobalt 57 Co-57
+30041 30041 Cobalt 58 Co-58
+30042 30042 Cobalt 60 Co-60
+30043 30043 Nickel 59 Ni-59
+30044 30044 Nickel 63 Ni-63
+30045 30045 Zinc 65 Zn-65
+30046 30046 Gallium 67 Ga-67
+30047 30047 Gallium 68 Ga-68
+30048 30048 Germanium 68 Ge-68
+30049 30049 Germanium 69 Ge-69
+30050 30050 Arsenic 73 As-73
+30051 30051 Selenium 75 Se-75
+30052 30052 Selenium 79 Se-79
+30053 30053 Rubidium 81 Rb-81
+30054 30054 Rubidium 83 Rb-83
+30055 30055 Rubidium 84 Rb-84
+30056 30056 Rubidium 86 Rb-86
+30057 30057 Rubidium 87 Rb-87
+30058 30058 Rubidium 88 Rb-88
+30059 30059 Krypton 85 Kr-85
+30060 30060 Krypton 85 metastable Kr-85m
+30061 30061 Krypton 87 Kr-87
+30062 30062 Krypton 88 Kr-88
+30063 30063 Krypton 89 Kr-89
+30064 30064 Strontium 85 Sr-85
+30065 30065 Strontium 89 Sr-89
+30066 30066 Strontium 89/90 Sr-8990
+30067 30067 Strontium 90 Sr-90
+30068 30068 Strontium 91 Sr-91
+30069 30069 Strontium 92 Sr-92
+30070 30070 Yttrium 87 Y-87
+30071 30071 Yttrium 88 Y-88
+30072 30072 Yttrium 90 Y-90
+30073 30073 Yttrium 91 Y-91
+30074 30074 Yttrium 91 metastable Y-91m
+30075 30075 Yttrium 92 Y-92
+30076 30076 Yttrium 93 Y-93
+30077 30077 Zirconium 89 Zr-89
+30078 30078 Zirconium 93 Zr-93
+30079 30079 Zirconium 95 Zr-95
+30080 30080 Zirconium 97 Zr-97
+30081 30081 Niobium 93 metastable Nb-93m
+30082 30082 Niobium 94 Nb-94
+30083 30083 Niobium 95 Nb-95
+30084 30084 Niobium 95 metastable Nb-95m
+30085 30085 Niobium 97 Nb-97
+30086 30086 Niobium 97 metastable Nb-97m
+30087 30087 Molybdenum 93 Mo-93
+30088 30088 Molybdenum 99 Mo-99
+30089 30089 Technetium 95 metastable Tc-95m
+30090 30090 Technetium 96 Tc-96
+30091 30091 Technetium 99 Tc-99
+30092 30092 Technetium 99 metastable Tc-99m
+30093 30093 Rhodium 99 Rh-99
+30094 30094 Rhodium 101 Rh-101
+30095 30095 Rhodium 102 metastable Rh-102m
+30096 30096 Rhodium 103 metastable Rh-103m
+30097 30097 Rhodium 105 Rh-105
+30098 30098 Rhodium 106 Rh-106
+30099 30099 Palladium 100 Pd-100
+30100 30100 Palladium 103 Pd-103
+30101 30101 Palladium 107 Pd-107
+30102 30102 Ruthenium 103 Ru-103
+30103 30103 Ruthenium 105 Ru-105
+30104 30104 Ruthenium 106 Ru-106
+30105 30105 Silver 108 metastable Ag-108m
+30106 30106 Silver 110 metastable Ag-110m
+30107 30107 Cadmium 109 Cd-109
+30108 30108 Cadmium 113 metastable Cd-113m
+30109 30109 Cadmium 115 metastable Cd-115m
+30110 30110 Indium 114 metastable In-114m
+30111 30111 Tin 113 Sn-113
+30112 30112 Tin 119 metastable Sn-119m
+30113 30113 Tin 121 metastable Sn-121m
+30114 30114 Tin 122 Sn-122
+30115 30115 Tin 123 Sn-123
+30116 30116 Tin 126 Sn-126
+30117 30117 Antimony 124 Sb-124
+30118 30118 Antimony 125 Sb-125
+30119 30119 Antimony 126 Sb-126
+30120 30120 Antimony 127 Sb-127
+30121 30121 Antimony 129 Sb-129
+30122 30122 Tellurium 123 metastable Te-123m
+30123 30123 Tellurium 125 metastable Te-125m
+30124 30124 Tellurium 127 Te-127
+30125 30125 Tellurium 127 metastable Te-127m
+30126 30126 Tellurium 129 Te-129
+30127 30127 Tellurium 129 metastable Te-129m
+30128 30128 Tellurium 131 metastable Te-131m
+30129 30129 Tellurium 132 Te-132
+30130 30130 Iodine 123 I-123
+30131 30131 Iodine 124 I-124
+30132 30132 Iodine 125 I-125
+30133 30133 Iodine 126 I-126
+30134 30134 Iodine 129 I-129
+30135 30135 Iodine 129 elementary gaseous I-129g
+30136 30136 Iodine 129 organic bounded I-129o
+30137 30137 Iodine 131 I-131
+30138 30138 Iodine 131 elementary gaseous I-131g
+30139 30139 Iodine 131 organic bounded I-131o
+30140 30140 Iodine 131 gaseous elementary and organic bounded I-131go
+30141 30141 Iodine 131 aerosol I-131a
+30142 30142 Iodine 132 I-132
+30143 30143 Iodine 132 elementary gaseous I-132g
+30144 30144 Iodine 132 organic bounded I-132o
+30145 30145 Iodine 132 gaseous elementary and organic bounded I-132go
+30146 30146 Iodine 132 aerosol I-132a
+30147 30147 Iodine 133 I-133
+30148 30148 Iodine 133 elementary gaseous I-133g
+30149 30149 Iodine 133 organic bounded I-133o
+30150 30150 Iodine 133 gaseous elementary and organic bounded I-133go
+30151 30151 Iodine 133 aerosol I-133a
+30152 30152 Iodine 134 I-134
+30153 30153 Iodine 134 elementary gaseous I-134g
+30154 30154 Iodine 134 organic bounded I-134o
+30155 30155 Iodine 135 I-135
+30156 30156 Iodine 135 elementary gaseous I-135g
+30157 30157 Iodine 135 organic bounded I-135o
+30158 30158 Iodine 135 gaseous elementary and organic bounded I-135go
+30159 30159 Iodine 135 aerosol I-135a
+30160 30160 Xenon 131 metastable Xe-131m
+30161 30161 Xenon 133 Xe-133
+30162 30162 Xenon 133 metastable Xe-133m
+30163 30163 Xenon 135 Xe-135
+30164 30164 Xenon 135 metastable Xe-135m
+30165 30165 Xenon 137 Xe-137
+30166 30166 Xenon 138 Xe-138
+30167 30167 Xenon sum of all Xenon isotopes Xe-sum
+30168 30168 Caesium 131 Cs-131
+30169 30169 Caesium 134 Cs-134
+30170 30170 Caesium 135 Cs-135
+30171 30171 Caesium 136 Cs-136
+30172 30172 Caesium 137 Cs-137
+30173 30173 Barium 133 Ba-133
+30174 30174 Barium 137 metastable Ba-137m
+30175 30175 Barium 140 Ba-140
+30176 30176 Cerium 139 Ce-139
+30177 30177 Cerium 141 Ce-141
+30178 30178 Cerium 143 Ce-143
+30179 30179 Cerium 144 Ce-144
+30180 30180 Lanthanum 140 La-140
+30181 30181 Lanthanum 141 La-141
+30182 30182 Praseodymium 143 Pr-143
+30183 30183 Praseodymium 144 Pr-144
+30184 30184 Praseodymium 144 metastable Pr-144m
+30185 30185 Samarium 145 Sm-145
+30186 30186 Samarium 147 Sm-147
+30187 30187 Samarium 151 Sm-151
+30188 30188 Neodymium 147 Nd-147
+30189 30189 Promethium 146 Pm-146
+30190 30190 Promethium 147 Pm-147
+30191 30191 Promethium 151 Pm-151
+30192 30192 Europium 152 Eu-152
+30193 30193 Europium 154 Eu-154
+30194 30194 Europium 155 Eu-155
+30195 30195 Gadolinium 153 Gd-153
+30196 30196 Terbium 160 Tb-160
+30197 30197 Holmium 166 metastable Ho-166m
+30198 30198 Thulium 170 Tm-170
+30199 30199 Ytterbium 169 Yb-169
+30200 30200 Hafnium 175 Hf-175
+30201 30201 Hafnium 181 Hf-181
+30202 30202 Tantalum 179 Ta-179
+30203 30203 Tantalum 182 Ta-182
+30204 30204 Rhenium 184 Re-184
+30205 30205 Iridium 192 Ir-192
+30206 30206 Mercury 203 Hg-203
+30207 30207 Thallium 204 Tl-204
+30208 30208 Thallium 207 Tl-207
+30209 30209 Thallium 208 Tl-208
+30210 30210 Thallium 209 Tl-209
+30211 30211 Bismuth 205 Bi-205
+30212 30212 Bismuth 207 Bi-207
+30213 30213 Bismuth 210 Bi-210
+30214 30214 Bismuth 211 Bi-211
+30215 30215 Bismuth 212 Bi-212
+30216 30216 Bismuth 213 Bi-213
+30217 30217 Bismuth 214 Bi-214
+30218 30218 Polonium 208 Po-208
+30219 30219 Polonium 210 Po-210
+30220 30220 Polonium 212 Po-212
+30221 30221 Polonium 213 Po-213
+30222 30222 Polonium 214 Po-214
+30223 30223 Polonium 215 Po-215
+30224 30224 Polonium 216 Po-216
+30225 30225 Polonium 218 Po-218
+30226 30226 Lead 209 Pb-209
+30227 30227 Lead 210 Pb-210
+30228 30228 Lead 211 Pb-211
+30229 30229 Lead 212 Pb-212
+30230 30230 Lead 214 Pb-214
+30231 30231 Astatine 217 At-217
+30232 30232 Radon 219 Rn-219
+30233 30233 Radon 220 Rn-220
+30234 30234 Radon 222 Rn-222
+30235 30235 Francium 221 Fr-221
+30236 30236 Francium 223 Fr-223
+30237 30237 Radium 223 Ra-223
+30238 30238 Radium 224 Ra-224
+30239 30239 Radium 225 Ra-225
+30240 30240 Radium 226 Ra-226
+30241 30241 Radium 228 Ra-228
+30242 30242 Actinium 225 Ac-225
+30243 30243 Actinium 227 Ac-227
+30244 30244 Actinium 228 Ac-228
+30245 30245 Thorium 227 Th-227
+30246 30246 Thorium 228 Th-228
+30247 30247 Thorium 229 Th-229
+30248 30248 Thorium 230 Th-230
+30249 30249 Thorium 231 Th-231
+30250 30250 Thorium 232 Th-232
+30251 30251 Thorium 234 Th-234
+30252 30252 Protactinium 231 Pa-231
+30253 30253 Protactinium 233 Pa-233
+30254 30254 Protactinium 234 metastable Pa-234m
+30255 30255 Uranium 232 U-232
+30256 30256 Uranium 233 U-233
+30257 30257 Uranium 234 U-234
+30258 30258 Uranium 235 U-235
+30259 30259 Uranium 236 U-236
+30260 30260 Uranium 237 U-237
+30261 30261 Uranium 238 U-238
+30262 30262 Plutonium 236 Pu-236
+30263 30263 Plutonium 238 Pu-238
+30264 30264 Plutonium 239 Pu-239
+30265 30265 Plutonium 240 Pu-240
+30266 30266 Plutonium 241 Pu-241
+30267 30267 Plutonium 242 Pu-242
+30268 30268 Plutonium 244 Pu-244
+30269 30269 Neptunium 237 Np-237
+30270 30270 Neptunium 238 Np-238
+30271 30271 Neptunium 239 Np-239
+30272 30272 Americium 241 Am-241
+30273 30273 Americium 242 Am-242
+30274 30274 Americium 242 metastable Am-242m
+30275 30275 Americium 243 Am-243
+30276 30276 Curium 242 Cm-242
+30277 30277 Curium 243 Cm-243
+30278 30278 Curium 244 Cm-244
+30279 30279 Curium 245 Cm-245
+30280 30280 Curium 246 Cm-246
+30281 30281 Curium 247 Cm-247
+30282 30282 Curium 248 Cm-248
+30283 30283 Curium 243/244 Cm-243244
+30284 30284 Plutonium 238/Americium 241 Pu-238Am-241
+30285 30285 Plutonium 239/240 Pu-239240
+30286 30286 Berkelium 249 Bk-249
+30287 30287 Californium 249 Cf-249
+30288 30288 Californium 250 Cf-250
+30289 30289 Californium 252 Cf-252
+30290 30290 Sum aerosol particulates SumAer
+30291 30291 Sum Iodine SumIod
+30292 30292 Sum noble gas SumNG
+30293 30293 Activation gas ActGas
+30294 30294 Cs-137 Equivalent EquCs137
+30295 30295 Carbon-13 C-13
+30296 30296 Lead Pb
+30297 30297 Tellurium 131 Te-131
+30298 30298 Neodymium 137 Nd-137
+# 30299-39999 Reserved
+40000 40000 Singlet sigma oxygen (dioxygen (sigma singlet)) O2
+40001 40001 Singlet delta oxygen (dioxygen (delta singlet)) O2
+40002 40002 Singlet excited oxygen atom O(1D)
+40003 40003 Triplet ground state oxygen atom O(3P)
+# 40004-59999 Reserved
+60000 60000 HOx radical (OH+HO2) HOx*
+60001 60001 Total inorganic and organic peroxy radicals (HOO* + ROO*) ROO*
+60002 60002 Passive Ozone
+60003 60003 NOx expressed as nitrogen NOx
+60004 60004 All nitrogen oxides (NOy) expressed as nitrogen NOy
+60005 60005 Total inorganic chlorine Clx
+60006 60006 Total inorganic bromine Brx
+60007 60007 Total inorganic chlorine except HCl, ClONO2: ClOx
+60008 60008 Total inorganic bromine except HBr, BrONO2: BrOx
+60009 60009 Lumped alkanes
+60010 60010 Lumped alkenes
+60011 60011 Lumped aromatic compounds
+60012 60012 Lumped terpenes
+60013 60013 Non-methane volatile organic compounds expressed as carbon NMVOC
+60014 60014 Anthropogenic non-methane volatile organic compounds expressed as carbon aNMVOC
+60015 60015 Biogenic non-methane volatile organic compounds expressed as carbon bNMVOC
+60016 60016 Lumped oxygenated hydrocarbons OVOC
+60017 60017 NOx expressed as nitrogen dioxide (NO2) NOx
+60018 60018 Organic aldehydes RCHO
+60019 60019 Organic peroxides ROOH
+60020 60020 Organic nitrates RNO3
+60021 60021 Ethers ROR'
+60022 60022 Amines NRR'R''
+60023 60023 Ketones RC(O)R'
+60024 60024 Dicarbonyls unsaturated RC(O)CH2C(O)R'
+60025 60025 Hydroxy dicarbonyls unsaturated RC(O)CHOHC(O)R'
+60026 60026 Hydroxy ketones RC(OH)C(O)R'
+60027 60027 Oxides Ox
+60028 60028 Peroxyacyl nitrates RC(O)OONO2
+60029 60029 Aromatic peroxide radical (Aryl dioxydanyl radicals) ArOO*
+60030 60030 Biogenic secondary organic compound
+60031 60031 Anthropogenic secondary organic compound
+60032 60032 All hydroxy-peroxides products of the reaction of hydroxy-isoprene adducts with O2 ISOPOOH
+60033 60033 Anthropogenic volatile organic compounds aVOC
+60034 60034 Biomass burning volatile organic compounds bbVOC
+# 60035-61999 Reserved
+62000 62000 Total aerosol
+62001 62001 Dust dry
+62002 62002 Water in ambient
+62003 62003 Ammonium dry
+62004 62004 Nitrate dry
+62005 62005 Nitric acid trihydrate
+62006 62006 Sulphate dry
+62007 62007 Mercury dry
+62008 62008 Sea salt dry
+62009 62009 Black carbon dry
+62010 62010 Particulate organic matter dry
+62011 62011 Primary particulate organic matter dry
+62012 62012 Secondary particulate organic matter dry
+62013 62013 Black carbon hydrophilic dry
+62014 62014 Black carbon hydrophobic dry
+62015 62015 Particulate organic matter hydrophilic dry
+62016 62016 Particulate organic matter hydrophobic dry
+62017 62017 Nitrate hydrophilic dry
+62018 62018 Nitrate hydrophobic dry
+# 62019 Reserved
+62020 62020 Smoke - high absorption
+62021 62021 Smoke - low absorption
+62022 62022 Aerosol - high absorption
+62023 62023 Aerosol - low absorption
+# 62024 Reserved
+62025 62025 Volcanic ash
+62026 62026 Particulate matter (PM)
+# 62027 Reserved
+62028 62028 Total aerosol hydrophilic
+62029 62029 Total aerosol hydrophobic
+62030 62030 Primary particulate inorganic matter dry
+62031 62031 Secondary particulate inorganic matter dry
+62032 62032 Biogenic secondary organic aerosol
+62033 62033 Anthropogenic secondary organic aerosol
+62034 62034 Rain water H2Orain
+62035 62035 Cloud water H2Ocloud
+62036 62036 Brown carbon dry
+# 62037-62099 Reserved
+62100 62100 Alnus (alder) pollen
+62101 62101 Betula (birch) pollen
+62102 62102 Castanea (chestnut) pollen
+62103 62103 Carpinus (hornbeam) pollen
+62104 62104 Corylus (hazel) pollen
+62105 62105 Fagus (beech) pollen
+62106 62106 Fraxinus (ash) pollen
+62107 62107 Pinus (pine) pollen
+62108 62108 Platanus (plane) pollen
+62109 62109 Populus (cottonwood, poplar) pollen
+62110 62110 Quercus (oak) pollen
+62111 62111 Salix (willow) pollen
+62112 62112 Taxus (yew) pollen
+62113 62113 Tilia (lime, linden) pollen
+62114 62114 Ulmus (elm) pollen
+62115 62115 Olea (olive) pollen
+# 62116-62199 Reserved
+62200 62200 Ambrosia (ragweed, burr-ragweed) pollen
+62201 62201 Artemisia (sagebrush, wormwood, mugwort) pollen
+62202 62202 Brassica (rape, broccoli, Brussels sprouts, cabbage, cauliflower, collards, kale, kohlrabi, mustard, rutabaga) pollen
+62203 62203 Plantago (plantain) pollen
+62204 62204 Rumex (dock, sorrel) pollen
+62205 62205 Urtica (nettle) pollen
+# 62206-62299 Reserved
+62300 62300 Poaceae (grass family) pollen
+# 62301-62999 Reserved
+# 63000-65534 For experimental use at local level
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/4.233.table b/definitions/grib2/tables/32/4.233.table
new file mode 100644
index 000000000..e4960cc1b
--- /dev/null
+++ b/definitions/grib2/tables/32/4.233.table
@@ -0,0 +1,534 @@
+# Code table 4.233 - Aerosol type
+0 0 Ozone O3
+1 1 Water vapour H2O
+2 2 Methane CH4
+3 3 Carbon dioxide CO2
+4 4 Carbon monoxide CO
+5 5 Nitrogen dioxide NO2
+6 6 Nitrous oxide N2O
+7 7 Formaldehyde HCHO
+8 8 Sulphur dioxide SO2
+9 9 Ammonia NH3
+10 10 Ammonium cation NH4+
+11 11 Nitrogen monoxide NO
+12 12 Atomic oxygen O
+13 13 Nitrate radical NO3*
+14 14 Hydroperoxyl radical HOO*
+15 15 Dinitrogen pentoxide N2O5
+16 16 Nitrous acid HONO
+17 17 Nitric acid HNO3
+18 18 Peroxynitric acid HO2NO2
+19 19 Hydrogen peroxide H2O2
+20 20 Dihydrogen H2
+21 21 Atomic nitrogen N
+22 22 Sulphate anion SO42-
+23 23 Atomic Radon Rn
+24 24 Mercury vapour Hg(0)
+25 25 Mercury(II) cation Hg2+
+26 26 Atomic chlorine Cl
+27 27 Chlorine monoxide ClO
+28 28 Dichlorine peroxide Cl2O2
+29 29 Hypochlorous acid HClO
+30 30 Chlorine nitrate ClONO2
+31 31 Chlorine dioxide ClO2
+32 32 Atomic bromine Br
+33 33 Bromine monoxide BrO
+34 34 Bromine chloride BrCl
+35 35 Hydrogen bromide HBr
+36 36 Hypobromous acid HBrO
+37 37 Bromine nitrate BrONO2
+38 38 Dioxygen O2
+39 39 Nitryl chloride NO2Cl
+40 40 Sulphuric acid H2SO4
+41 41 Hydrogen sulphide H2S
+42 42 Sulphur trioxide SO3
+43 43 Bromine Br2
+44 44 Hydrofluoric acid HF
+45 45 Sulphur hexafluoride SF6
+46 46 Chlorine Cl2
+# 47-9999 Reserved
+10000 10000 Hydroxyl radical HO*
+10001 10001 Methyl peroxy radical CH3OO*
+10002 10002 Methyl hydroperoxide CH3OOH
+10004 10004 Methanol CH3OH
+10005 10005 Formic acid HCOOH
+10006 10006 Hydrogen cyanide HCN
+10007 10007 Aceto nitrile CH3CN
+10008 10008 Ethane C2H6
+10009 10009 Ethene (= Ethylene) C2H4
+10010 10010 Ethyne (= Acetylene) C2H2
+10011 10011 Ethanol C2H5OH
+10012 10012 Acetic acid C2H5OOH
+10013 10013 Peroxyacetyl nitrate CH3C(O)OONO2
+10014 10014 Propane C3H8
+10015 10015 Propene C3H6
+10016 10016 Butane (all isomers) C4H10
+10017 10017 Isoprene C5H10
+10018 10018 Alpha pinene C10H16
+10019 10019 Beta pinene C10H16
+10020 10020 Limonene C10H16
+10021 10021 Benzene C6H6
+10022 10022 Toluene C7H8
+10023 10023 Xylene C8H10
+10024 10024 Methanesulphonic acid CH3SO3H
+10025 10025 Methylglyoxal (2-oxopropanal) CH3C(O)CHO
+10026 10026 Peroxyacetyl radical CH3C(O)OO*
+10027 10027 Methacrylic acid (2-methylprop-2-enoic acid) CH2C(CH3)COOH
+10028 10028 Methacrolein (2-methylprop-2-enal) CH2C(CH3)CHO
+10029 10029 Acetone (propan-2-one) CH3C(O)CH3
+10030 10030 Ethyl dioxidanyl radical CH3CH2OO*
+10031 10031 Butadiene (buta-1,3-diene) (CH2CH)2
+10032 10032 Acetaldehyde (ethanal) CH3CHO
+10033 10033 Glycolaldehyde (hydroxyethanal) HOCH2CHO
+10034 10034 Cresol (methylphenol), all isomers CH3C6H4OH
+10035 10035 Peracetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10036 10036 2-hydroxyethyl oxidanyl radical HOCH2CH2O*
+10037 10037 2-hydroxyethyl dioxidanyl radical HOCH2CH2OO*
+10038 10038 Glyoxal (oxaldehyde) OCHCHO
+10039 10039 Isopropyl dioxidanyl radical (CH3)2CHOO*
+10040 10040 Isopropyl hydroperoxide (2-hydroperoxypropane) (CH3)2CHOOH
+10041 10041 Hydroxyacetone (1-hydroxypropan-2-one) CH3C(O)CH2OH
+10042 10042 Peroxyacetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10043 10043 Methyl vinyl ketone (but-3-en-2-one) CH3C(O)CHCH2
+10044 10044 Phenoxy radical C6H5O*
+10045 10045 Methyl radical CH3*
+10046 10046 Carbonyl sulphide (carbon oxide sulphide) OCS
+10047 10047 Dibromomethane CH2Br2
+10048 10048 Methoxy radical CH3O*
+10049 10049 Tribromomethane CHBr3
+10050 10050 Formyl radical (oxomethyl radical) HOC*
+10051 10051 Hydroxymethyl dioxidanyl radical HOCH2OO*
+10052 10052 Ethyl hydroperoxide CH3CH2OOH
+10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO*
+10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH
+10055 10055 Methyl-peroxy-nitrate (nitroperoxy-methane) CH3OONO2
+10056 10056 2-lambda^1-oxidanyloxy-2-methylbut-3-en-1-ol (4-hydroxy-3-methyl-1-butene-3-ylperoxy radical) HOCH2C(CH3)(OO*)CHCH2
+10057 10057 2-lambda^1-oxidanyloxy-3-methylbut-3-en-1-ol (2-hydroxy-1-isopropenylethylperoxy radical) HOCH2CH(OO*)C(CH3)CH2
+10058 10058 (Z)-4-hydroperoxy-2-methyl-2-butenal CH2(OOH)CHC(CH3)CHO
+10059 10059 (Z)-4-hydroperoxy-3-methyl-2-butenal CH2(OOH)C(CH3)CHCHO
+# 10060-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, etc.)
+10500 10500 Dimethyl sulphide CH3SCH3 (DMS)
+10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO
+# 10502-20000 Reserved
+20001 20001 Hydrogen chloride HCl
+20002 20002 CFC-11 (trichlorofluoromethane) CCl3F
+20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2
+20004 20004 CFC-113 (1,1,2-trichloro-1,2,2-trifluoroethane) Cl2FC-CClF2
+20005 20005 CFC-113a (1,1,1-trichloro-2,2,2-trifluoroethane) Cl3C-CF3
+20006 20006 CFC-114 (1,2-dichloro-1,1,2,2-tetrafluoroethane) ClF2C-CClF2
+20007 20007 CFC-115 (1-chloro-1,1,2,2,2-pentafluoroethane) ClF2C-CF3
+20008 20008 HCFC-22 (chlorodifluoromethane) CHClF2
+20009 20009 HCFC-141b (1,1-dichloro-1-fluoroethane) Cl2FC-CH3
+20010 20010 HCFC-142b (1-chloro-1,1-difluoroethane) ClF2C-CH3
+20011 20011 Halon-1202 (dibromodifluoromethane) CBr2F2
+20012 20012 Halon-1211 (bromochlorodifluoromethane) CBrClF2
+20013 20013 Halon-1301 (bromotrifluoromethane) CBrF3
+20014 20014 Halon-2402 (1,2-dibromo-1,1,2,2-tetrafluoroethane) BrF2C-CBrF2
+20015 20015 HCC-40 (methyl chloride) CH3Cl
+20016 20016 HCC-10 (carbon tetrachloride) CCl4
+20017 20017 HCC-140a (1,1,1-trichloroethane) Cl3C-CH3
+20018 20018 HBC-40B1 (methyl bromide) CH3Br
+20019 20019 HCH (hexachlorocyclohexane) all isomers C6H6Cl6
+20020 20020 alpha-HCH (alpha-hexachlorocyclohexane) both enantiomers alpha-C6H6Cl6
+20021 20021 PCB-153 (2,2',4,4',5,5'-hexachlorobiphenyl) (C6H2Cl3)2
+20022 20022 HCFC-141a (1,1-dichloro-2-fluoroethane) Cl2HC-CH2F
+# 20023-29999 Reserved
+30000 30000 Radioactive pollutant (tracer, defined by originating centre)
+# 30001-30009 Reserved
+30010 30010 Tritium (Hydrogen 3) H-3
+30011 30011 Tritium organic bounded H-3o
+30012 30012 Tritium inorganic H-3a
+30013 30013 Beryllium 7 Be-7
+30014 30014 Beryllium 10 Be-10
+30015 30015 Carbon 14 C-14
+30016 30016 Carbon 14 CO2 C-14CO2
+30017 30017 Carbon 14 other gases C-14og
+30018 30018 Nitrogen 13 N-13
+30019 30019 Nitrogen 16 N-16
+30020 30020 Fluorine 18 F-18
+30021 30021 Sodium 22 Na-22
+30022 30022 Phosphate 32 P-32
+30023 30023 Phosphate 33 P-33
+30024 30024 Sulphur 35 S-35
+30025 30025 Chlorine 36 Cl-36
+30026 30026 Potassium 40 K-40
+30027 30027 Argon 41 Ar-41
+30028 30028 Calcium 41 Ca-41
+30029 30029 Calcium 45 Ca-45
+30030 30030 Titanium 44 Ti-44
+30031 30031 Scandium 46 Sc-46
+30032 30032 Vanadium 48 V-48
+30033 30033 Vanadium 49 V-49
+30034 30034 Chrome 51 Cr-51
+30035 30035 Manganese 52 Mn-52
+30036 30036 Manganese 54 Mn-54
+30037 30037 Iron 55 Fe-55
+30038 30038 Iron 59 Fe-59
+30039 30039 Cobalt 56 Co-56
+30040 30040 Cobalt 57 Co-57
+30041 30041 Cobalt 58 Co-58
+30042 30042 Cobalt 60 Co-60
+30043 30043 Nickel 59 Ni-59
+30044 30044 Nickel 63 Ni-63
+30045 30045 Zinc 65 Zn-65
+30046 30046 Gallium 67 Ga-67
+30047 30047 Gallium 68 Ga-68
+30048 30048 Germanium 68 Ge-68
+30049 30049 Germanium 69 Ge-69
+30050 30050 Arsenic 73 As-73
+30051 30051 Selenium 75 Se-75
+30052 30052 Selenium 79 Se-79
+30053 30053 Rubidium 81 Rb-81
+30054 30054 Rubidium 83 Rb-83
+30055 30055 Rubidium 84 Rb-84
+30056 30056 Rubidium 86 Rb-86
+30057 30057 Rubidium 87 Rb-87
+30058 30058 Rubidium 88 Rb-88
+30059 30059 Krypton 85 Kr-85
+30060 30060 Krypton 85 metastable Kr-85m
+30061 30061 Krypton 87 Kr-87
+30062 30062 Krypton 88 Kr-88
+30063 30063 Krypton 89 Kr-89
+30064 30064 Strontium 85 Sr-85
+30065 30065 Strontium 89 Sr-89
+30066 30066 Strontium 89/90 Sr-8990
+30067 30067 Strontium 90 Sr-90
+30068 30068 Strontium 91 Sr-91
+30069 30069 Strontium 92 Sr-92
+30070 30070 Yttrium 87 Y-87
+30071 30071 Yttrium 88 Y-88
+30072 30072 Yttrium 90 Y-90
+30073 30073 Yttrium 91 Y-91
+30074 30074 Yttrium 91 metastable Y-91m
+30075 30075 Yttrium 92 Y-92
+30076 30076 Yttrium 93 Y-93
+30077 30077 Zirconium 89 Zr-89
+30078 30078 Zirconium 93 Zr-93
+30079 30079 Zirconium 95 Zr-95
+30080 30080 Zirconium 97 Zr-97
+30081 30081 Niobium 93 metastable Nb-93m
+30082 30082 Niobium 94 Nb-94
+30083 30083 Niobium 95 Nb-95
+30084 30084 Niobium 95 metastable Nb-95m
+30085 30085 Niobium 97 Nb-97
+30086 30086 Niobium 97 metastable Nb-97m
+30087 30087 Molybdenum 93 Mo-93
+30088 30088 Molybdenum 99 Mo-99
+30089 30089 Technetium 95 metastable Tc-95m
+30090 30090 Technetium 96 Tc-96
+30091 30091 Technetium 99 Tc-99
+30092 30092 Technetium 99 metastable Tc-99m
+30093 30093 Rhodium 99 Rh-99
+30094 30094 Rhodium 101 Rh-101
+30095 30095 Rhodium 102 metastable Rh-102m
+30096 30096 Rhodium 103 metastable Rh-103m
+30097 30097 Rhodium 105 Rh-105
+30098 30098 Rhodium 106 Rh-106
+30099 30099 Palladium 100 Pd-100
+30100 30100 Palladium 103 Pd-103
+30101 30101 Palladium 107 Pd-107
+30102 30102 Ruthenium 103 Ru-103
+30103 30103 Ruthenium 105 Ru-105
+30104 30104 Ruthenium 106 Ru-106
+30105 30105 Silver 108 metastable Ag-108m
+30106 30106 Silver 110 metastable Ag-110m
+30107 30107 Cadmium 109 Cd-109
+30108 30108 Cadmium 113 metastable Cd-113m
+30109 30109 Cadmium 115 metastable Cd-115m
+30110 30110 Indium 114 metastable In-114m
+30111 30111 Tin 113 Sn-113
+30112 30112 Tin 119 metastable Sn-119m
+30113 30113 Tin 121 metastable Sn-121m
+30114 30114 Tin 122 Sn-122
+30115 30115 Tin 123 Sn-123
+30116 30116 Tin 126 Sn-126
+30117 30117 Antimony 124 Sb-124
+30118 30118 Antimony 125 Sb-125
+30119 30119 Antimony 126 Sb-126
+30120 30120 Antimony 127 Sb-127
+30121 30121 Antimony 129 Sb-129
+30122 30122 Tellurium 123 metastable Te-123m
+30123 30123 Tellurium 125 metastable Te-125m
+30124 30124 Tellurium 127 Te-127
+30125 30125 Tellurium 127 metastable Te-127m
+30126 30126 Tellurium 129 Te-129
+30127 30127 Tellurium 129 metastable Te-129m
+30128 30128 Tellurium 131 metastable Te-131m
+30129 30129 Tellurium 132 Te-132
+30130 30130 Iodine 123 I-123
+30131 30131 Iodine 124 I-124
+30132 30132 Iodine 125 I-125
+30133 30133 Iodine 126 I-126
+30134 30134 Iodine 129 I-129
+30135 30135 Iodine 129 elementary gaseous I-129g
+30136 30136 Iodine 129 organic bounded I-129o
+30137 30137 Iodine 131 I-131
+30138 30138 Iodine 131 elementary gaseous I-131g
+30139 30139 Iodine 131 organic bounded I-131o
+30140 30140 Iodine 131 gaseous elementary and organic bounded I-131go
+30141 30141 Iodine 131 aerosol I-131a
+30142 30142 Iodine 132 I-132
+30143 30143 Iodine 132 elementary gaseous I-132g
+30144 30144 Iodine 132 organic bounded I-132o
+30145 30145 Iodine 132 gaseous elementary and organic bounded I-132go
+30146 30146 Iodine 132 aerosol I-132a
+30147 30147 Iodine 133 I-133
+30148 30148 Iodine 133 elementary gaseous I-133g
+30149 30149 Iodine 133 organic bounded I-133o
+30150 30150 Iodine 133 gaseous elementary and organic bounded I-133go
+30151 30151 Iodine 133 aerosol I-133a
+30152 30152 Iodine 134 I-134
+30153 30153 Iodine 134 elementary gaseous I-134g
+30154 30154 Iodine 134 organic bounded I-134o
+30155 30155 Iodine 135 I-135
+30156 30156 Iodine 135 elementary gaseous I-135g
+30157 30157 Iodine 135 organic bounded I-135o
+30158 30158 Iodine 135 gaseous elementary and organic bounded I-135go
+30159 30159 Iodine 135 aerosol I-135a
+30160 30160 Xenon 131 metastable Xe-131m
+30161 30161 Xenon 133 Xe-133
+30162 30162 Xenon 133 metastable Xe-133m
+30163 30163 Xenon 135 Xe-135
+30164 30164 Xenon 135 metastable Xe-135m
+30165 30165 Xenon 137 Xe-137
+30166 30166 Xenon 138 Xe-138
+30167 30167 Xenon sum of all Xenon isotopes Xe-sum
+30168 30168 Caesium 131 Cs-131
+30169 30169 Caesium 134 Cs-134
+30170 30170 Caesium 135 Cs-135
+30171 30171 Caesium 136 Cs-136
+30172 30172 Caesium 137 Cs-137
+30173 30173 Barium 133 Ba-133
+30174 30174 Barium 137 metastable Ba-137m
+30175 30175 Barium 140 Ba-140
+30176 30176 Cerium 139 Ce-139
+30177 30177 Cerium 141 Ce-141
+30178 30178 Cerium 143 Ce-143
+30179 30179 Cerium 144 Ce-144
+30180 30180 Lanthanum 140 La-140
+30181 30181 Lanthanum 141 La-141
+30182 30182 Praseodymium 143 Pr-143
+30183 30183 Praseodymium 144 Pr-144
+30184 30184 Praseodymium 144 metastable Pr-144m
+30185 30185 Samarium 145 Sm-145
+30186 30186 Samarium 147 Sm-147
+30187 30187 Samarium 151 Sm-151
+30188 30188 Neodymium 147 Nd-147
+30189 30189 Promethium 146 Pm-146
+30190 30190 Promethium 147 Pm-147
+30191 30191 Promethium 151 Pm-151
+30192 30192 Europium 152 Eu-152
+30193 30193 Europium 154 Eu-154
+30194 30194 Europium 155 Eu-155
+30195 30195 Gadolinium 153 Gd-153
+30196 30196 Terbium 160 Tb-160
+30197 30197 Holmium 166 metastable Ho-166m
+30198 30198 Thulium 170 Tm-170
+30199 30199 Ytterbium 169 Yb-169
+30200 30200 Hafnium 175 Hf-175
+30201 30201 Hafnium 181 Hf-181
+30202 30202 Tantalum 179 Ta-179
+30203 30203 Tantalum 182 Ta-182
+30204 30204 Rhenium 184 Re-184
+30205 30205 Iridium 192 Ir-192
+30206 30206 Mercury 203 Hg-203
+30207 30207 Thallium 204 Tl-204
+30208 30208 Thallium 207 Tl-207
+30209 30209 Thallium 208 Tl-208
+30210 30210 Thallium 209 Tl-209
+30211 30211 Bismuth 205 Bi-205
+30212 30212 Bismuth 207 Bi-207
+30213 30213 Bismuth 210 Bi-210
+30214 30214 Bismuth 211 Bi-211
+30215 30215 Bismuth 212 Bi-212
+30216 30216 Bismuth 213 Bi-213
+30217 30217 Bismuth 214 Bi-214
+30218 30218 Polonium 208 Po-208
+30219 30219 Polonium 210 Po-210
+30220 30220 Polonium 212 Po-212
+30221 30221 Polonium 213 Po-213
+30222 30222 Polonium 214 Po-214
+30223 30223 Polonium 215 Po-215
+30224 30224 Polonium 216 Po-216
+30225 30225 Polonium 218 Po-218
+30226 30226 Lead 209 Pb-209
+30227 30227 Lead 210 Pb-210
+30228 30228 Lead 211 Pb-211
+30229 30229 Lead 212 Pb-212
+30230 30230 Lead 214 Pb-214
+30231 30231 Astatine 217 At-217
+30232 30232 Radon 219 Rn-219
+30233 30233 Radon 220 Rn-220
+30234 30234 Radon 222 Rn-222
+30235 30235 Francium 221 Fr-221
+30236 30236 Francium 223 Fr-223
+30237 30237 Radium 223 Ra-223
+30238 30238 Radium 224 Ra-224
+30239 30239 Radium 225 Ra-225
+30240 30240 Radium 226 Ra-226
+30241 30241 Radium 228 Ra-228
+30242 30242 Actinium 225 Ac-225
+30243 30243 Actinium 227 Ac-227
+30244 30244 Actinium 228 Ac-228
+30245 30245 Thorium 227 Th-227
+30246 30246 Thorium 228 Th-228
+30247 30247 Thorium 229 Th-229
+30248 30248 Thorium 230 Th-230
+30249 30249 Thorium 231 Th-231
+30250 30250 Thorium 232 Th-232
+30251 30251 Thorium 234 Th-234
+30252 30252 Protactinium 231 Pa-231
+30253 30253 Protactinium 233 Pa-233
+30254 30254 Protactinium 234 metastable Pa-234m
+30255 30255 Uranium 232 U-232
+30256 30256 Uranium 233 U-233
+30257 30257 Uranium 234 U-234
+30258 30258 Uranium 235 U-235
+30259 30259 Uranium 236 U-236
+30260 30260 Uranium 237 U-237
+30261 30261 Uranium 238 U-238
+30262 30262 Plutonium 236 Pu-236
+30263 30263 Plutonium 238 Pu-238
+30264 30264 Plutonium 239 Pu-239
+30265 30265 Plutonium 240 Pu-240
+30266 30266 Plutonium 241 Pu-241
+30267 30267 Plutonium 242 Pu-242
+30268 30268 Plutonium 244 Pu-244
+30269 30269 Neptunium 237 Np-237
+30270 30270 Neptunium 238 Np-238
+30271 30271 Neptunium 239 Np-239
+30272 30272 Americium 241 Am-241
+30273 30273 Americium 242 Am-242
+30274 30274 Americium 242 metastable Am-242m
+30275 30275 Americium 243 Am-243
+30276 30276 Curium 242 Cm-242
+30277 30277 Curium 243 Cm-243
+30278 30278 Curium 244 Cm-244
+30279 30279 Curium 245 Cm-245
+30280 30280 Curium 246 Cm-246
+30281 30281 Curium 247 Cm-247
+30282 30282 Curium 248 Cm-248
+30283 30283 Curium 243/244 Cm-243244
+30284 30284 Plutonium 238/Americium 241 Pu-238Am-241
+30285 30285 Plutonium 239/240 Pu-239240
+30286 30286 Berkelium 249 Bk-249
+30287 30287 Californium 249 Cf-249
+30288 30288 Californium 250 Cf-250
+30289 30289 Californium 252 Cf-252
+30290 30290 Sum aerosol particulates SumAer
+30291 30291 Sum Iodine SumIod
+30292 30292 Sum noble gas SumNG
+30293 30293 Activation gas ActGas
+30294 30294 Cs-137 Equivalent EquCs137
+30295 30295 Carbon-13 C-13
+30296 30296 Lead Pb
+30297 30297 Tellurium 131 Te-131
+30298 30298 Neodymium 137 Nd-137
+# 30299-39999 Reserved
+40000 40000 Singlet sigma oxygen (dioxygen (sigma singlet)) O2
+40001 40001 Singlet delta oxygen (dioxygen (delta singlet)) O2
+40002 40002 Singlet excited oxygen atom O(1D)
+40003 40003 Triplet ground state oxygen atom O(3P)
+# 40004-59999 Reserved
+60000 60000 HOx radical (OH+HO2) HOx*
+60001 60001 Total inorganic and organic peroxy radicals (HOO* + ROO*) ROO*
+60002 60002 Passive Ozone
+60003 60003 NOx expressed as nitrogen NOx
+60004 60004 All nitrogen oxides (NOy) expressed as nitrogen NOy
+60005 60005 Total inorganic chlorine Clx
+60006 60006 Total inorganic bromine Brx
+60007 60007 Total inorganic chlorine except HCl, ClONO2: ClOx
+60008 60008 Total inorganic bromine except HBr, BrONO2: BrOx
+60009 60009 Lumped alkanes
+60010 60010 Lumped alkenes
+60011 60011 Lumped aromatic compounds
+60012 60012 Lumped terpenes
+60013 60013 Non-methane volatile organic compounds expressed as carbon NMVOC
+60014 60014 Anthropogenic non-methane volatile organic compounds expressed as carbon aNMVOC
+60015 60015 Biogenic non-methane volatile organic compounds expressed as carbon bNMVOC
+60016 60016 Lumped oxygenated hydrocarbons OVOC
+60017 60017 NOx expressed as nitrogen dioxide (NO2) NOx
+60018 60018 Organic aldehydes RCHO
+60019 60019 Organic peroxides ROOH
+60020 60020 Organic nitrates RNO3
+60021 60021 Ethers ROR'
+60022 60022 Amines NRR'R''
+60023 60023 Ketones RC(O)R'
+60024 60024 Dicarbonyls unsaturated RC(O)CH2C(O)R'
+60025 60025 Hydroxy dicarbonyls unsaturated RC(O)CHOHC(O)R'
+60026 60026 Hydroxy ketones RC(OH)C(O)R'
+60027 60027 Oxides Ox
+60028 60028 Peroxyacyl nitrates RC(O)OONO2
+60029 60029 Aromatic peroxide radical (Aryl dioxydanyl radicals) ArOO*
+60030 60030 Biogenic secondary organic compound
+60031 60031 Anthropogenic secondary organic compound
+60032 60032 All hydroxy-peroxides products of the reaction of hydroxy-isoprene adducts with O2 ISOPOOH
+60033 60033 Anthropogenic volatile organic compounds aVOC
+60034 60034 Biomass burning volatile organic compounds bbVOC
+# 60035-61999 Reserved
+62000 62000 Total aerosol
+62001 62001 Dust dry
+62002 62002 Water in ambient
+62003 62003 Ammonium dry
+62004 62004 Nitrate dry
+62005 62005 Nitric acid trihydrate
+62006 62006 Sulphate dry
+62007 62007 Mercury dry
+62008 62008 Sea salt dry
+62009 62009 Black carbon dry
+62010 62010 Particulate organic matter dry
+62011 62011 Primary particulate organic matter dry
+62012 62012 Secondary particulate organic matter dry
+62013 62013 Black carbon hydrophilic dry
+62014 62014 Black carbon hydrophobic dry
+62015 62015 Particulate organic matter hydrophilic dry
+62016 62016 Particulate organic matter hydrophobic dry
+62017 62017 Nitrate hydrophilic dry
+62018 62018 Nitrate hydrophobic dry
+# 62019 Reserved
+62020 62020 Smoke - high absorption
+62021 62021 Smoke - low absorption
+62022 62022 Aerosol - high absorption
+62023 62023 Aerosol - low absorption
+# 62024 Reserved
+62025 62025 Volcanic ash
+62026 62026 Particulate matter (PM)
+# 62027 Reserved
+62028 62028 Total aerosol hydrophilic
+62029 62029 Total aerosol hydrophobic
+62030 62030 Primary particulate inorganic matter dry
+62031 62031 Secondary particulate inorganic matter dry
+62032 62032 Biogenic secondary organic aerosol
+62033 62033 Anthropogenic secondary organic aerosol
+62034 62034 Rain water H2Orain
+62035 62035 Cloud water H2Ocloud
+62036 62036 Brown carbon dry
+# 62037-62099 Reserved
+62100 62100 Alnus (alder) pollen
+62101 62101 Betula (birch) pollen
+62102 62102 Castanea (chestnut) pollen
+62103 62103 Carpinus (hornbeam) pollen
+62104 62104 Corylus (hazel) pollen
+62105 62105 Fagus (beech) pollen
+62106 62106 Fraxinus (ash) pollen
+62107 62107 Pinus (pine) pollen
+62108 62108 Platanus (plane) pollen
+62109 62109 Populus (cottonwood, poplar) pollen
+62110 62110 Quercus (oak) pollen
+62111 62111 Salix (willow) pollen
+62112 62112 Taxus (yew) pollen
+62113 62113 Tilia (lime, linden) pollen
+62114 62114 Ulmus (elm) pollen
+62115 62115 Olea (olive) pollen
+# 62116-62199 Reserved
+62200 62200 Ambrosia (ragweed, burr-ragweed) pollen
+62201 62201 Artemisia (sagebrush, wormwood, mugwort) pollen
+62202 62202 Brassica (rape, broccoli, Brussels sprouts, cabbage, cauliflower, collards, kale, kohlrabi, mustard, rutabaga) pollen
+62203 62203 Plantago (plantain) pollen
+62204 62204 Rumex (dock, sorrel) pollen
+62205 62205 Urtica (nettle) pollen
+# 62206-62299 Reserved
+62300 62300 Poaceae (grass family) pollen
+# 62301-62999 Reserved
+# 63000-65534 For experimental use at local level
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/4.234.table b/definitions/grib2/tables/32/4.234.table
new file mode 100644
index 000000000..3b05b4515
--- /dev/null
+++ b/definitions/grib2/tables/32/4.234.table
@@ -0,0 +1,21 @@
+# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/32/4.236.table b/definitions/grib2/tables/32/4.236.table
new file mode 100644
index 000000000..9c58b488c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.236.table
@@ -0,0 +1,8 @@
+# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/32/4.238.table b/definitions/grib2/tables/32/4.238.table
new file mode 100644
index 000000000..be5be3a90
--- /dev/null
+++ b/definitions/grib2/tables/32/4.238.table
@@ -0,0 +1,32 @@
+# Code table 4.238 - Source or sink
+0 0 Other
+1 1 Aviation
+2 2 Lightning
+3 3 Biogenic sources
+4 4 Anthropogenic sources
+5 5 Wild fires
+6 6 Natural sources
+7 7 Volcanoes
+8 8 Bio-fuel
+9 9 Fossil-fuel
+10 10 Wetlands
+11 11 Oceans
+12 12 Elevated anthropogenic sources
+13 13 Surface anthropogenic sources
+14 14 Agriculture livestock
+15 15 Agriculture soils
+16 16 Agriculture waste burning
+17 17 Agriculture (all)
+18 18 Residential, commercial and other combustion
+19 19 Power generation
+20 20 Super power stations
+21 21 Fugitives
+22 22 Industrial process
+23 23 Solvents
+24 24 Ships
+25 25 Wastes (solid and water)
+26 26 Road transportation
+27 27 Off-road transportation
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.239.table b/definitions/grib2/tables/32/4.239.table
new file mode 100644
index 000000000..f095b14a0
--- /dev/null
+++ b/definitions/grib2/tables/32/4.239.table
@@ -0,0 +1,17 @@
+# Code table 4.239 - Wetland Type
+0 0 Reserved
+1 1 Bog
+2 2 Drained
+3 3 Fen
+4 4 Floodplain
+5 5 Mangrove
+6 6 Marsh
+7 7 Rice
+8 8 Riverine
+9 9 Salt marsh
+10 10 Swamp
+11 11 Upland
+12 12 Wet tundra
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.240.table b/definitions/grib2/tables/32/4.240.table
new file mode 100644
index 000000000..2a31fb2ab
--- /dev/null
+++ b/definitions/grib2/tables/32/4.240.table
@@ -0,0 +1,13 @@
+# Code table 4.240 - Type of distribution function
+0 0 No specific distribution function given
+1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
+7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
+8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2)
+# 9-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/32/4.241.table b/definitions/grib2/tables/32/4.241.table
new file mode 100644
index 000000000..743e5f6e2
--- /dev/null
+++ b/definitions/grib2/tables/32/4.241.table
@@ -0,0 +1,12 @@
+# Code table 4.241 - Coverage attributes
+0 UNDEF Undefined
+1 UNMOD Unmodified
+2 SNOW Snow covered
+3 FLOOD Flooded
+4 ICE Ice covered
+5 ITCW With intercepted water
+6 ITCS With intercepted snow
+7 AGG Aggregated
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/32/4.242.table b/definitions/grib2/tables/32/4.242.table
new file mode 100644
index 000000000..9574142da
--- /dev/null
+++ b/definitions/grib2/tables/32/4.242.table
@@ -0,0 +1,10 @@
+# Code table 4.242 - Tile classification
+0 0 Reserved
+1 GCV2009 Land use classes according to ESA-GlobCover GCV2009
+2 GLC2000 Land use classes according to European Commission-Global Land Cover Project GLC2000
+3 ECOCLIMAP Land use classes according to ECOCLIMAP
+4 ECOCLIMAP-SG Land use classes according to ECOCLIMAP-SG
+5 GLCCv2BATS Land use classes according to USGS EROS Global Land Cover Characterization (GLCC) v2.0 BATS Classification
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/32/4.243.table b/definitions/grib2/tables/32/4.243.table
new file mode 100644
index 000000000..24d21b719
--- /dev/null
+++ b/definitions/grib2/tables/32/4.243.table
@@ -0,0 +1,43 @@
+# Code table 4.243 - Tile class
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/32/4.244.table b/definitions/grib2/tables/32/4.244.table
new file mode 100644
index 000000000..a4470cd56
--- /dev/null
+++ b/definitions/grib2/tables/32/4.244.table
@@ -0,0 +1,7 @@
+# Code table 4.244 - Quality indicator
+0 0 No quality information available
+1 1 Failed
+2 2 Passed
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.246.table b/definitions/grib2/tables/32/4.246.table
new file mode 100644
index 000000000..0ca9c0c98
--- /dev/null
+++ b/definitions/grib2/tables/32/4.246.table
@@ -0,0 +1,7 @@
+# Code table 4.246 - Thunderstorm intensity
+0 0 No thunderstorm occurrence
+1 1 Weak thunderstorm
+2 2 Moderate thunderstorm
+3 3 Severe thunderstorm
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.247.table b/definitions/grib2/tables/32/4.247.table
new file mode 100644
index 000000000..6da16e396
--- /dev/null
+++ b/definitions/grib2/tables/32/4.247.table
@@ -0,0 +1,7 @@
+# Code table 4.247 - Precipitation intensity
+0 0 No precipitation occurrence
+1 1 Light precipitation
+2 2 Moderate precipitation
+3 3 Heavy precipitation
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.248.table b/definitions/grib2/tables/32/4.248.table
new file mode 100644
index 000000000..04e365c97
--- /dev/null
+++ b/definitions/grib2/tables/32/4.248.table
@@ -0,0 +1,6 @@
+# Code table 4.248 - Method used to derive data values for a given local time
+0 0 Nearest forecast or analysis time to specified local time
+1 1 Interpolated to be valid at the specified local time
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.249.table b/definitions/grib2/tables/32/4.249.table
new file mode 100644
index 000000000..bd1c944c4
--- /dev/null
+++ b/definitions/grib2/tables/32/4.249.table
@@ -0,0 +1,7 @@
+# Code table 4.249 - Character of precipitation
+0 0 None
+1 1 Showers
+2 2 Intermittent
+3 3 Continuous
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.250.table b/definitions/grib2/tables/32/4.250.table
new file mode 100644
index 000000000..a249158ca
--- /dev/null
+++ b/definitions/grib2/tables/32/4.250.table
@@ -0,0 +1,14 @@
+# Code table 4.250 - Drainage direction
+0 0 Reserved
+1 1 South-west
+2 2 South
+3 3 South-east
+4 4 West
+5 5 No direction
+6 6 East
+7 7 North-west
+8 8 North
+9 9 North-east
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.251.table b/definitions/grib2/tables/32/4.251.table
new file mode 100644
index 000000000..3a78e713e
--- /dev/null
+++ b/definitions/grib2/tables/32/4.251.table
@@ -0,0 +1,7 @@
+# Code table 4.251 - Wave direction and frequency formulae
+0 0 Undefined sequence
+1 1 Geometric sequence
+2 2 Arithmetic sequence
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.252.table b/definitions/grib2/tables/32/4.252.table
new file mode 100644
index 000000000..961928cd4
--- /dev/null
+++ b/definitions/grib2/tables/32/4.252.table
@@ -0,0 +1,165 @@
+# Code table 4.252 - Tile classes and groupings
+0 0 Reserved
+1 SEOC Seas and oceans
+2 INWB Inland water bodies
+3 BARE Bare areas
+4 HIV High vegetation
+5 LOV Low vegetation
+6 URBAN Urban
+# 7-1000 Reserved for intercomparison tile classes/groupings
+1001 SEAO Sea and oceans
+1002 LAKE Lakes
+1003 RIVE Rivers
+1004 NO Bare land
+1005 ROCK Bare rock
+1006 SNOW Permanent snow
+1007 BOBD Boreal broadleaf deciduous
+1008 TEBD Temperate broadleaf deciduous
+1009 TRBD Tropical broadleaf deciduous
+1010 TEBE Temperate broadleaf evergreen
+1011 TRBE Tropical broadleaf evergreen
+1012 BONE Boreal needleleaf evergreen
+1013 TENE Temperate needleleaf evergreen
+1014 BOND Boreal needleleaf deciduous
+1015 SHRB Shrubs
+1016 BOGR Boreal grassland
+1017 GRAS Temperate grassland
+1018 TROG Tropical grassland
+1019 C3W Winter C3 crops
+1020 C3S Summer C3 crops
+1021 C4 C4 crops
+1022 FLTR Flooded trees
+1023 FLGR Flooded grassland
+1024 LCZ1 Local climate zone 1: compact high-rise (buildings)
+1025 LCZ2 Local climate zone 2: compact midrise (buildings)
+1026 LCZ3 Local climate zone 3: compact low-rise (buildings)
+1027 LCZ4 Local climate zone 4: open high-rise (buildings)
+1028 LCZ5 Local climate zone 5: open midrise (buildings)
+1029 LCZ6 Local climate zone 6: open low-rise (buildings)
+1030 LCZ7 Local climate zone 7: lightweight low-rise (buildings)
+1031 LCZ8 Local climate zone 8: large low-rise (buildings)
+1032 LCZ9 Local climate zone 9: sparsely built (buildings)
+1033 LCZ10 Local climate zone 10: heavy industry (buildings)
+1034 TEBDU Urban temperate broadleaf deciduous
+1035 TRBDU Urban tropical broadleaf deciduous
+1036 TEBEU Urban temperate broadleaf evergreen
+1037 TRBEU Urban tropical broadleaf evergreen
+1038 BONEU Urban boreal needleleaf evergreen
+1039 TENEU Urban temperate needleleaf evergreen
+1040 BONDU Urban boreal needleleaf deciduous
+# 1041-1500 Reserved for tile class entries for tile models using the ECOCLIMAP-SG land cover survey
+# v8.1 groupings
+1501 GNATU Nature grouping (NO + ROCK + SNOW + BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
+1502 GNOFO Non-forest grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
+1503 GFORE Forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB)
+1504 GNOVE Non-vegetated grouping (NO + ROCK + SNOW)
+1505 GTREE Trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + FLTR)
+1506 GLVEG Low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
+1507 GNFLV Non-flooded low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4)
+1508 GCROP Crops grouping (C3W + C3S + C4)
+1509 GGRAS Grassland grouping (BOGR + GRAS + TROG)
+1510 GBARO Bare and rock grouping (NO + ROCK)
+1511 GC3CR C3 crops grouping (C3W + C3S)
+1512 GBFOR Broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB)
+1513 GNFOR Needleleaf forest grouping (BONE + TENE + BOND)
+1514 GDBFO Deciduous broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + SHRB)
+1515 GTGRA Temperate grassland grouping (BOGR + GRAS)
+# v9.0 groupings
+1516 GNFNF Non-forest (no FLTR) grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
+1517 GBFFT Broadleaf forest (with FLTR) grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB + FLTR)
+1518 GBTRE Broadleaf trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + FLTR)
+1519 GCGRA C3/C4 grasslands grouping (BOGR + GRAS + FLGR)
+1520 GBDTR Broadleaf deciduous trees grouping (BOBD + TEBD + TRBD + FLTR)
+1521 GBETR Broadleaf evergreen trees grouping (TEBE + TRBE)
+1522 GNETR Needleleaf evergreen trees grouping (BONE + TENE)
+# Other groupings
+1523 GLCZU LCZ or urban grouping (LCZ1 + LCZ2 + LCZ3 + LCZ4 + LCZ5 + LCZ6 + LCZ7 + LCZ8 + LCZ9 + LCZ10)
+1524 GIWAT Inland water grouping (LAKE + RIVE)
+1525 GPTEBD Urban parks and gardens TEBD grouping (NO + GRAS + TEBDU)
+1526 GPTRBD Urban parks and gardens TRBD grouping (NO + GRAS + TRBDU)
+1527 GPTEBE Urban parks and gardens TEBE grouping (NO + GRAS + TEBEU)
+1528 GPTRBE Urban parks and gardens TRBE grouping (NO + GRAS + TRBEU)
+1529 GPBONE Urban parks and gardens BONE grouping (NO + GRAS + BONEU)
+1530 GPTENE Urban parks and gardens TENE grouping (NO + GRAS + TENEU)
+1531 GPBOND Urban parks and gardens BOND grouping (NO + GRAS + BONDU)
+# 1532-2000 Reserved for tile grouping entries for tile models using the ECOCLIMAP-SG land cover survey
+2001 CRMF Crops, mixed farming
+2002 SHGR Short grass
+2003 EVNE Evergreen needleleaf trees
+2004 DENE Deciduous needleleaf trees
+2005 DEBR Deciduous broadleaf trees
+2006 EVBR Evergreen broadleaf trees
+2007 TAGR Tall grass
+2008 DESE Desert
+2009 TUND Tundra
+2010 IRCR Irrigated crops
+2011 SEDE Semidesert
+2012 ICGL Ice caps and glaciers
+2013 BOMA Bogs and marshes
+2014 INWA Inland water
+2015 OCEA Ocean
+2016 EVSH Evergreen shrubs
+2017 DESH Deciduous shrubs
+2018 MFWO Mixed forest/woodland
+2019 INFO Interrupted forest
+2020 WLMI Water and land mixtures
+2021 BASO Bare soil
+2022 URBA Urban
+2023 LORI Low-rise building
+2024 HIRI High-rise building
+# 2025-2500 Reserved for tile class entries for tile models using the GLCC v2.0 BATS Classification survey
+2501 GLVE Low vegetation grouping (CRMF + SHGR + TAGR + TUND + IRCR + SEDE + BOMA + EVSH + DESH + WLMI)
+2502 GHVE High vegetation grouping (EVNE + DENE + DEBR + EVBR + MFWO + INFO)
+# 2503-3000 Reserved for tile grouping entries for tile models using the GLCC v2.0 BATS Classification survey
+3001 PFIC Post-flooding or irrigated croplands
+3002 RACR Rainfed croplands
+3003 MCVE Mosaic cropland (50-70%) / vegetation (grassland, shrubland, forest) (20-50%)
+3004 MVCR Mosaic vegetation (grassland, shrubland, forest) (50-70%) / cropland (20-50%)
+3005 COBS Closed to open (>15%) broadleaved evergreen and/or semi-deciduous forest (>5m)
+3006 CLBD Closed (>40%) broadleaved deciduous forest (>5m)
+3007 OPBD Open (15-40%) broadleaved deciduous forest (>5m)
+3008 CLNE Closed (>40%) needleleaved evergreen forest (>5m)
+3009 ONDE Open (15-40%) needleleaved deciduous or evergreen forest (>5m)
+3010 COBN Closed to open (>15%) mixed broadleaved and needleleaved forest (>5m)
+3011 MFSG Mosaic forest/shrubland (50-70%) / grassland (20-50%)
+3012 MGFS Mosaic grassland (50-70%) / forest / shrubland (20-50%)
+3013 COSH Closed to open (>15%) shrubland (<5m)
+3014 COHV Closed to open (>15%) herbaceous vegetation
+3015 SPVE Sparse (<15%) vegetation (woody vegetation, shrubs, grassland)
+3016 COBFF Closed to open (>15%) broadleaved forest regularly flooded (semi-permanently or temporarily) - fresh or brackish water
+3017 CLBFF Closed (>40%) broadleaved forest or shrubland permanently flooded - saline or brackish water
+3018 COVEF Closed to open (>15%) vegetation (grassland, shrubland, woody vegetation) on regularly flooded or waterlogged soil - fresh, brackish or saline water
+3019 ASAA Artificial surfaces and associated areas (urban areas >50%)
+3020 BAAR Bare areas
+3021 WABO Water bodies
+3022 PESI Permanent snow and ice
+# 3023-3500 Reserved for tile class entries for tile models using the ESA-GlobCover GCV2009 survey
+3501 GRDT Grouping using the dominant tiles approach (dominant tile varies per gridbox)
+# 3502-4000 Reserved for tile grouping entries for tile models using the ESA-GlobCover GCV2009 survey
+4001 TBECO Tree cover, broadleaved evergreen, closed to open (>15%)
+4002 TBDC Tree cover, broadleaved deciduous, closed (>40%)
+4003 TBDO Tree cover, broadleaved deciduous, open (15-40%)
+4004 TNECO Tree cover, needleleaved evergreen, closed to open (>15%)
+4005 TNDCO Tree cover, needleleaved decidous, closed to open (>15%)
+4006 TMLCO Tree cover, mixed leaftype, closed to open (>15%)
+4007 TCOFF Tree cover, closed to open (>15%), regularly flooded, fresh or brackish water: swamp forests
+4008 TCOFS Tree cover, closed to open (>15%), regularly flooded, saline water: mangrove forests
+4009 MTVG Mosaic of tree cover and other natural vegetation (crop component possible)
+4010 TBURN Tree Cover, burnt (mainly boreal forests)
+4011 SCOE Shrubcover, closed to open (>15%) , evergreen (broadleaved or needleleaved)
+4012 SCOD Shrubcover, closed to open (>15%), deciduous (broadleaved)
+4013 HCCO Herbaceous cover, closed to open (>15%)
+4014 SHSC Sparse herbaceous or sparse shrub cover
+4015 FSHCO Regularly flooded (>2 month) shrub or herbaceous cover, closed to open
+4016 CROP Cropland (upland crops or inundated/ flooded crops)
+4017 MCTNV Mosaic of cropland / tree cover/ other natural vegetation
+4018 MCSH Mosaic of cropland / shrub or herbaceous cover
+4019 BAARE Bare areas
+4020 WBNA Water bodies (natural or artificial)
+4021 SINA Snow or ice (natural or artificial)
+4022 URAR Urban areas
+# 4023-4500 Reserved for tile class entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey
+# 4501-5000 Reserved for tile grouping entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey
+# 5001-32767 Reserved for additional land cover surveys
+# 32768-65534 Reserved for local use
+65535 65535 Missing
\ No newline at end of file
diff --git a/definitions/grib2/tables/32/4.3.table b/definitions/grib2/tables/32/4.3.table
new file mode 100644
index 000000000..8ae36efc3
--- /dev/null
+++ b/definitions/grib2/tables/32/4.3.table
@@ -0,0 +1,26 @@
+# Code table 4.3 - Type of generating process
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+18 18 Difference between two forecasts
+19 19 First guess
+20 20 Analysis increment
+21 21 Initialization increment for analysis
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.4.table b/definitions/grib2/tables/32/4.4.table
new file mode 100644
index 000000000..6e63e069c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.4.table
@@ -0,0 +1,17 @@
+# Code table 4.4 - Indicator of unit of time range
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.5.table b/definitions/grib2/tables/32/4.5.table
new file mode 100644
index 000000000..8cded597c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.5.table
@@ -0,0 +1,95 @@
+# Code table 4.5 - Fixed surface types and units
+0 0 Reserved
+1 sfc Ground or water surface (-)
+2 2 Cloud base level (-)
+3 3 Level of cloud tops (-)
+4 4 Level of 0 degree C isotherm (-)
+5 5 Level of adiabatic condensation lifted from the surface (-)
+6 6 Maximum wind level (-)
+7 sfc Tropopause (-)
+8 sfc Nominal top of the atmosphere (-)
+9 9 Sea bottom (-)
+10 10 Entire atmosphere (-)
+11 11 Cumulonimbus (CB) base (m)
+12 12 Cumulonimbus (CB) top (m)
+13 13 Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover) (%)
+14 14 Level of free convection (LFC) (-)
+15 15 Convective condensation level (CCL) (-)
+16 16 Level of neutral buoyancy or equilibrium level (LNB) (-)
+17 sfc Departure level of the most unstable parcel of air (MUDL)
+18 sfc Departure level of a mixed layer parcel of air with specified layer depth (Pa)
+# 19 Reserved
+20 20 Isothermal level (K)
+21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3)
+22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3)
+23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3)
+24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3)
+25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ)
+26 26 Convective cloud layer base (m)
+27 27 Convective cloud layer top (m)
+# 28-29 Reserved
+30 30 Specified radius from the centre of the Sun (m)
+31 31 Solar photosphere
+32 32 Ionospheric D-region level
+33 33 Ionospheric E-region level
+34 34 Ionospheric F1-region level
+35 35 Ionospheric F2-region level
+# 36-99 Reserved
+100 pl Isobaric surface (Pa)
+101 sfc Mean sea level
+102 102 Specific altitude above mean sea level (m)
+103 sfc Specified height level above ground (m)
+104 104 Sigma level (sigma value)
+105 ml Hybrid level (-)
+106 sfc Depth below land surface (m)
+107 pt Isentropic (theta) level (K)
+108 108 Level at specified pressure difference from ground to level (Pa)
+109 pv Potential vorticity surface (K m2 kg-1 s-1)
+110 110 Reserved
+111 111 Eta level (-)
+112 112 Reserved
+113 113 Logarithmic hybrid level
+114 sol Snow level (Numeric)
+115 115 Sigma height level
+# 116 Reserved
+117 117 Mixed layer depth (m)
+118 hhl Hybrid height level (-)
+119 hpl Hybrid pressure level (-)
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
+151 sol Soil level (Numeric)
+152 sol Sea-ice level (Numeric)
+# 153-159 Reserved
+160 160 Depth below sea level (m)
+161 161 Depth below water surface (m)
+162 sfc Lake or river bottom (-)
+163 163 Bottom of sediment layer (-)
+164 164 Bottom of thermally active sediment layer (-)
+165 165 Bottom of sediment layer penetrated by thermal wave (-)
+166 sfc Mixing layer (-)
+167 167 Bottom of root zone (-)
+168 168 Ocean model level (Numeric)
+169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3)
+170 170 Ocean level defined by water potential temperature difference from near-surface to level (K)
+171 171 Ocean level defined by vertical eddy diffusivity difference from near-surface to level (m2 s-1)
+# 172 Reserved
+173 173 Top of snow over sea ice on sea, lake or river
+174 sfc Top surface of ice on sea, lake or river
+175 175 Top surface of ice, under snow cover, on sea, lake or river
+176 176 Bottom surface (underside) ice on sea, lake or river
+177 sfc Deep soil (of indefinite depth)
+# 178 Reserved
+179 179 Top surface of glacier ice and inland ice
+180 180 Deep inland or glacier ice (of indefinite depth)
+181 181 Grid tile land fraction as a model surface
+182 182 Grid tile water fraction as a model surface
+183 183 Grid tile ice fraction on sea, lake or river as a model surface
+184 184 Grid tile glacier ice and inland ice fraction as a model surface
+185 185 Roof level
+186 186 Wall level
+187 187 Road level
+188 188 Melt pond top surface
+189 189 Melt pond bottom surface
+# 190-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.6.table b/definitions/grib2/tables/32/4.6.table
new file mode 100644
index 000000000..ce799721d
--- /dev/null
+++ b/definitions/grib2/tables/32/4.6.table
@@ -0,0 +1,9 @@
+# Code table 4.6 - Type of ensemble forecast
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.7.table b/definitions/grib2/tables/32/4.7.table
new file mode 100644
index 000000000..69b2b4d77
--- /dev/null
+++ b/definitions/grib2/tables/32/4.7.table
@@ -0,0 +1,14 @@
+# Code table 4.7 - Derived forecast
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.8.table b/definitions/grib2/tables/32/4.8.table
new file mode 100644
index 000000000..78467454a
--- /dev/null
+++ b/definitions/grib2/tables/32/4.8.table
@@ -0,0 +1,6 @@
+# Code table 4.8 - Clustering method
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.9.table b/definitions/grib2/tables/32/4.9.table
new file mode 100644
index 000000000..fa078f275
--- /dev/null
+++ b/definitions/grib2/tables/32/4.9.table
@@ -0,0 +1,13 @@
+# Code table 4.9 - Probability type
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+5 5 Probability of event equal to lower limit
+6 6 Probability of event in above normal category
+7 7 Probability of event in near normal category
+8 8 Probability of event in below normal category
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/4.91.table b/definitions/grib2/tables/32/4.91.table
new file mode 100644
index 000000000..ae31ed61c
--- /dev/null
+++ b/definitions/grib2/tables/32/4.91.table
@@ -0,0 +1,16 @@
+# Code table 4.91 - Type of Interval
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/32/5.0.table b/definitions/grib2/tables/32/5.0.table
new file mode 100644
index 000000000..5e00004b0
--- /dev/null
+++ b/definitions/grib2/tables/32/5.0.table
@@ -0,0 +1,22 @@
+# Code table 5.0 - Data representation template number
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+# 5-39 Reserved
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+42 42 Grid point data - CCSDS recommended lossless compression
+# 43-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52 Reserved
+53 53 Spectral data for limited area models - complex packing
+# 54-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/32/5.1.table b/definitions/grib2/tables/32/5.1.table
new file mode 100644
index 000000000..1189b5e46
--- /dev/null
+++ b/definitions/grib2/tables/32/5.1.table
@@ -0,0 +1,6 @@
+# Code table 5.1 - Type of original field values
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.2.table b/definitions/grib2/tables/32/5.2.table
new file mode 100644
index 000000000..60d557a0d
--- /dev/null
+++ b/definitions/grib2/tables/32/5.2.table
@@ -0,0 +1,8 @@
+# Code table 5.2 - Matrix coordinate value function definition
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.25.table b/definitions/grib2/tables/32/5.25.table
new file mode 100644
index 000000000..79e9fd69a
--- /dev/null
+++ b/definitions/grib2/tables/32/5.25.table
@@ -0,0 +1,9 @@
+# Code table 5.25 - type of bi-Fourier subtruncation
+# 0-76 Reserved
+77 77 Rectangular
+# 78-87 Reserved
+88 88 Elliptic
+# 89-98 Reserved
+99 99 Diamond
+# 100-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.26.table b/definitions/grib2/tables/32/5.26.table
new file mode 100644
index 000000000..298f3fcd0
--- /dev/null
+++ b/definitions/grib2/tables/32/5.26.table
@@ -0,0 +1,5 @@
+# Code table 5.26 - packing mode for axes
+0 0 Spectral coefficients for axes are packed
+1 1 Spectral coefficients for axes included in the unpacked subset
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.3.table b/definitions/grib2/tables/32/5.3.table
new file mode 100644
index 000000000..481331791
--- /dev/null
+++ b/definitions/grib2/tables/32/5.3.table
@@ -0,0 +1,7 @@
+# Code table 5.3 - Matrix coordinate parameter
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.4.table b/definitions/grib2/tables/32/5.4.table
new file mode 100644
index 000000000..e84ab1901
--- /dev/null
+++ b/definitions/grib2/tables/32/5.4.table
@@ -0,0 +1,6 @@
+# Code table 5.4 - Group splitting method
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.40.table b/definitions/grib2/tables/32/5.40.table
new file mode 100644
index 000000000..97e8880ab
--- /dev/null
+++ b/definitions/grib2/tables/32/5.40.table
@@ -0,0 +1,5 @@
+# Code table 5.40 - Type of compression
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.5.table b/definitions/grib2/tables/32/5.5.table
new file mode 100644
index 000000000..f2316975a
--- /dev/null
+++ b/definitions/grib2/tables/32/5.5.table
@@ -0,0 +1,7 @@
+# Code table 5.5 - Missing value management for complex packing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.6.table b/definitions/grib2/tables/32/5.6.table
new file mode 100644
index 000000000..db68ead9c
--- /dev/null
+++ b/definitions/grib2/tables/32/5.6.table
@@ -0,0 +1,7 @@
+# Code table 5.6 - Order of spatial differencing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/32/5.7.table b/definitions/grib2/tables/32/5.7.table
new file mode 100644
index 000000000..e54862c19
--- /dev/null
+++ b/definitions/grib2/tables/32/5.7.table
@@ -0,0 +1,7 @@
+# Code table 5.7 - Precision of floating-point numbers
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/32/6.0.table b/definitions/grib2/tables/32/6.0.table
new file mode 100644
index 000000000..a8f30f5a4
--- /dev/null
+++ b/definitions/grib2/tables/32/6.0.table
@@ -0,0 +1,6 @@
+# Code table 6.0 - Bit map indicator
+0 0 A bit map applies to this product and is specified in this Section
+1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/33/0.0.table b/definitions/grib2/tables/33/0.0.table
new file mode 100644
index 000000000..a8542e94f
--- /dev/null
+++ b/definitions/grib2/tables/33/0.0.table
@@ -0,0 +1,13 @@
+# Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Satellite remote sensing products (formerly Space products)
+4 4 Space weather products
+# 5-9 Reserved
+10 10 Oceanographic products
+# 11-19 Reserved
+20 20 Health and socioeconomic impacts
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/1.0.table b/definitions/grib2/tables/33/1.0.table
new file mode 100644
index 000000000..841af8c85
--- /dev/null
+++ b/definitions/grib2/tables/33/1.0.table
@@ -0,0 +1,38 @@
+# Code table 1.0 - GRIB master tables version number
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Version implemented on 2 May 2012
+10 10 Version implemented on 7 November 2012
+11 11 Version implemented on 8 May 2013
+12 12 Version implemented on 14 November 2013
+13 13 Version implemented on 7 May 2014
+14 14 Version implemented on 5 November 2014
+15 15 Version implemented on 6 May 2015
+16 16 Version implemented on 11 November 2015
+17 17 Version implemented on 4 May 2016
+18 18 Version implemented on 2 November 2016
+19 19 Version implemented on 3 May 2017
+20 20 Version implemented on 8 November 2017
+21 21 Version implemented on 2 May 2018
+22 22 Version implemented on 7 November 2018
+23 23 Version implemented on 15 May 2019
+24 24 Version implemented on 6 November 2019
+25 25 Version implemented on 6 May 2020
+26 26 Version implemented on 16 November 2020
+27 27 Version implemented on 15 June 2021
+28 28 Version implemented on 15 November 2021
+29 29 Version implemented on 15 May 2022
+30 30 Version implemented on 15 November 2022
+31 31 Version implemented on 15 May 2023
+32 32 Version implemented on 30 November 2023
+33 33 Version implemented on 15 May 2024
+34 34 Pre-operational to be implemented by next amendment
+# 35-254 Future versions
+255 255 Missing
diff --git a/definitions/grib2/tables/33/1.1.table b/definitions/grib2/tables/33/1.1.table
new file mode 100644
index 000000000..f6d332005
--- /dev/null
+++ b/definitions/grib2/tables/33/1.1.table
@@ -0,0 +1,4 @@
+# Code table 1.1 - GRIB local tables version number
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/33/1.2.table b/definitions/grib2/tables/33/1.2.table
new file mode 100644
index 000000000..05ec48c5d
--- /dev/null
+++ b/definitions/grib2/tables/33/1.2.table
@@ -0,0 +1,10 @@
+# Code table 1.2 - Significance of reference time
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+4 4 Local time
+5 5 Simulation start
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/1.3.table b/definitions/grib2/tables/33/1.3.table
new file mode 100644
index 000000000..88c033e42
--- /dev/null
+++ b/definitions/grib2/tables/33/1.3.table
@@ -0,0 +1,18 @@
+# Code table 1.3 - Production status of data
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE)
+6 6 S2S operational products
+7 7 S2S test products
+8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA)
+9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA)
+10 10 Copernicus regional reanalysis (CARRA/CERRA)
+11 11 Copernicus regional reanalysis test (CARRA/CERRA)
+12 12 Destination Earth
+13 13 Destination Earth test
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/1.4.table b/definitions/grib2/tables/33/1.4.table
new file mode 100644
index 000000000..877288c0e
--- /dev/null
+++ b/definitions/grib2/tables/33/1.4.table
@@ -0,0 +1,13 @@
+# Code table 1.4 - Type of data
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/33/1.5.table b/definitions/grib2/tables/33/1.5.table
new file mode 100644
index 000000000..533111959
--- /dev/null
+++ b/definitions/grib2/tables/33/1.5.table
@@ -0,0 +1,7 @@
+# Code table 1.5 - Identification template number
+0 0 Calendar definition
+1 1 Paleontological offset
+2 2 Calendar definition and paleontological offset
+# 3-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/1.6.table b/definitions/grib2/tables/33/1.6.table
new file mode 100644
index 000000000..bd46899a7
--- /dev/null
+++ b/definitions/grib2/tables/33/1.6.table
@@ -0,0 +1,8 @@
+# Code table 1.6 - Type of calendar
+0 0 Gregorian
+1 1 360-day
+2 2 365-day
+3 3 Proleptic Gregorian
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.0.table b/definitions/grib2/tables/33/3.0.table
new file mode 100644
index 000000000..a442a06a0
--- /dev/null
+++ b/definitions/grib2/tables/33/3.0.table
@@ -0,0 +1,6 @@
+# Code table 3.0 - Source of grid definition
+0 0 Specified in Code table 3.1
+1 1 Predetermined grid definition (Defined by originating centre)
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/33/3.1.table b/definitions/grib2/tables/33/3.1.table
new file mode 100644
index 000000000..26dc8da3f
--- /dev/null
+++ b/definitions/grib2/tables/33/3.1.table
@@ -0,0 +1,57 @@
+# Code table 3.1 - Grid definition template number
+0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree)
+1 1 Rotated latitude/longitude
+2 2 Stretched latitude/longitude
+3 3 Stretched and rotated latitude/longitude
+4 4 Variable resolution latitude/longitude
+5 5 Variable resolution rotated latitude/longitude
+# 6-9 Reserved
+10 10 Mercator
+# 11 Reserved
+12 12 Transverse Mercator
+13 13 Mercator with modelling subdomains definition
+# 14-19 Reserved
+20 20 Polar stereographic projection (Can be south or north)
+# 21-22 Reserved
+23 23 Polar stereographic with modelling subdomains definition
+# 24-29 Reserved
+30 30 Lambert conformal (Can be secant or tangent, conical or bipolar)
+31 31 Albers equal area
+# 32 Reserved
+33 33 Lambert conformal with modelling subdomains definition
+# 34-39 Reserved
+40 40 Gaussian latitude/longitude
+41 41 Rotated Gaussian latitude/longitude
+42 42 Stretched Gaussian latitude/longitude
+43 43 Stretched and rotated Gaussian latitude/longitude
+# 44-49 Reserved
+50 50 Spherical harmonic coefficients
+51 51 Rotated spherical harmonic coefficients
+52 52 Stretched spherical harmonic coefficients
+53 53 Stretched and rotated spherical harmonic coefficients
+# 54-60 Reserved
+61 61 Spectral Mercator with modelling subdomains definition
+62 62 Spectral polar stereographic with modelling subdomains definition
+63 63 Spectral Lambert conformal with modelling subdomains definition
+# 64-89 Reserved
+90 90 Space view perspective or orthographic
+# 91-99 Reserved
+100 100 Triangular grid based on an icosahedron
+101 101 General unstructured grid
+# 102-109 Reserved
+110 110 Equatorial azimuthal equidistant projection
+# 111-119 Reserved
+120 120 Azimuth-range projection
+# 121-139 Reserved
+140 140 Lambert azimuthal equal area projection
+# 141-149 Reserved
+150 150 Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)
+# 151-999 Reserved
+1000 1000 Cross-section grid with points equally spaced on the horizontal
+# 1001-1099 Reserved
+1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal
+# 1101-1199 Reserved
+1200 1200 Time section grid
+# 1201-32767 Reserved
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/3.10.table b/definitions/grib2/tables/33/3.10.table
new file mode 100644
index 000000000..1612d05e3
--- /dev/null
+++ b/definitions/grib2/tables/33/3.10.table
@@ -0,0 +1,8 @@
+# Flag table 3.10 - Scanning mode for one diamond
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/33/3.11.table b/definitions/grib2/tables/33/3.11.table
new file mode 100644
index 000000000..06ae10810
--- /dev/null
+++ b/definitions/grib2/tables/33/3.11.table
@@ -0,0 +1,7 @@
+# Code table 3.11 - Interpretation of list of numbers at end of section 3
+0 0 There is no appended list
+1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
+2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
+3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.12.table b/definitions/grib2/tables/33/3.12.table
new file mode 100644
index 000000000..7d4757100
--- /dev/null
+++ b/definitions/grib2/tables/33/3.12.table
@@ -0,0 +1,6 @@
+# Code table 3.12 - HEALPix rhomboids or points ordering
+0 0 Ring ordering
+1 1 Nested ordering
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.13.table b/definitions/grib2/tables/33/3.13.table
new file mode 100644
index 000000000..aabe4fc03
--- /dev/null
+++ b/definitions/grib2/tables/33/3.13.table
@@ -0,0 +1,8 @@
+# Flag table 3.13 - HEALPix scanning mode
+1 0 Points scan in +i (+x) direction
+1 1 Points scan in -i (-x) direction
+2 0 Points scan in -j (-y) direction
+2 1 Points scan in +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/33/3.15.table b/definitions/grib2/tables/33/3.15.table
new file mode 100644
index 000000000..43539dbfc
--- /dev/null
+++ b/definitions/grib2/tables/33/3.15.table
@@ -0,0 +1,23 @@
+# Code table 3.15 - Physical meaning of vertical coordinate
+# 0-19 Reserved
+20 20 Temperature (K)
+# 21-99 Reserved
+100 100 Pressure (Pa)
+101 101 Pressure deviation from mean sea level (Pa)
+102 102 Altitude above mean sea level (m)
+103 103 Height above ground (m)
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
+106 106 Depth below land surface (m)
+107 pt Potential temperature (theta) (K)
+108 108 Pressure deviation from ground to level (Pa)
+109 pv Potential vorticity (K m2 kg-1 s-1)
+110 110 Geometrical height (m)
+111 111 Eta coordinate
+112 112 Geopotential height (gpm)
+113 113 Logarithmic hybrid coordinate
+# 114-159 Reserved
+160 160 Depth below sea level (m)
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.2.table b/definitions/grib2/tables/33/3.2.table
new file mode 100644
index 000000000..13b9bf469
--- /dev/null
+++ b/definitions/grib2/tables/33/3.2.table
@@ -0,0 +1,16 @@
+# Code table 3.2 - Shape of the reference system
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame
+9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height
+10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992
+11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.20.table b/definitions/grib2/tables/33/3.20.table
new file mode 100644
index 000000000..e2bb156ee
--- /dev/null
+++ b/definitions/grib2/tables/33/3.20.table
@@ -0,0 +1,6 @@
+# Code table 3.20 - Type of horizontal line
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.21.table b/definitions/grib2/tables/33/3.21.table
new file mode 100644
index 000000000..e001e1c8f
--- /dev/null
+++ b/definitions/grib2/tables/33/3.21.table
@@ -0,0 +1,8 @@
+# Code table 3.21 - Vertical dimension coordinate values definition
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.25.table b/definitions/grib2/tables/33/3.25.table
new file mode 100644
index 000000000..e5a754994
--- /dev/null
+++ b/definitions/grib2/tables/33/3.25.table
@@ -0,0 +1,10 @@
+# Code table 3.25 - Type of bi-Fourier truncation
+# 0-76 Reserved
+77 77 Rectangular
+# 78-87 Reserved
+88 88 Elliptic
+# 89-98 Reserved
+99 99 Diamond
+# 100-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.3.table b/definitions/grib2/tables/33/3.3.table
new file mode 100644
index 000000000..25cb46a1d
--- /dev/null
+++ b/definitions/grib2/tables/33/3.3.table
@@ -0,0 +1,9 @@
+# Flag table 3.3 - Resolution and component flags
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/33/3.4.table b/definitions/grib2/tables/33/3.4.table
new file mode 100644
index 000000000..0f9d84464
--- /dev/null
+++ b/definitions/grib2/tables/33/3.4.table
@@ -0,0 +1,17 @@
+# Flag table 3.4 - Scanning mode
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction are consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scan in the opposite direction
+5 0 Points within odd rows are not offset in i (x) direction
+5 1 Points within odd rows are offset by Di/2 in i (x) direction
+6 0 Points within even rows are not offset in i (x) direction
+6 1 Points within even rows are offset by Di/2 in i (x) direction
+7 0 Points are not offset in j (y) direction
+7 1 Points are offset by Dj/2 in j (y) direction
+8 0 Rows have Ni grid points and columns have Nj grid points
+8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction
diff --git a/definitions/grib2/tables/33/3.5.table b/definitions/grib2/tables/33/3.5.table
new file mode 100644
index 000000000..2f8ec82e3
--- /dev/null
+++ b/definitions/grib2/tables/33/3.5.table
@@ -0,0 +1,5 @@
+# Flag table 3.5 - Projection centre
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/33/3.6.table b/definitions/grib2/tables/33/3.6.table
new file mode 100644
index 000000000..5ab13aaa5
--- /dev/null
+++ b/definitions/grib2/tables/33/3.6.table
@@ -0,0 +1,3 @@
+# Code table 3.6 - Spectral data representation type
+1 1 see separate doc or pdf file
+2 2 Bi-Fourier representation
diff --git a/definitions/grib2/tables/33/3.7.table b/definitions/grib2/tables/33/3.7.table
new file mode 100644
index 000000000..34c0de085
--- /dev/null
+++ b/definitions/grib2/tables/33/3.7.table
@@ -0,0 +1,5 @@
+# Code table 3.7 - Spectral data representation mode
+0 0 Reserved
+1 1 see separate doc or pdf file
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.8.table b/definitions/grib2/tables/33/3.8.table
new file mode 100644
index 000000000..fcd17dca8
--- /dev/null
+++ b/definitions/grib2/tables/33/3.8.table
@@ -0,0 +1,10 @@
+# Code table 3.8 - Grid point position
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+3 3 Grid points at shape vertices
+4 4 Grid points at centre of shapes
+5 5 Grid points at midpoints of shape sides
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/3.9.table b/definitions/grib2/tables/33/3.9.table
new file mode 100644
index 000000000..ecd65514a
--- /dev/null
+++ b/definitions/grib2/tables/33/3.9.table
@@ -0,0 +1,4 @@
+# Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/33/4.0.table b/definitions/grib2/tables/33/4.0.table
index 4a079ddc0..86399bd79 100644
--- a/definitions/grib2/tables/33/4.0.table
+++ b/definitions/grib2/tables/33/4.0.table
@@ -71,12 +71,13 @@
86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time
87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
-# 89-90 Reserved
+89 89 Post-processed quantile forecasts at a horizontal level or in a horizontal layer at a point in time
+90 90 Post-processed quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
-95 95 Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time
+95 95 Average, accumulation, extreme values or other statistically processed value at a horizontal level or in a horizontal layer at a specified local time
96 96 Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time
98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time
@@ -94,13 +95,22 @@
110 110 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products
111 111 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products
112 112 Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 113-118 Reserved
+113 113 Generalised tiles at a horizontal level or horizontal layer at a point in time
+114 114 Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+115 115 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time
+116 116 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+117 117 Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+118 118 Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
119 119 Probability forecasts from large ensembles at a horizontal level or in a horizontal layer at a point in time
120 120 Probability forecasts from large ensembles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
121 121 Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer at a point in time
122 122 Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
123 123 Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 124-253 Reserved
+124 124 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for radionuclides
+125 125 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for radionuclides
+126 126 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides
+127 127 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides
+# 128-253 Reserved
254 254 CCITT IA5 character string
# 255-999 Reserved
1000 1000 Cross-section of analysis and forecast at a point in time
diff --git a/definitions/grib2/tables/33/4.1.0.table b/definitions/grib2/tables/33/4.1.0.table
new file mode 100644
index 000000000..deb34a4e3
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.0.table
@@ -0,0 +1,29 @@
+# Product discipline 0 - Meteorological products
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+21 21 Thermodynamic properties
+22 22 Drought indices
+# 23-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.1.table b/definitions/grib2/tables/33/4.1.1.table
new file mode 100644
index 000000000..df2c13fa8
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.1.table
@@ -0,0 +1,7 @@
+# Product discipline 1 - Hydrological products
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.10.table b/definitions/grib2/tables/33/4.1.10.table
new file mode 100644
index 000000000..5a64f9652
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.10.table
@@ -0,0 +1,10 @@
+# Product discipline 10 - Oceanographic products
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Subsurface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.2.table b/definitions/grib2/tables/33/4.1.2.table
new file mode 100644
index 000000000..9d6f690ac
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.2.table
@@ -0,0 +1,11 @@
+# Product discipline 2 - Land surface products
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+5 5 Glaciers and inland ice
+6 6 Urban areas
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.20.table b/definitions/grib2/tables/33/4.1.20.table
new file mode 100644
index 000000000..e651e326f
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.20.table
@@ -0,0 +1,8 @@
+# Product discipline 20 - Health and socioeconomic impacts
+0 0 Health indicators
+1 1 Epidemiology
+2 2 Socioeconomic indicators
+3 3 Renewable energy sector
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.3.table b/definitions/grib2/tables/33/4.1.3.table
new file mode 100644
index 000000000..35d82f440
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.3.table
@@ -0,0 +1,11 @@
+# Product discipline 3 - Satellite remote sensing products (formerly Space products)
+0 0 Image format products
+1 1 Quantitative products
+2 2 Cloud properties
+3 3 Flight rule conditions
+4 4 Volcanic ash
+5 5 Sea-surface temperature
+6 6 Solar radiation
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.1.4.table b/definitions/grib2/tables/33/4.1.4.table
new file mode 100644
index 000000000..7d1378729
--- /dev/null
+++ b/definitions/grib2/tables/33/4.1.4.table
@@ -0,0 +1,15 @@
+# Product discipline 4 - Space weather products
+0 0 Temperature
+1 1 Momentum
+2 2 Charged particle mass and number
+3 3 Electric and magnetic fields
+4 4 Energetic particles
+5 5 Waves
+6 6 Solar electromagnetic emissions
+7 7 Terrestrial electromagnetic emissions
+8 8 Imagery
+9 9 Ion-neutral coupling
+10 10 Space weather indices
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.10.table b/definitions/grib2/tables/33/4.10.table
new file mode 100644
index 000000000..0acd9127c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.10.table
@@ -0,0 +1,22 @@
+# Code table 4.10 - Type of statistical processing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+11 11 Summation
+12 12 Return period
+13 13 Median
+# 14-99 Reserved
+100 100 Severity
+101 101 Mode
+102 102 Index processing
+# 103-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/33/4.100.table b/definitions/grib2/tables/33/4.100.table
new file mode 100644
index 000000000..a24770d68
--- /dev/null
+++ b/definitions/grib2/tables/33/4.100.table
@@ -0,0 +1,10 @@
+# Code table 4.100 - Type of reference dataset
+0 0 Analysis
+1 1 Forecast
+2 2 Reforecast (Hindcast)
+3 3 Reanalysis
+4 4 Climate projection
+5 5 Gridded observations
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.101.table b/definitions/grib2/tables/33/4.101.table
index 001c77d32..0fcdb13d9 100644
--- a/definitions/grib2/tables/33/4.101.table
+++ b/definitions/grib2/tables/33/4.101.table
@@ -7,6 +7,7 @@
20 20 Extreme Forecast Index (EFI)
21 21 Shift of Tails (SOT)
22 22 Anomaly of probabilities
-# 23-191 Reserved
+23 23 Standardized Drought Index
+# 24-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.102.table b/definitions/grib2/tables/33/4.102.table
new file mode 100644
index 000000000..214844fb3
--- /dev/null
+++ b/definitions/grib2/tables/33/4.102.table
@@ -0,0 +1,22 @@
+# Code table 4.102 - Statistical processing of reference period
+0 0 Average
+1 1 Accumulation
+2 2 Maximum
+3 3 Minimum
+4 4 Median
+# 5-19 Reserved
+20 20 Model Climate
+21 21 Index based on normal distribution
+22 22 Index based on log-normal distribution
+23 23 Index based on generalised log-normal distribution
+24 24 Index based on gamma distribution
+25 25 Index based on logistic distribution
+26 26 Index based on log-logistic distribution
+27 27 Index based on generalised logistic distribution
+28 28 Index based on Weibull distribution
+29 29 Index based on generalised extreme value distribution
+30 30 Index based on Pearson III distribution
+31 31 Index based on empirical distribution
+# 32-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.103.table b/definitions/grib2/tables/33/4.103.table
index b6c108e63..5d70488ca 100644
--- a/definitions/grib2/tables/33/4.103.table
+++ b/definitions/grib2/tables/33/4.103.table
@@ -1,9 +1,9 @@
# Code table 4.103 - Spatial vicinity type
-0 0 Circle [m]
+0 0 Circle [m]
1 1 Rectangle [m,m]
2 2 Square [m]
-3 3 Wedge [m,degree,degree]
-4 4 Number of grid cells [-,-]
+3 3 Wedge [m, degree, degree]
+4 4 Span of grid boxes centered around grid box i,j [x,y]
# 5-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.104.table b/definitions/grib2/tables/33/4.104.table
index 3192e59bf..d1e417780 100644
--- a/definitions/grib2/tables/33/4.104.table
+++ b/definitions/grib2/tables/33/4.104.table
@@ -1,15 +1,15 @@
# Code table 4.104 - Spatial and temporal vicinity processing
0 0 Average
-#1 1 Reserved
+1 1 Reserved
2 2 Maximum
3 3 Minimum
4 4 Range
-#5 5 Reserved
+5 5 Reserved
6 6 Standard deviation
-#7-10 Reserved
+# 7-10 Reserved
11 11 Sum
-#12-189 Reserved
+# 12-189 Reserved
190 190 Quantile
-191 191 Categorical (yes, no)
+191 191 Categorical (boolean)
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.105.table b/definitions/grib2/tables/33/4.105.table
index ec5467e99..f3be24ecb 100644
--- a/definitions/grib2/tables/33/4.105.table
+++ b/definitions/grib2/tables/33/4.105.table
@@ -1,6 +1,6 @@
# Code table 4.105 - Spatial and temporal vicinity missing data
0 0 Ignore missing data
1 1 No data
-# 2-191 Reserved
+# 2-189 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.11.table b/definitions/grib2/tables/33/4.11.table
new file mode 100644
index 000000000..01cc81303
--- /dev/null
+++ b/definitions/grib2/tables/33/4.11.table
@@ -0,0 +1,10 @@
+# Code table 4.11 - Type of time intervals
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.12.table b/definitions/grib2/tables/33/4.12.table
new file mode 100644
index 000000000..d42b47e96
--- /dev/null
+++ b/definitions/grib2/tables/33/4.12.table
@@ -0,0 +1,7 @@
+# Code table 4.12 - Operating mode
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.13.table b/definitions/grib2/tables/33/4.13.table
new file mode 100644
index 000000000..a0e28eac8
--- /dev/null
+++ b/definitions/grib2/tables/33/4.13.table
@@ -0,0 +1,6 @@
+# Code table 4.13 - Quality control indicator
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.14.table b/definitions/grib2/tables/33/4.14.table
new file mode 100644
index 000000000..d525b23b3
--- /dev/null
+++ b/definitions/grib2/tables/33/4.14.table
@@ -0,0 +1,6 @@
+# Code table 4.14 - Clutter filter indicator
+0 0 No clutter filter used
+1 1 Clutter filter used
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.15.table b/definitions/grib2/tables/33/4.15.table
new file mode 100644
index 000000000..7adddedb6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.15.table
@@ -0,0 +1,11 @@
+# Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.16.table b/definitions/grib2/tables/33/4.16.table
new file mode 100644
index 000000000..5b9f6fd73
--- /dev/null
+++ b/definitions/grib2/tables/33/4.16.table
@@ -0,0 +1,10 @@
+# Code table 4.16 - Quality value associated with parameter
+0 0 Confidence index
+1 1 Quality indicator
+2 2 Correlation of product with used calibration product
+3 3 Standard deviation
+4 4 Random error
+5 5 Probability
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.192.table b/definitions/grib2/tables/33/4.192.table
new file mode 100644
index 000000000..e1fd91594
--- /dev/null
+++ b/definitions/grib2/tables/33/4.192.table
@@ -0,0 +1,4 @@
+1 1 first
+2 2 second
+3 3 third
+4 4 fourth
diff --git a/definitions/grib2/tables/33/4.2.0.0.table b/definitions/grib2/tables/33/4.2.0.0.table
new file mode 100644
index 000000000..e4912c9d6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.0.table
@@ -0,0 +1,37 @@
+# Product discipline 0 - Meteorological products, parameter category 0: temperature
+0 0 Temperature (K)
+1 1 Virtual temperature (K)
+2 2 Potential temperature (K)
+3 3 Pseudo-adiabatic potential temperature or equivalent potential temperature (K)
+4 4 Maximum temperature (K)
+5 5 Minimum temperature (K)
+6 6 Dewpoint temperature (K)
+7 7 Dewpoint depression (or deficit) (K)
+8 8 Lapse rate (K/m)
+9 9 Temperature anomaly (K)
+10 10 Latent heat net flux (W m-2)
+11 11 Sensible heat net flux (W m-2)
+12 12 Heat index (K)
+13 13 Wind chill factor (K)
+14 14 Minimum dewpoint depression (K)
+15 15 Virtual potential temperature (K)
+16 16 Snow phase change heat flux (W m-2)
+17 17 Skin temperature (K)
+18 18 Snow temperature (top of snow) (K)
+19 19 Turbulent transfer coefficient for heat (Numeric)
+20 20 Turbulent diffusion coefficient for heat (m2/s)
+21 21 Apparent temperature (K)
+22 22 Temperature tendency due to short-wave radiation (K s-1)
+23 23 Temperature tendency due to long-wave radiation (K s-1)
+24 24 Temperature tendency due to short-wave radiation, clear sky (K s-1)
+25 25 Temperature tendency due to long-wave radiation, clear sky (K s-1)
+26 26 Temperature tendency due to parameterization (K s-1)
+27 27 Wet-bulb temperature (K)
+28 28 Unbalanced component of temperature (K)
+29 29 Temperature advection (K s-1)
+30 30 Latent heat net flux due to evaporation (W m-2)
+31 31 Latent heat net flux due to sublimation (W m-2)
+32 32 Wet-bulb potential temperature (K)
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.1.table b/definitions/grib2/tables/33/4.2.0.1.table
new file mode 100644
index 000000000..2405606cb
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.1.table
@@ -0,0 +1,174 @@
+# Product discipline 0 - Meteorological products, parameter category 1: moisture
+0 0 Specific humidity (kg/kg)
+1 1 Relative humidity (%)
+2 2 Humidity mixing ratio (kg/kg)
+3 3 Precipitable water (kg m-2)
+4 4 Vapour pressure (Pa)
+5 5 Saturation deficit (Pa)
+6 6 Evaporation (kg m-2)
+7 7 Precipitation rate (kg m-2 s-1)
+8 8 Total precipitation (kg m-2)
+9 9 Large-scale precipitation (non-convective) (kg m-2)
+10 10 Convective precipitation (kg m-2)
+11 11 Snow depth (m)
+12 12 Snowfall rate water equivalent (kg m-2 s-1)
+13 13 Water equivalent of accumulated snow depth (kg m-2)
+14 14 Convective snow (kg m-2)
+15 15 Large-scale snow (kg m-2)
+16 16 Snow melt (kg m-2)
+17 17 Snow age (d)
+18 18 Absolute humidity (kg m-3)
+19 19 Precipitation type (Code table 4.201)
+20 20 Integrated liquid water (kg m-2)
+21 21 Condensate (kg/kg)
+22 22 Cloud mixing ratio (kg/kg)
+23 23 Ice water mixing ratio (kg/kg)
+24 24 Rain mixing ratio (kg/kg)
+25 25 Snow mixing ratio (kg/kg)
+26 26 Horizontal moisture convergence (kg kg-1 s-1)
+27 27 Maximum relative humidity (%)
+28 28 Maximum absolute humidity (kg m-3)
+29 29 Total snowfall (m)
+30 30 Precipitable water category (Code table 4.202)
+31 31 Hail (m)
+32 32 Graupel (snow pellets) (kg/kg)
+33 33 Categorical rain (Code table 4.222)
+34 34 Categorical freezing rain (Code table 4.222)
+35 35 Categorical ice pellets (Code table 4.222)
+36 36 Categorical snow (Code table 4.222)
+37 37 Convective precipitation rate (kg m-2 s-1)
+38 38 Horizontal moisture divergence (kg kg-1 s-1)
+39 39 Per cent frozen precipitation (%)
+40 40 Potential evaporation (kg m-2)
+41 41 Potential evaporation rate (W m-2)
+42 42 Snow cover (%)
+43 43 Rain fraction of total cloud water (Proportion)
+44 44 Rime factor (Numeric)
+45 45 Total column integrated rain (kg m-2)
+46 46 Total column integrated snow (kg m-2)
+47 47 Large scale water precipitation (non-convective) (kg m-2)
+48 48 Convective water precipitation (kg m-2)
+49 49 Total water precipitation (kg m-2)
+50 50 Total snow precipitation (kg m-2)
+51 51 Total column water [Vertically integrated total water=vapour + cloud water/ice] (kg m-2)
+52 52 Total precipitation rate (kg m-2 s-1)
+53 53 Total snowfall rate water equivalent (kg m-2 s-1)
+54 54 Large scale precipitation rate (kg m-2 s-1)
+55 55 Convective snowfall rate water equivalent (kg m-2 s-1)
+56 56 Large scale snowfall rate water equivalent (kg m-2 s-1)
+57 57 Total snowfall rate (m/s)
+58 58 Convective snowfall rate (m/s)
+59 59 Large scale snowfall rate (m/s)
+60 60 Snow depth water equivalent (kg m-2)
+61 61 Snow density (kg m-3)
+62 62 Snow evaporation (kg m-2)
+63 63 Reserved
+64 64 Total column integrated water vapour (kg m-2)
+65 65 Rain precipitation rate (kg m-2 s-1)
+66 66 Snow precipitation rate (kg m-2 s-1)
+67 67 Freezing rain precipitation rate (kg m-2 s-1)
+68 68 Ice pellets precipitation rate (kg m-2 s-1)
+69 69 Total column integrated cloud water (kg m-2)
+70 70 Total column integrated cloud ice (kg m-2)
+71 71 Hail mixing ratio (kg/kg)
+72 72 Total column integrated hail (kg m-2)
+73 73 Hail precipitation rate (kg m-2 s-1)
+74 74 Total column integrated graupel (kg m-2)
+75 75 Graupel (snow pellets) precipitation rate (kg m-2 s-1)
+76 76 Convective rain rate (kg m-2 s-1)
+77 77 Large scale rain rate (kg m-2 s-1)
+78 78 Total column integrated water (all components including precipitation) (kg m-2)
+79 79 Evaporation rate (kg m-2 s-1)
+80 80 Total condensate (kg/kg)
+81 81 Total column-integrated condensate (kg m-2)
+82 82 Cloud ice mixing-ratio (kg/kg)
+83 83 Specific cloud liquid water content (kg/kg)
+84 84 Specific cloud ice water content (kg/kg)
+85 85 Specific rainwater content (kg/kg)
+86 86 Specific snow water content (kg/kg)
+87 87 Stratiform precipitation rate (kg m-2 s-1)
+88 88 Categorical convective precipitation (Code table 4.222)
+# 89 Reserved
+90 90 Total kinematic moisture flux (kg kg-1 m s-1)
+91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
+92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
+93 93 Relative humidity with respect to water (%)
+94 94 Relative humidity with respect to ice (%)
+95 95 Freezing or frozen precipitation rate (kg m-2 s-1)
+96 96 Mass density of rain (kg m-3)
+97 97 Mass density of snow (kg m-3)
+98 98 Mass density of graupel (kg m-3)
+99 99 Mass density of hail (kg m-3)
+100 100 Specific number concentration of rain (kg-1)
+101 101 Specific number concentration of snow (kg-1)
+102 102 Specific number concentration of graupel (kg-1)
+103 103 Specific number concentration of hail (kg-1)
+104 104 Number density of rain (m-3)
+105 105 Number density of snow (m-3)
+106 106 Number density of graupel (m-3)
+107 107 Number density of hail (m-3)
+108 108 Specific humidity tendency due to parameterization (kg kg-1 s-1)
+109 109 Mass density of liquid water coating on hail expressed as mass of liquid water per unit volume of air (kg m-3)
+110 110 Specific mass of liquid water coating on hail expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+111 111 Mass mixing ratio of liquid water coating on hail expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+112 112 Mass density of liquid water coating on graupel expressed as mass of liquid water per unit volume of air (kg m-3)
+113 113 Specific mass of liquid water coating on graupel expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+114 114 Mass mixing ratio of liquid water coating on graupel expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+115 115 Mass density of liquid water coating on snow expressed as mass of liquid water per unit volume of air (kg m-3)
+116 116 Specific mass of liquid water coating on snow expressed as mass of liquid water per unit mass of moist air (kg kg-1)
+117 117 Mass mixing ratio of liquid water coating on snow expressed as mass of liquid water per unit mass of dry air (kg kg-1)
+118 118 Unbalanced component of specific humidity (kg kg-1)
+119 119 Unbalanced component of specific cloud liquid water content (kg kg-1)
+120 120 Unbalanced component of specific cloud ice water content (kg kg-1)
+121 121 Fraction of snow cover (Proportion)
+122 122 Precipitation intensity index (Code table 4.247)
+123 123 Dominant precipitation type (Code table 4.201)
+124 124 Presence of showers (Code table 4.222)
+125 125 Presence of blowing snow (Code table 4.222)
+126 126 Presence of blizzard (Code table 4.222)
+127 127 Ice pellets (non-water equivalent) precipitation rate (m/s)
+128 128 Total solid precipitation rate (kg m-2 s-1)
+129 129 Effective radius of cloud water (m)
+130 130 Effective radius of rain (m)
+131 131 Effective radius of cloud ice (m)
+132 132 Effective radius of snow (m)
+133 133 Effective radius of graupel (m)
+134 134 Effective radius of hail (m)
+135 135 Effective radius of subgrid liquid clouds (m)
+136 136 Effective radius of subgrid ice clouds (m)
+137 137 Effective aspect ratio of rain (-)
+138 138 Effective aspect ratio of cloud ice (-)
+139 139 Effective aspect ratio of snow (-)
+140 140 Effective aspect ratio of graupel (-)
+141 141 Effective aspect ratio of hail (-)
+142 142 Effective aspect ratio of subgrid ice clouds (-)
+143 143 Potential evaporation rate (kg m-2 s-1)
+144 144 Specific rain water content (convective) (kg kg-1)
+145 145 Specific snow water content (convective) (kg kg-1)
+146 146 Cloud ice precipitation rate (kg m-2 s-1)
+147 147 Character of precipitation (Code table 4.249)
+148 148 Snow evaporation rate (kg m-2 s-1)
+149 149 Cloud water mixing ratio (kg kg-1)
+150 150 Column integrated eastward water vapour mass flux (kg m-1 s-1)
+151 151 Column integrated northward water vapour mass flux (kg m-1 s-1)
+152 152 Column integrated eastward cloud liquid water mass flux (kg m-1 s-1)
+153 153 Column integrated northward cloud liquid water mass flux (kg m-1 s-1)
+154 154 Column integrated eastward cloud ice mass flux (kg m-1 s-1)
+155 155 Column integrated northward cloud ice mass flux (kg m-1 s-1)
+156 156 Column integrated eastward rain mass flux (kg m-1 s-1)
+157 157 Column integrated northward rain mass flux (kg m-1 s-1)
+158 158 Column integrated eastward snow mass flux (kg m-1 s-1)
+159 159 Column integrated northward snow mass flux (kg m-1 s-1)
+160 160 Column integrated divergence of water vapour mass flux (kg m-2 s-1)
+161 161 Column integrated divergence of cloud liquid water mass flux (kg m-2 s-1)
+162 162 Column integrated divergence of cloud ice mass flux (kg m-2 s-1)
+163 163 Column integrated divergence of rain mass flux (kg m-2 s-1)
+164 164 Column integrated divergence of snow mass flux (kg m-2 s-1)
+165 165 Column integrated divergence of total water mass flux (kg m-2 s-1)
+166 166 Column integrated water vapour flux (kg m-2 s-1)
+167 167 Total column supercooled liquid water (kg m-2)
+168 168 Saturation specific humidity with respect to water (kg m-3)
+169 169 Total column integrated saturation specific humidity with respect to water (kg m-2)
+# 170-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.13.table b/definitions/grib2/tables/33/4.2.0.13.table
new file mode 100644
index 000000000..4c1253b96
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.13.table
@@ -0,0 +1,5 @@
+# Product discipline 0 - Meteorological products, parameter category 13: aerosols
+0 0 Aerosol type (Code table 4.205)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.14.table b/definitions/grib2/tables/33/4.2.0.14.table
new file mode 100644
index 000000000..df0f721ea
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.14.table
@@ -0,0 +1,7 @@
+# Product discipline 0 - Meteorological products, parameter category 14: trace gases
+0 0 Total ozone (DU)
+1 1 Ozone mixing ratio (kg/kg)
+2 2 Total column integrated ozone (DU)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.15.table b/definitions/grib2/tables/33/4.2.0.15.table
new file mode 100644
index 000000000..ac49ad402
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.15.table
@@ -0,0 +1,21 @@
+# Product discipline 0 - Meteorological products, parameter category 15: radar
+0 0 Base spectrum width (m/s)
+1 1 Base reflectivity (dB)
+2 2 Base radial velocity (m/s)
+3 3 Vertically integrated liquid water (VIL) (kg m-2)
+4 4 Layer-maximum base reflectivity (dB)
+5 5 Precipitation (kg m-2)
+6 6 Radar spectra (1) (-)
+7 7 Radar spectra (2) (-)
+8 8 Radar spectra (3) (-)
+9 9 Reflectivity of cloud droplets (dB)
+10 10 Reflectivity of cloud ice (dB)
+11 11 Reflectivity of snow (dB)
+12 12 Reflectivity of rain (dB)
+13 13 Reflectivity of graupel (dB)
+14 14 Reflectivity of hail (dB)
+15 15 Hybrid scan reflectivity (dB)
+16 16 Hybrid scan reflectivity height (m)
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.16.table b/definitions/grib2/tables/33/4.2.0.16.table
new file mode 100644
index 000000000..111e6d986
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.16.table
@@ -0,0 +1,10 @@
+# Product discipline 0 - Meteorological products, parameter category 16: forecast radar imagery
+0 0 Equivalent radar reflectivity factor for rain (mm6 m-3)
+1 1 Equivalent radar reflectivity factor for snow (mm6 m-3)
+2 2 Equivalent radar reflectivity factor for parameterized convection (mm6 m-3)
+3 3 Echo top (m)
+4 4 Reflectivity (dB)
+5 5 Composite reflectivity (dB)
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.17.table b/definitions/grib2/tables/33/4.2.0.17.table
new file mode 100644
index 000000000..90ef72d87
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.17.table
@@ -0,0 +1,7 @@
+# Product discipline 0 - Meteorological products, parameter category 17: electrodynamics
+0 0 Lightning strike density (m-2 s-1)
+1 1 Lightning potential index (LPI) (J kg-1)
+2 2 Cloud-to-ground lightning flash density (km-2 day-1)
+3 3 Cloud-to-cloud lightning flash density (km-2 day-1)
+4 4 Total lightning flash density (km-2 day-1)
+5 5 Subgrid-scale lightning potential index (J kg-1)
diff --git a/definitions/grib2/tables/33/4.2.0.18.table b/definitions/grib2/tables/33/4.2.0.18.table
new file mode 100644
index 000000000..6efa6e5e0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.18.table
@@ -0,0 +1,31 @@
+# Product discipline 0 - Meteorological products, parameter category 18: nuclear/radiology
+0 0 Air activity concentration of caesium 137 (Bq m-3)
+1 1 Air activity concentration of iodine 131 (Bq m-3)
+2 2 Air activity concentration of radioactive pollutant (Bq m-3)
+3 3 Ground deposition activity of caesium 137 (Bq m-2)
+4 4 Ground deposition activity of iodine 131 (Bq m-2)
+5 5 Ground deposition activity of radioactive pollutant (Bq m-2)
+6 6 Time-integrated air activity concentration of caesium pollutant (Bq s m-3)
+7 7 Time-integrated air activity concentration of iodine pollutant (Bq s m-3)
+8 8 Time-integrated air activity concentration of radioactive pollutant (Bq s m-3)
+9 9 Reserved
+10 10 Air activity concentration (Bq m-3)
+11 11 Wet deposition activity (Bq m-2)
+12 12 Dry deposition activity (Bq m-2)
+13 13 Total deposition activity (wet + dry) (Bq m-2)
+14 14 Specific activity concentration (Bq kg-1)
+15 15 Maximum of air activity concentration in layer (Bq m-3)
+16 16 Height of maximum air activity concentration (m)
+17 17 Column-integrated air activity concentration (Bq m-2)
+18 18 Column-averaged air activity concentration in layer (Bq m-3)
+19 19 Deposition activity arrival (s)
+20 20 Deposition activity ended (s)
+21 21 Cloud activity arrival (s)
+22 22 Cloud activity ended (s)
+23 23 Effective dose rate (nSv h-1)
+24 24 Thyroid dose rate (adult) (nSv h-1)
+25 25 Gamma dose rate (adult) (nSv h-1)
+26 26 Activity emission (Bq s-1)
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.19.table b/definitions/grib2/tables/33/4.2.0.19.table
new file mode 100644
index 000000000..be45d7a0d
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.19.table
@@ -0,0 +1,55 @@
+# Product discipline 0 - Meteorological products, parameter category 19: physical atmospheric properties
+0 0 Visibility (m)
+1 1 Albedo (%)
+2 2 Thunderstorm probability (%)
+3 3 Mixed layer depth (m)
+4 4 Volcanic ash (Code table 4.206)
+5 5 Icing top (m)
+6 6 Icing base (m)
+7 7 Icing (Code table 4.207)
+8 8 Turbulence top (m)
+9 9 Turbulence base (m)
+10 10 Turbulence (Code table 4.208)
+11 11 Turbulent kinetic energy (J/kg)
+12 12 Planetary boundary-layer regime (Code table 4.209)
+13 13 Contrail intensity (Code table 4.210)
+14 14 Contrail engine type (Code table 4.211)
+15 15 Contrail top (m)
+16 16 Contrail base (m)
+17 17 Maximum snow albedo (%)
+18 18 Snow free albedo (%)
+19 19 Snow albedo (%)
+20 20 Icing (%)
+21 21 In-cloud turbulence (%)
+22 22 Clear air turbulence (CAT) (%)
+23 23 Supercooled large droplet probability (%)
+24 24 Convective turbulent kinetic energy (J/kg)
+25 25 Weather (Code table 4.225)
+26 26 Convective outlook (Code table 4.224)
+27 27 Icing scenario (Code table 4.227)
+28 28 Mountain wave turbulence (eddy dissipation rate) (m2/3 s-1)
+29 29 Clear air turbulence (CAT) (m2/3 s-1)
+30 30 Eddy dissipation parameter (m2/3 s-1)
+31 31 Maximum of eddy dissipation parameter in layer (m2/3 s-1)
+32 32 Highest freezing level (m)
+33 33 Visibility through liquid fog (m)
+34 34 Visibility through ice fog (m)
+35 35 Visibility through blowing snow (m)
+36 36 Presence of snow squalls (Code table 4.222)
+37 37 Icing severity (Code table 4.228)
+38 38 Sky transparency index (Code table 4.214)
+39 39 Seeing index (Code table 4.214)
+40 40 Snow level (m)
+41 41 Duct base height (m)
+42 42 Trapping layer base height (m)
+43 43 Trapping layer top height (m)
+44 44 Mean vertical gradient of refractivity inside trapping layer (m-1)
+45 45 Minimum vertical gradient of refractivity inside trapping layer (m-1)
+46 46 Net radiation flux (W m-2)
+47 47 Global irradiance on tilted surfaces (W m-2)
+48 48 Top of persistent contrails (m)
+49 49 Base of persistent contrails (m)
+50 50 Convectively-induced turbulence (CIT) (eddy dissipation rate) (m2/3 s-1)
+# 51-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.190.table b/definitions/grib2/tables/33/4.2.0.190.table
new file mode 100644
index 000000000..dfe39840d
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.190.table
@@ -0,0 +1,5 @@
+# Product discipline 0 - Meteorological products, parameter category 190: CCITT IA5 string
+0 0 Arbitrary text string (CCITT IA5)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.191.table b/definitions/grib2/tables/33/4.2.0.191.table
index fd5ef50f0..5fce8eab0 100644
--- a/definitions/grib2/tables/33/4.2.0.191.table
+++ b/definitions/grib2/tables/33/4.2.0.191.table
@@ -3,10 +3,10 @@
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
3 3 Days since last observation (d)
-# 4-4 Reserved
-5 5 Hurricane track in spatiotemporal vicinity [boolean]
-6 6 Tropical Storm track in spatiotemporal vicinity [boolean]
-7 7 Tropical Depression track in spatiotemporal vicinity [boolean]
+4 4 Tropical cyclone density track (Numeric)
+5 5 Hurricane track in spatiotemporal vicinity (boolean)
+6 6 Tropical storm track in spatiotemporal vicinity (boolean)
+7 7 Tropical depression track in spatiotemporal vicinity (boolean)
# 8-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.2.table b/definitions/grib2/tables/33/4.2.0.2.table
new file mode 100644
index 000000000..bd6e32851
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.2.table
@@ -0,0 +1,72 @@
+# Product discipline 0 - Meteorological products, parameter category 2: momentum
+0 0 Wind direction (from which blowing) (degree true)
+1 1 Wind speed (m/s)
+2 2 u-component of wind (m/s)
+3 3 v-component of wind (m/s)
+4 4 Stream function (m2/s)
+5 5 Velocity potential (m2/s)
+6 6 Montgomery stream function (m2 s-2)
+7 7 Sigma coordinate vertical velocity (/s)
+8 8 Vertical velocity (pressure) (Pa/s)
+9 9 Vertical velocity (geometric) (m/s)
+10 10 Absolute vorticity (/s)
+11 11 Absolute divergence (/s)
+12 12 Relative vorticity (/s)
+13 13 Relative divergence (/s)
+14 14 Potential vorticity (K m2 kg-1 s-1)
+15 15 Vertical u-component shear (/s)
+16 16 Vertical v-component shear (/s)
+17 17 Momentum flux, u-component (N m-2)
+18 18 Momentum flux, v-component (N m-2)
+19 19 Wind mixing energy (J)
+20 20 Boundary layer dissipation (W m-2)
+21 21 Maximum wind speed (m/s)
+22 22 Wind speed (gust) (m/s)
+23 23 u-component of wind (gust) (m/s)
+24 24 v-component of wind (gust) (m/s)
+25 25 Vertical speed shear (/s)
+26 26 Horizontal momentum flux (N m-2)
+27 27 u-component storm motion (m/s)
+28 28 v-component storm motion (m/s)
+29 29 Drag coefficient (Numeric)
+30 30 Frictional velocity (m/s)
+31 31 Turbulent diffusion coefficient for momentum (m2/s)
+32 32 Eta coordinate vertical velocity (/s)
+33 33 Wind fetch (m)
+34 34 Normal wind component (m/s)
+35 35 Tangential wind component (m/s)
+36 36 Amplitude function for Rossby wave envelope for meridional wind (m/s)
+37 37 Northward turbulent surface stress (N m-2 s)
+38 38 Eastward turbulent surface stress (N m-2 s)
+39 39 Eastward wind tendency due to parameterization (m s-2)
+40 40 Northward wind tendency due to parameterization (m s-2)
+41 41 u-component of geostrophic wind (m s-1)
+42 42 v-component of geostrophic wind (m s-1)
+43 43 Geostrophic wind direction (degree true)
+44 44 Geostrophic wind speed (m s-1)
+45 45 Unbalanced component of divergence (s-1)
+46 46 Vorticity advection (s-2)
+47 47 Surface roughness for heat (m)
+48 48 Surface roughness for moisture (m)
+49 49 Wind stress (N m-2)
+50 50 Eastward wind stress (N m-2)
+51 51 Northward wind stress (N m-2)
+52 52 u-component of wind stress (N m-2)
+53 53 v-component of wind stress (N m-2)
+54 54 Natural logarithm of surface roughness length for heat (Numeric)
+55 55 Natural logarithm of surface roughness length for moisture (Numeric)
+56 56 u-component of neutral wind (m s-1)
+57 57 v-component of neutral wind (m s-1)
+58 58 Magnitude of turbulent surface stress (N m-2)
+59 59 Vertical divergence (s-1)
+60 60 Drag thermal coefficient (Numeric)
+61 61 Drag evaporation coefficient (Numeric)
+62 62 Eastward turbulent surface stress (N m-2)
+63 63 Northward turbulent surface stress (N m-2)
+64 64 Eastward turbulent surface stress due to orographic form drag (N m-2)
+65 65 Northward turbulent surface stress due to orographic form drag (N m-2)
+66 66 Eastward turbulent surface stress due to surface roughness (N m-2)
+67 67 Northward turbulent surface stress due to surface roughness (N m-2)
+# 68-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.20.table b/definitions/grib2/tables/33/4.2.0.20.table
new file mode 100644
index 000000000..7855a8618
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.20.table
@@ -0,0 +1,69 @@
+# Product discipline 0 - Meteorological products, parameter category 20: atmospheric chemical constituents
+0 0 Mass density (concentration) (kg m-3)
+1 1 Column-integrated mass density (kg m-2)
+2 2 Mass mixing ratio (mass fraction in air) (kg/kg)
+3 3 Atmosphere emission mass flux (kg m-2 s-1)
+4 4 Atmosphere net production mass flux (kg m-2 s-1)
+5 5 Atmosphere net production and emission mass flux (kg m-2 s-1)
+6 6 Surface dry deposition mass flux (kg m-2 s-1)
+7 7 Surface wet deposition mass flux (kg m-2 s-1)
+8 8 Atmosphere re-emission mass flux (kg m-2 s-1)
+9 9 Wet deposition by large-scale precipitation mass flux (kg m-2 s-1)
+10 10 Wet deposition by convective precipitation mass flux (kg m-2 s-1)
+11 11 Sedimentation mass flux (kg m-2 s-1)
+12 12 Dry deposition mass flux (kg m-2 s-1)
+13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
+14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
+15 15 Dry deposition velocity (m/s)
+16 16 Mass mixing ratio with respect to dry air (kg/kg)
+17 17 Mass mixing ratio with respect to wet air (kg/kg)
+18 18 Potential of hydrogen (pH) (pH)
+# 19-49 Reserved
+50 50 Amount in atmosphere (mol)
+51 51 Concentration in air (mol m-3)
+52 52 Volume mixing ratio (fraction in air) (mol/mol)
+53 53 Chemical gross production rate of concentration (mol m-3 s-1)
+54 54 Chemical gross destruction rate of concentration (mol m-3 s-1)
+55 55 Surface flux (mol m-2 s-1)
+56 56 Changes of amount in atmosphere (mol/s)
+57 57 Total yearly average burden of the atmosphere (mol)
+58 58 Total yearly averaged atmospheric loss (mol/s)
+59 59 Aerosol number concentration (m-3)
+60 60 Aerosol specific number concentration (kg-1)
+61 61 Maximum of mass density in layer (kg m-3)
+62 62 Height of maximum mass density (m)
+63 63 Column-averaged mass density in layer (kg m-3)
+64 64 Mole fraction with respect to dry air (mol/mol)
+65 65 Mole fraction with respect to wet air (mol/mol)
+66 66 Column-integrated in-cloud scavenging rate by precipitation (kg m-2 s-1)
+67 67 Column-integrated below-cloud scavenging rate by precipitation (kg m-2 s-1)
+68 68 Column-integrated release rate from evaporating precipitation (kg m-2 s-1)
+69 69 Column-integrated in-cloud scavenging rate by large-scale precipitation (kg m-2 s-1)
+70 70 Column-integrated below-cloud scavenging rate by large-scale precipitation (kg m-2 s-1)
+71 71 Column-integrated release rate from evaporating large-scale precipitation (kg m-2 s-1)
+72 72 Column-integrated in-cloud scavenging rate by convective precipitation (kg m-2 s-1)
+73 73 Column-integrated below-cloud scavenging rate by convective precipitation (kg m-2 s-1)
+74 74 Column-integrated release rate from evaporating convective precipitation (kg m-2 s-1)
+75 75 Wildfire flux (kg m-2 s-1)
+76 76 Emission rate (kg kg-1 s-1)
+77 77 Surface emission flux (kg m-2 s-1)
+78 78 Column integrated eastward mass flux (kg m-1 s-1)
+79 79 Column integrated northward mass flux (kg m-1 s-1)
+80 80 Column integrated divergence of mass flux (kg m-2 s-1)
+81 81 Column integrated net source (kg m-2 s-1)
+# 82-99 Reserved
+100 100 Surface area density (aerosol) (/m)
+101 101 Vertical visual range (m)
+102 102 Aerosol optical thickness (Numeric)
+103 103 Single scattering albedo (Numeric)
+104 104 Asymmetry factor (Numeric)
+105 105 Aerosol extinction coefficient (/m)
+106 106 Aerosol absorption coefficient (/m)
+107 107 Aerosol lidar backscatter from satellite (m-1 sr-1)
+108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
+109 109 Aerosol lidar extinction from satellite (/m)
+110 110 Aerosol lidar extinction from the ground (/m)
+111 111 Angstrom exponent (Numeric)
+# 112-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.21.table b/definitions/grib2/tables/33/4.2.0.21.table
new file mode 100644
index 000000000..05646e1a6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.21.table
@@ -0,0 +1,27 @@
+# Product discipline 0 - Meteorological products, parameter category 21: thermodynamic properties
+0 0 Column integrated potential + internal energy (J m-2)
+1 1 Column integrated kinetic energy (J m-2)
+2 2 Column integrated total energy (J m-2)
+3 3 Column integrated enthalpy (J m-2)
+4 4 Column integrated water enthalpy (J m-2)
+5 5 Column integrated eastward enthalpy flux (W m-1)
+6 6 Column integrated northward enthalpy flux (W m-1)
+7 7 Column integrated eastward potential energy flux (W m-1)
+8 8 Column integrated northward potential energy flux (W m-1)
+9 9 Column integrated eastward kinetic energy flux (W m-1)
+10 10 Column integrated northward kinetic energy flux (W m-1)
+11 11 Column integrated eastward total energy flux (W m-1)
+12 12 Column integrated northward total energy flux (W m-1)
+13 13 Divergence of column integrated enthalpy flux (W m-2)
+14 14 Divergence of column integrated potential energy flux (W m-2)
+15 15 Divergence of column integrated water potential energy flux (W m-2)
+16 16 Divergence of column integrated kinetic energy flux (W m-2)
+17 17 Divergence of column integrated total energy flux (W m-2)
+18 18 Divergence of column integrated water enthalpy flux (W m-2)
+19 19 Column integrated eastward heat flux (W m-1)
+20 20 Column integrated northward heat flux (W m-1)
+21 21 Column integrated potential+internal+latent energy (J m-2)
+22 22 Eady growth rate (day-1)
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.22.table b/definitions/grib2/tables/33/4.2.0.22.table
new file mode 100644
index 000000000..726bda9c0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.22.table
@@ -0,0 +1,11 @@
+# Product discipline 0 - Meteorological products, parameter category 22: drought indices
+0 0 Standard Precipitation Index (SPI) (dimensionless)
+1 1 Standardized Precipitation Evapotranspiration Index (SPEI) (dimensionless)
+2 2 Standardized Streamflow index (SSFI) (dimensionless)
+3 3 Standardized Reservoir Supply Index (SRSI) (dimensionless)
+4 4 Standardized Water-level Index (SWI) (dimensionless)
+5 5 Standardized Snowmelt and Rain Index (SMRI) (dimensionless)
+6 6 Streamflow Drought Index (SDI) (dimensionless)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.3.table b/definitions/grib2/tables/33/4.2.0.3.table
new file mode 100644
index 000000000..d685de2ef
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.3.table
@@ -0,0 +1,51 @@
+# Product discipline 0 - Meteorological products, parameter category 3: mass
+0 0 Pressure (Pa)
+1 1 Pressure reduced to MSL (Pa)
+2 2 Pressure tendency (Pa/s)
+3 3 ICAO Standard Atmosphere Reference Height (m)
+4 4 Geopotential (m2 s-2)
+5 5 Geopotential height (gpm)
+6 6 Geometric height (m)
+7 7 Standard deviation of height (m)
+8 8 Pressure anomaly (Pa)
+9 9 Geopotential height anomaly (gpm)
+10 10 Density (kg m-3)
+11 11 Altimeter setting (Pa)
+12 12 Thickness (m)
+13 13 Pressure altitude (m)
+14 14 Density altitude (m)
+15 15 5-wave geopotential height (gpm)
+16 16 Zonal flux of gravity wave stress (N m-2)
+17 17 Meridional flux of gravity wave stress (N m-2)
+18 18 Planetary boundary layer height (m)
+19 19 5-wave geopotential height anomaly (gpm)
+20 20 Standard deviation of sub-grid scale orography (m)
+21 21 Angle of sub-gridscale orography (rad)
+22 22 Slope of sub-gridscale orography (Numeric)
+23 23 Gravity wave dissipation (W m-2)
+24 24 Anisotropy of sub-gridscale orography (Numeric)
+25 25 Natural logarithm of pressure in Pa (Numeric)
+26 26 Exner pressure (Numeric)
+27 27 Updraught mass flux (kg m-2 s-1)
+28 28 Downdraught mass flux (kg m-2 s-1)
+29 29 Updraught detrainment rate (kg m-3 s-1)
+30 30 Downdraught detrainment rate (kg m-3 s-1)
+31 31 Unbalanced component of logarithm of surface pressure (-)
+32 32 Saturation water vapour pressure (Pa)
+33 33 Geometric altitude above mean sea level (m)
+34 34 Geometric height above ground level (m)
+35 35 Column integrated divergence of total mass flux (kg m-2 s-1)
+36 36 Column integrated eastward total mass flux (kg m-1 s-1)
+37 37 Column integrated northward total mass flux (kg m-1 s-1)
+38 38 Standard deviation of filtered subgrid orography (m)
+39 39 Column integrated mass of atmosphere (kg m-2)
+40 40 Column integrated eastward geopotential flux (W m-1)
+41 41 Column integrated northward geopotential flux (W m-1)
+42 42 Column integrated divergence of water geopotential flux (W m-2)
+43 43 Column integrated divergence of geopotential flux (W m-2)
+44 44 Height of zero-degree wet-bulb temperature (m)
+45 45 Height of one-degree wet-bulb temperature (m)
+46 46 Pressure departure from hydrostatic state (Pa)
+# 47-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.4.table b/definitions/grib2/tables/33/4.2.0.4.table
new file mode 100644
index 000000000..88c24ae52
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.4.table
@@ -0,0 +1,33 @@
+# Product discipline 0 - Meteorological products, parameter category 4: short-wave radiation
+0 0 Net short-wave radiation flux (surface) (W m-2)
+1 1 Net short-wave radiation flux (top of atmosphere) (W m-2)
+2 2 Short-wave radiation flux (W m-2)
+3 3 Global radiation flux (W m-2)
+4 4 Brightness temperature (K)
+5 5 Radiance (with respect to wave number) (W m-1 sr-1)
+6 6 Radiance (with respect to wavelength) (W m-3 sr-1)
+7 7 Downward short-wave radiation flux (W m-2)
+8 8 Upward short-wave radiation flux (W m-2)
+9 9 Net short wave radiation flux (W m-2)
+10 10 Photosynthetically active radiation (W m-2)
+11 11 Net short-wave radiation flux, clear sky (W m-2)
+12 12 Downward UV radiation (W m-2)
+13 13 Direct short-wave radiation flux (W m-2)
+14 14 Diffuse short-wave radiation flux (W m-2)
+15 15 Upward UV radiation emitted/reflected from the Earth's surface (W m-2)
+# 16-49 Reserved
+50 50 UV index (under clear sky) (Numeric)
+51 51 UV index (Numeric)
+52 52 Downward short-wave radiation flux, clear sky (W m-2)
+53 53 Upward short-wave radiation flux, clear sky (W m-2)
+54 54 Direct normal short-wave radiation flux (W m-2)
+55 55 UV visible albedo for diffuse radiation (%)
+56 56 UV visible albedo for direct radiation (%)
+57 57 UV visible albedo for direct radiation, geometric component (%)
+58 58 UV visible albedo for direct radiation, isotropic component (%)
+59 59 UV visible albedo for direct radiation, volumetric component (%)
+60 60 Photosynthetically active radiation flux, clear sky (W m-2)
+61 61 Direct short-wave radiation flux, clear sky (W m-2)
+# 62-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.5.table b/definitions/grib2/tables/33/4.2.0.5.table
new file mode 100644
index 000000000..7065106a2
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.5.table
@@ -0,0 +1,18 @@
+# Product discipline 0 - Meteorological products, parameter category 5: long-wave radiation
+0 0 Net long-wave radiation flux (surface) (W m-2)
+1 1 Net long-wave radiation flux (top of atmosphere) (W m-2)
+2 2 Long-wave radiation flux (W m-2)
+3 3 Downward long-wave radiation flux (W m-2)
+4 4 Upward long-wave radiation flux (W m-2)
+5 5 Net long-wave radiation flux (W m-2)
+6 6 Net long-wave radiation flux, clear sky (W m-2)
+7 7 Brightness temperature (K)
+8 8 Downward long-wave radiation flux, clear sky (W m-2)
+9 9 Near IR albedo for diffuse radiation (%)
+10 10 Near IR albedo for direct radiation (%)
+11 11 Near IR albedo for direct radiation, geometric component (%)
+12 12 Near IR albedo for direct radiation, isotropic component (%)
+13 13 Near IR albedo for direct radiation, volumetric component (%)
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.6.table b/definitions/grib2/tables/33/4.2.0.6.table
new file mode 100644
index 000000000..d831f3474
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.6.table
@@ -0,0 +1,51 @@
+# Product discipline 0 - Meteorological products, parameter category 6: cloud
+0 0 Cloud ice (kg m-2)
+1 1 Total cloud cover (%)
+2 2 Convective cloud cover (%)
+3 3 Low cloud cover (%)
+4 4 Medium cloud cover (%)
+5 5 High cloud cover (%)
+6 6 Cloud water (kg m-2)
+7 7 Cloud amount (%)
+8 8 Cloud type (Code table 4.203)
+9 9 Thunderstorm maximum tops (m)
+10 10 Thunderstorm coverage (Code table 4.204)
+11 11 Cloud base (m)
+12 12 Cloud top (m)
+13 13 Ceiling (m)
+14 14 Non-convective cloud cover (%)
+15 15 Cloud work function (J/kg)
+16 16 Convective cloud efficiency (Proportion)
+17 17 Total condensate (kg/kg)
+18 18 Total column-integrated cloud water (kg m-2)
+19 19 Total column-integrated cloud ice (kg m-2)
+20 20 Total column-integrated condensate (kg m-2)
+21 21 Ice fraction of total condensate (Proportion)
+22 22 Cloud cover (%)
+23 23 Cloud ice mixing ratio (kg/kg)
+24 24 Sunshine (Numeric)
+25 25 Horizontal extent of cumulonimbus (CB) (%)
+26 26 Height of convective cloud base (m)
+27 27 Height of convective cloud top (m)
+28 28 Number of cloud droplets per unit mass of air (/kg)
+29 29 Number of cloud ice particles per unit mass of air (/kg)
+30 30 Number density of cloud droplets (m-3)
+31 31 Number density of cloud ice particles (m-3)
+32 32 Fraction of cloud cover (Numeric)
+33 33 Sunshine duration (s)
+34 34 Surface long-wave effective total cloudiness (Numeric)
+35 35 Surface short-wave effective total cloudiness (Numeric)
+36 36 Fraction of stratiform precipitation cover (Proportion)
+37 37 Fraction of convective precipitation cover (Proportion)
+38 38 Mass density of cloud droplets (kg m-3)
+39 39 Mass density of cloud ice (kg m-3)
+40 40 Mass density of convective cloud water droplets (kg m-3)
+# 41-46 Reserved
+47 47 Volume fraction of cloud water droplets (Numeric)
+48 48 Volume fraction of cloud ice particles (Numeric)
+49 49 Volume fraction of cloud (ice and/or water) (Numeric)
+50 50 Fog (%)
+51 51 Sunshine duration fraction (Proportion)
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.0.7.table b/definitions/grib2/tables/33/4.2.0.7.table
new file mode 100644
index 000000000..15acb1857
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.0.7.table
@@ -0,0 +1,25 @@
+# Product discipline 0 - Meteorological products, parameter category 7: thermodynamic stability indices
+0 0 Parcel lifted index (to 500 hPa) (K)
+1 1 Best lifted index (to 500 hPa) (K)
+2 2 K index (K)
+3 3 KO index (K)
+4 4 Total totals index (K)
+5 5 Sweat index (Numeric)
+6 6 Convective available potential energy (J/kg)
+7 7 Convective inhibition (J/kg)
+8 8 Storm relative helicity (J/kg)
+9 9 Energy helicity index (Numeric)
+10 10 Surface lifted index (K)
+11 11 Best (4-layer) lifted index (K)
+12 12 Richardson number (Numeric)
+13 13 Showalter index (K)
+14 14 Reserved
+15 15 Updraught helicity (m2 s-2)
+16 16 Bulk Richardson number (Numeric)
+17 17 Gradient Richardson number (Numeric)
+18 18 Flux Richardson number (Numeric)
+19 19 Convective available potential energy - shear (m2 s-2)
+20 20 Thunderstorm intensity index (Code table 4.246)
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.1.0.table b/definitions/grib2/tables/33/4.2.1.0.table
new file mode 100644
index 000000000..7072b3d44
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.1.0.table
@@ -0,0 +1,25 @@
+# Product discipline 1 - Hydrological products, parameter category 0: hydrology basic products
+0 0 Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time) (kg m-2)
+1 1 Flash flood runoff (Encoded as an accumulation over a floating subinterval of time) (kg m-2)
+2 2 Remotely-sensed snow cover (Code table 4.215)
+3 3 Elevation of snow-covered terrain (Code table 4.216)
+4 4 Snow water equivalent per cent of normal (%)
+5 5 Baseflow-groundwater runoff (kg m-2)
+6 6 Storm surface runoff (kg m-2)
+7 7 Discharge from rivers or streams (m3/s)
+8 8 Groundwater upper storage (kg m-2)
+9 9 Groundwater lower storage (kg m-2)
+10 10 Side flow into river channel (m3 s-1 m-1)
+11 11 River storage of water (m3)
+12 12 Floodplain storage of water (m3)
+13 13 Water on soil surface (kg m-2)
+14 14 Upstream accumulated precipitation (kg m-2)
+15 15 Upstream accumulated snow melt (kg m-2)
+16 16 Percolation rate (kg m-2 s-1)
+17 17 River outflow of water (m3 s-1)
+18 18 Floodplain outflow of water (m3 s-1)
+19 19 Floodpath outflow of water (m3 s-1)
+20 20 Water on surface (kg m-2)
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.1.1.table b/definitions/grib2/tables/33/4.2.1.1.table
new file mode 100644
index 000000000..e3931d5e6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.1.1.table
@@ -0,0 +1,7 @@
+# Product discipline 1 - Hydrological products, parameter category 1: hydrology probabilities
+0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
+1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
+2 2 Probability of 0.01 inch of precipitation (POP) (%)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.1.2.table b/definitions/grib2/tables/33/4.2.1.2.table
new file mode 100644
index 000000000..2c4e0f50d
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.1.2.table
@@ -0,0 +1,28 @@
+# Product discipline 1 - Hydrological products, parameter category 2: inland water and sediment properties
+0 0 Water depth (m)
+1 1 Water temperature (K)
+2 2 Water fraction (Proportion)
+3 3 Sediment thickness (m)
+4 4 Sediment temperature (K)
+5 5 Ice thickness (m)
+6 6 Ice temperature (K)
+7 7 Ice cover (Proportion)
+8 8 Land cover (0 = water, 1 = land) (Proportion)
+9 9 Shape factor with respect to salinity profile (-)
+10 10 Shape factor with respect to temperature profile in thermocline (-)
+11 11 Attenuation coefficient of water with respect to solar radiation (m)
+12 12 Salinity (kg/kg)
+13 13 Cross-sectional area of flow in channel (m2)
+14 14 Snow temperature (K)
+15 15 Lake depth (m)
+16 16 River depth (m)
+17 17 Floodplain depth (m)
+18 18 Floodplain flooded fraction (proportion)
+19 19 FLoodplain flooded area (m2)
+20 20 River fraction (proportion)
+21 21 River area (m2)
+22 22 Fraction of river coverage plus river related flooding (proportion)
+23 23 Area of river coverage plus river related flooding (m2)
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.0.table b/definitions/grib2/tables/33/4.2.10.0.table
new file mode 100644
index 000000000..92b18661a
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.0.table
@@ -0,0 +1,103 @@
+# Product discipline 10 - Oceanographic products, parameter category 0: waves
+0 0 Wave spectra (1) (-)
+1 1 Wave spectra (2) (-)
+2 2 Wave spectra (3) (-)
+3 3 Significant height of combined wind waves and swell (m)
+4 4 Direction of wind waves (degree true)
+5 5 Significant height of wind waves (m)
+6 6 Mean period of wind waves (s)
+7 7 Direction of swell waves (degree true)
+8 8 Significant height of swell waves (m)
+9 9 Mean period of swell waves (s)
+10 10 Primary wave direction (degree true)
+11 11 Primary wave mean period (s)
+12 12 Secondary wave direction (degree true)
+13 13 Secondary wave mean period (s)
+14 14 Mean direction of combined wind waves and swell (degree true)
+15 15 Mean period of combined wind waves and swell (s)
+16 16 Coefficient of drag with waves (-)
+17 17 Friction velocity (m/s)
+18 18 Wave stress (N m-2)
+19 19 Normalized wave stress (-)
+20 20 Mean square slope of waves (-)
+21 21 u-component surface Stokes drift (m/s)
+22 22 v-component surface Stokes drift (m/s)
+23 23 Period of maximum individual wave height (s)
+24 24 Maximum individual wave height (m)
+25 25 Inverse mean wave frequency (s)
+26 26 Inverse mean frequency of wind waves (s)
+27 27 Inverse mean frequency of total swell (s)
+28 28 Mean zero-crossing wave period (s)
+29 29 Mean zero-crossing period of wind waves (s)
+30 30 Mean zero-crossing period of total swell (s)
+31 31 Wave directional width (-)
+32 32 Directional width of wind waves (-)
+33 33 Directional width of total swell (-)
+34 34 Peak wave period (s)
+35 35 Peak period of wind waves (s)
+36 36 Peak period of total swell (s)
+37 37 Altimeter wave height (m)
+38 38 Altimeter corrected wave height (m)
+39 39 Altimeter range relative correction (-)
+40 40 10-metre neutral wind speed over waves (m/s)
+41 41 10-metre wind direction over waves (deg)
+42 42 Wave energy spectrum (m2 s rad-1)
+43 43 Kurtosis of the sea-surface elevation due to waves (-)
+44 44 Benjamin-Feir index (-)
+45 45 Spectral peakedness factor (/s)
+46 46 Peak wave direction (deg)
+47 47 Significant wave height of first swell partition (m)
+48 48 Significant wave height of second swell partition (m)
+49 49 Significant wave height of third swell partition (m)
+50 50 Mean wave period of first swell partition (s)
+51 51 Mean wave period of second swell partition (s)
+52 52 Mean wave period of third swell partition (s)
+53 53 Mean wave direction of first swell partition (deg)
+54 54 Mean wave direction of second swell partition (deg)
+55 55 Mean wave direction of third swell partition (deg)
+56 56 Wave directional width of first swell partition (-)
+57 57 Wave directional width of second swell partition (-)
+58 58 Wave directional width of third swell partition (-)
+59 59 Wave frequency width of first swell partition (-)
+60 60 Wave frequency width of second swell partition (-)
+61 61 Wave frequency width of third swell partition (-)
+62 62 Wave frequency width (-)
+63 63 Frequency width of wind waves (-)
+64 64 Frequency width of total swell (-)
+65 65 Peak wave period of first swell partition (s)
+66 66 Peak wave period of second swell partition (s)
+67 67 Peak wave period of third swell partition (s)
+68 68 Peak wave direction of first swell partition (degree true)
+69 69 Peak wave direction of second swell partition (degree true)
+70 70 Peak wave direction of third swell partition (degree true)
+71 71 Peak direction of wind waves (degree true)
+72 72 Peak direction of total swell (degree true)
+73 73 Whitecap fraction (fraction)
+74 74 Mean direction of total swell (degree)
+75 75 Mean direction of wind waves (degree)
+76 76 Charnock (Numeric)
+77 77 Wave Spectral Skewness (Numeric)
+78 78 Wave energy flux magnitude (W m-1)
+79 79 Wave energy flux mean direction (degree true)
+80 80 Ratio of wave angular and frequency width (Numeric)
+81 81 Free convective velocity over the oceans (m s-1)
+82 82 Air density over the oceans (kg m-3)
+83 83 Normalized energy flux into waves (Numeric)
+84 84 Normalized stress into ocean (Numeric)
+85 85 Normalized energy flux into ocean (Numeric)
+86 86 Surface elevation variance due to waves (over all frequencies and directions) (m2 s rad-1)
+87 87 Wave induced mean sea level correction (m)
+88 88 Spectral width index (Numeric)
+89 89 Number of events in freak waves statistics (Numeric)
+90 90 u-component of surface momentum flux into ocean (N m-2)
+91 91 v-component of surface momentum flux into ocean (N m-2)
+92 92 Wave turbulent energy flux into ocean (W m-2)
+93 93 Envelop maximum individual wave height (m)
+94 94 Time domain maximum individual crest height (m)
+95 95 Time domain maximum individual wave height (m)
+96 96 Space time maximum individual crest height (m)
+97 97 Space time maximum individual wave height (m)
+98 98 Goda peakedness factor (Numeric)
+# 99-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.1.table b/definitions/grib2/tables/33/4.2.10.1.table
new file mode 100644
index 000000000..aeec67455
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.1.table
@@ -0,0 +1,11 @@
+# Product discipline 10 - Oceanographic products, parameter category 1: currents
+0 0 Current direction (degree true)
+1 1 Current speed (m/s)
+2 2 u-component of current (m/s)
+3 3 v-component of current (m/s)
+4 4 Rip current occurrence probability (%)
+5 5 Eastward current (m s-1)
+6 6 Northward current (m s-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.191.table b/definitions/grib2/tables/33/4.2.10.191.table
new file mode 100644
index 000000000..cd4d4cde7
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.191.table
@@ -0,0 +1,9 @@
+# Product discipline 10 - Oceanographic products, parameter category 191: miscellaneous
+0 0 Seconds prior to initial reference time (defined in Section 1) (s)
+1 1 Meridional overturning stream function (m3/s)
+2 2 Reserved
+3 3 Days since last observation (d)
+4 4 Barotropic stream function (m3 s-1)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.2.table b/definitions/grib2/tables/33/4.2.10.2.table
new file mode 100644
index 000000000..0f27bd249
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.2.table
@@ -0,0 +1,34 @@
+# Product discipline 10 - Oceanographic products, parameter category 2: ice
+0 0 Ice cover (Proportion)
+1 1 Ice thickness (m)
+2 2 Direction of ice drift (degree true)
+3 3 Speed of ice drift (m/s)
+4 4 u-component of ice drift (m/s)
+5 5 v-component of ice drift (m/s)
+6 6 Ice growth rate (m/s)
+7 7 Ice divergence (/s)
+8 8 Ice temperature (K)
+9 9 Module of ice internal pressure (Pa m)
+10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m)
+11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m)
+12 12 Compressive ice strength (N/m)
+13 13 Snow temperature (over sea ice) (K)
+14 14 Albedo (Numeric)
+15 15 Sea ice volume per unit area (m3 m-2)
+16 16 Snow volume over sea ice per unit area (m3 m-2)
+17 17 Sea ice heat content (J m-2)
+18 18 Snow over sea ice heat content (J m-2)
+19 19 Ice freeboard thickness (m)
+20 20 Ice melt pond fraction (fraction)
+21 21 Ice melt pond depth (m)
+22 22 Ice melt pond volume per unit area (m3 m-2)
+23 23 Sea ice fraction tendency due to parameterization (s-1)
+24 24 x-component of ice drift (m s-1)
+25 25 y-component of ice drift (m s-1)
+26 26 Sea ice salinity (g kg-1)
+27 27 Freezing/melting potential (W m-2)
+28 28 Melt onset date (Numeric)
+29 29 Freeze onset date (Numeric)
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.3.table b/definitions/grib2/tables/33/4.2.10.3.table
new file mode 100644
index 000000000..6c4277c8e
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.3.table
@@ -0,0 +1,26 @@
+# Product discipline 10 - Oceanographic products, parameter category 3: surface properties
+0 0 Water temperature (K)
+1 1 Deviation of sea level from mean (m)
+2 2 Heat exchange coefficient (-)
+3 3 Practical salinity (Numeric)
+4 4 Downward heat flux (W m-2)
+5 5 Eastward surface stress (N m-2)
+6 6 Northward surface stress (N m-2)
+7 7 x-component surface stress (N m-2)
+8 8 y-component surface stress (N m-2)
+9 9 Thermosteric change in sea surface height (m)
+10 10 Halosteric change in sea surface height (m)
+11 11 Steric change in sea surface height (m)
+12 12 Sea salt flux (kg m-2 s-1)
+13 13 Net upward water flux (kg m-2 s-1)
+14 14 Eastward surface water velocity (m s-1)
+15 15 Northward surface water velocity (m s-1)
+16 16 x-component of surface water velocity (m s-1)
+17 17 y-component of surface water velocity (m s-1)
+18 18 Heat flux correction (W m-2)
+19 19 Sea surface height tendency due to parameterization (m s-1)
+20 20 Deviation of sea level from mean with inverse barometer correction (m)
+21 21 Salinity (kg kg-1)
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.10.4.table b/definitions/grib2/tables/33/4.2.10.4.table
new file mode 100644
index 000000000..0b9ef0956
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.10.4.table
@@ -0,0 +1,54 @@
+# Product discipline 10 - Oceanographic products, parameter category 4: subsurface properties
+0 0 Main thermocline depth (m)
+1 1 Main thermocline anomaly (m)
+2 2 Transient thermocline depth (m)
+3 3 Salinity (kg/kg)
+4 4 Ocean vertical heat diffusivity (m2/s)
+5 5 Ocean vertical salt diffusivity (m2/s)
+6 6 Ocean vertical momentum diffusivity (m2/s)
+7 7 Bathymetry (m)
+# 8-10 Reserved
+11 11 Shape factor with respect to salinity profile (-)
+12 12 Shape factor with respect to temperature profile in thermocline (-)
+13 13 Attenuation coefficient of water with respect to solar radiation (/m)
+14 14 Water depth (m)
+15 15 Water temperature (K)
+16 16 Water density (rho) (kg m-3)
+17 17 Water density anomaly (sigma) (kg m-3)
+18 18 Water potential temperature (theta) (K)
+19 19 Water potential density (rho theta) (kg m-3)
+20 20 Water potential density anomaly (sigma theta) (kg m-3)
+21 21 Practical salinity (Numeric)
+22 22 Water column-integrated heat content (J m-2)
+23 23 Eastward water velocity (m s-1)
+24 24 Northward water velocity (m s-1)
+25 25 x-component water velocity (m s-1)
+26 26 y-component water velocity (m s-1)
+27 27 Upward water velocity (m s-1)
+28 28 Vertical eddy diffusivity (m2 s-1)
+29 29 Bottom pressure equivalent height (m)
+30 30 Fresh water flux into sea water from rivers (kg m-2 s-1)
+31 31 Fresh water flux correction (kg m-2 s-1)
+32 32 Virtual salt flux into sea water (g kg-1 m-2 s-1)
+33 33 Virtual salt flux correction (g kg-1 m-2 s-1)
+34 34 Sea water temperature tendency due to Newtonian relaxation (K s-1)
+35 35 Sea water salinity tendency due to Newtonian relaxation (g kg-1 s-1)
+36 36 Sea water temperature tendency due to parameterization (K s-1)
+37 37 Sea water salinity tendency due to parameterization (g kg-1 s-1)
+38 38 Eastward sea water velocity tendency due to parameterization (m s-2)
+39 39 Northward sea water velocity tendency due to parameterization (m s-2)
+40 40 Sea water temperature tendency due to direct bias correction (K s-1)
+41 41 Sea water salinity tendency due to direct bias correction (g kg-1 s-1)
+42 42 Sea water meridional volume transport (m3 m-2 s-1)
+43 43 Sea water zonal volume transport (m3 m-2 s-1)
+44 44 Sea water column integrated meridional volume transport (m3 m-1 s-1)
+45 45 Sea water column integrated zonal volume transport (m3 m-1 s-1)
+46 46 Sea water meridional mass transport (kg m-2 s-1)
+47 47 Sea water zonal mass transport (kg m-2 s-1)
+48 48 Sea water column integrated meridional mass transport (kg m-1 s-1)
+49 49 Sea water column integrated zonal mass transport (kg m-1 s-1)
+50 50 Sea water column integrated practical salinity (g kg-1 m)
+51 51 Sea water column integrated salinity (kg kg-1 m)
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.2.0.table b/definitions/grib2/tables/33/4.2.2.0.table
new file mode 100644
index 000000000..8daeafd85
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.2.0.table
@@ -0,0 +1,68 @@
+# Product discipline 2 - Land surface products, parameter category 0: vegetation/biomass
+0 0 Land cover (0 = sea, 1 = land) (Proportion)
+1 1 Surface roughness (m)
+2 2 Soil temperature (K)
+3 3 Soil moisture content (kg m-2)
+4 4 Vegetation (%)
+5 5 Water runoff (kg m-2)
+6 6 Evapotranspiration (kg-2 s-1)
+7 7 Model terrain height (m)
+8 8 Land use (Code table 4.212)
+9 9 Volumetric soil moisture content (Proportion)
+10 10 Ground heat flux (W m-2)
+11 11 Moisture availability (%)
+12 12 Exchange coefficient (kg m-2 s-1)
+13 13 Plant canopy surface water (kg m-2)
+14 14 Blackadar's mixing length scale (m)
+15 15 Canopy conductance (m/s)
+16 16 Minimal stomatal resistance (s/m)
+17 17 Wilting point (Proportion)
+18 18 Solar parameter in canopy conductance (Proportion)
+19 19 Temperature parameter in canopy (Proportion)
+20 20 Humidity parameter in canopy conductance (Proportion)
+21 21 Soil moisture parameter in canopy conductance (Proportion)
+22 22 Soil moisture (kg m-3)
+23 23 Column-integrated soil water (kg m-2)
+24 24 Heat flux (W m-2)
+25 25 Volumetric soil moisture (m3 m-3)
+26 26 Wilting point (kg m-3)
+27 27 Volumetric wilting point (m3 m-3)
+28 28 Leaf area index (Numeric)
+29 29 Evergreen forest cover (Proportion)
+30 30 Deciduous forest cover (Proportion)
+31 31 Normalized differential vegetation index (NDVI) (Numeric)
+32 32 Root depth of vegetation (m)
+33 33 Water runoff and drainage (kg m-2)
+34 34 Surface water runoff (kg m-2)
+35 35 Tile class (Code table 4.243)
+36 36 Tile fraction (Proportion)
+37 37 Tile percentage (%)
+38 38 Soil volumetric ice content (water equivalent) (m3 m-3)
+39 39 Evapotranspiration rate (kg m-2 s-1)
+40 40 Potential evapotranspiration rate (kg m-2 s-1)
+41 41 Snow melt rate (kg m-2 s-1)
+42 42 Water runoff and drainage rate (kg m-2 s-1)
+43 43 Drainage direction (Code table 4.250)
+44 44 Upstream area (m2)
+45 45 Wetland cover (Proportion)
+46 46 Wetland type (Code table 4.239)
+47 47 Irrigation cover (Proportion)
+48 48 C4 crop cover (Proportion)
+49 49 C4 grass cover (Proportion)
+50 50 Skin reservoir content (kg m-2)
+51 51 Surface runoff rate (kg m-2 s-1)
+52 52 Subsurface runoff rate (kg m-2 s-1)
+53 53 Low-vegetation cover (Proportion)
+54 54 High-vegetation cover (Proportion)
+55 55 Leaf area index, low-vegetation (m2 m-2)
+56 56 Leaf area index, high-vegetation (m2 m-2)
+57 57 Type of low-vegetation (Code table 4.234)
+58 58 Type of high-vegetation (Code table 4.234)
+59 59 Net ecosystem exchange flux (kg m-2 s-1)
+60 60 Gross primary production flux (kg m-2 s-1)
+61 61 Ecosystem respiration flux (kg m-2 s-1)
+62 62 Emissivity (Proportion)
+63 63 Canopy air temperature (K)
+# 64-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.2.3.table b/definitions/grib2/tables/33/4.2.2.3.table
new file mode 100644
index 000000000..ad6b618f2
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.2.3.table
@@ -0,0 +1,35 @@
+# Product discipline 2 - Land surface products, parameter category 3: soil products
+0 0 Soil type (Code table 4.213)
+1 1 Upper layer soil temperature (K)
+2 2 Upper layer soil moisture (kg m-3)
+3 3 Lower layer soil moisture (kg m-3)
+4 4 Bottom layer soil temperature (K)
+5 5 Liquid volumetric soil moisture (non-frozen) (Proportion)
+6 6 Number of soil layers in root zone (Numeric)
+7 7 Transpiration stress-onset (soil moisture) (Proportion)
+8 8 Direct evaporation cease (soil moisture) (Proportion)
+9 9 Soil porosity (Proportion)
+10 10 Liquid volumetric soil moisture (non-frozen) (m3 m-3)
+11 11 Volumetric transpiration stress-onset (soil moisture) (m3 m-3)
+12 12 Transpiration stress-onset (soil moisture) (kg m-3)
+13 13 Volumetric direct evaporation cease (soil moisture) (m3 m-3)
+14 14 Direct evaporation cease (soil moisture) (kg m-3)
+15 15 Soil porosity (m3 m-3)
+16 16 Volumetric saturation of soil moisture (m3 m-3)
+17 17 Saturation of soil moisture (kg m-3)
+18 18 Soil temperature (K)
+19 19 Soil moisture (kg m-3)
+20 20 Column-integrated soil moisture (kg m-2)
+21 21 Soil ice (kg m-3)
+22 22 Column-integrated soil ice (kg m-2)
+23 23 Liquid water in snow pack (kg m-2)
+24 24 Frost index (K day-1)
+25 25 Snow depth at elevation bands (kg m-2)
+26 26 Soil heat flux (W m-2)
+27 27 Soil depth (m)
+28 28 Snow temperature (K)
+29 29 Ice temperature (K)
+30 30 Soil wetness index (Numeric)
+# 31-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.2.4.table b/definitions/grib2/tables/33/4.2.2.4.table
new file mode 100644
index 000000000..0ea44a18c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.2.4.table
@@ -0,0 +1,41 @@
+# Product discipline 2 - Land surface products, parameter category 4: fire weather products
+0 0 Fire outlook (Code table 4.224)
+1 1 Fire outlook due to dry thunderstorm (Code table 4.224)
+2 2 Haines index (Numeric)
+3 3 Fire burned area (%)
+4 4 Fosberg index (Numeric)
+5 5 Forest Fire Weather Index (as defined by the Canadian Forest Service) (Numeric)
+6 6 Fine Fuel Moisture Code (as defined by the Canadian Forest Service) (Numeric)
+7 7 Duff Moisture Code (as defined by the Canadian Forest Service) (Numeric)
+8 8 Drought Code (as defined by the Canadian Forest Service) (Numeric)
+9 9 Initial Fire Spread Index (as defined by the Canadian Forest Service) (Numeric)
+10 10 Fire Buildup Index (as defined by the Canadian Forest Service) (Numeric)
+11 11 Fire Daily Severity Rating (as defined by the Canadian Forest Service) (Numeric)
+12 12 Keetch-Byram drought index (Numeric)
+13 13 Drought factor (as defined by the Australian forest service ) (Numeric)
+14 14 Rate of spread (as defined by the Australian forest service ) (m/s)
+15 15 Fire danger index (as defined by the Australian forest service ) (Numeric)
+16 16 Spread component (as defined by the US Forest Service National Fire Danger Rating System) (Numeric)
+17 17 Burning index (as defined by the US Forest Service National Fire Danger Rating System) (Numeric)
+18 18 Ignition component (as defined by the US Forest Service National Fire Danger Rating System) (%)
+19 19 Energy release component (as defined by the US Forest Service National Fire Danger Rating System) (Joule/m2)
+20 20 Burning area (%)
+21 21 Burnable area (%)
+22 22 Unburnable area (%)
+23 23 Fuel load (kg m-2)
+24 24 Combustion completeness (%)
+25 25 Fuel moisture content (kg kg-1)
+26 26 Wildfire potential (as defined by the US NOAA Global Systems Laboratory) (Numeric)
+27 27 Live leaf fuel load (kg m-2)
+28 28 Live wood fuel load (kg m-2)
+29 29 Dead leaf fuel load (kg m-2)
+30 30 Dead wood fuel load (kg m-2)
+31 31 Live fuel moisture content (kg kg-1)
+32 32 Fine dead leaf moisture content (kg kg-1)
+33 33 Dense dead leaf moisture content (kg kg-1)
+34 34 Fine dead wood moisture content (kg kg-1)
+35 35 Dense dead wood moisture content (kg kg-1)
+36 36 Fire radiative power (W)
+# 37-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.2.5.table b/definitions/grib2/tables/33/4.2.2.5.table
new file mode 100644
index 000000000..1d08dd573
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.2.5.table
@@ -0,0 +1,6 @@
+# Product discipline 2 - Land surface products, parameter category 5: glaciers and inland ice
+0 0 Glacier cover (Proportion)
+1 1 Glacier temperature (K)
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.2.6.table b/definitions/grib2/tables/33/4.2.2.6.table
new file mode 100644
index 000000000..7a7712af0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.2.6.table
@@ -0,0 +1,13 @@
+# Product discipline 2 - Land surface products, parameter category 6: urban areas
+0 0 Urban cover (Proportion)
+1 1 Road cover (Proportion)
+2 2 Building cover (Proportion)
+3 3 Building height (m)
+4 4 Vertical-to-horizontal area fraction (m2 m-2)
+5 5 Standard deviation of building height (m)
+6 6 Distance downward from roof surface (m)
+7 7 Distance inward from outer wall surface (m)
+8 8 Distance downward from road surface (m)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.20.0.table b/definitions/grib2/tables/33/4.2.20.0.table
new file mode 100644
index 000000000..a997371d9
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.20.0.table
@@ -0,0 +1,13 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 0: health indicators
+0 0 Universal thermal climate index (K)
+1 1 Mean radiant temperature (K)
+2 2 Wet-bulb globe temperature (K)
+3 3 Globe temperature (K)
+4 4 Humidex (K)
+5 5 Effective temperature (K)
+6 6 Normal effective temperature (K)
+7 7 Standard effective temperature (K)
+8 8 Physiological equivalent temperature (K)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.20.1.table b/definitions/grib2/tables/33/4.2.20.1.table
new file mode 100644
index 000000000..0712cd8d1
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.20.1.table
@@ -0,0 +1,14 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 1: epidemiology
+0 0 Malaria cases (Fraction)
+1 1 Malaria circumsporozoite protein rate (Fraction)
+2 2 Plasmodium falciparum entomological inoculation rate (Bites per day per person)
+3 3 Human bite rate by anopheles vectors (Bites per day per person)
+4 4 Malaria immunity (Fraction)
+5 5 Falciparum parasite rates (Fraction)
+6 6 Detectable falciparum parasite ratio (after day 10) (Fraction)
+7 7 Anopheles vector to host ratio (Fraction)
+8 8 Anopheles vector number (Number m-2)
+9 9 Fraction of malarial vector reproductive habitat (Fraction)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.20.2.table b/definitions/grib2/tables/33/4.2.20.2.table
new file mode 100644
index 000000000..d6b9083d1
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.20.2.table
@@ -0,0 +1,5 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 2: socioeconomic indicators
+0 0 Population density (Person m-2)
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.20.3.table b/definitions/grib2/tables/33/4.2.20.3.table
new file mode 100644
index 000000000..9c2f80cfa
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.20.3.table
@@ -0,0 +1,14 @@
+# Product discipline 20 - Health and socioeconomic impacts, parameter category 3: renewable energy sector
+0 0 Renewable power capacity (W)
+1 1 Renewable power production rate (W)
+2 2 Wind power capacity (W)
+3 3 Wind power production rate (W)
+4 4 Solar photovoltaic (PV) power capacity (W)
+5 5 Solar photovoltaic (PV) power production rate (W)
+6 6 Solar non-photovoltaic (PV) power capacity (W)
+7 7 Solar non-photovoltaic (PV) power production rate (W)
+8 8 Concentrated solar power (CSP) power capacity (W)
+9 9 Concentrated solar power (CSP) power production rate (W)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.3.0.table b/definitions/grib2/tables/33/4.2.3.0.table
new file mode 100644
index 000000000..0bec15119
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.0.table
@@ -0,0 +1,14 @@
+# Product discipline 3 - Space products, parameter category 0: image format products
+0 0 Scaled radiance (Numeric)
+1 1 Scaled albedo (Numeric)
+2 2 Scaled brightness temperature (Numeric)
+3 3 Scaled precipitable water (Numeric)
+4 4 Scaled lifted index (Numeric)
+5 5 Scaled cloud top pressure (Numeric)
+6 6 Scaled skin temperature (Numeric)
+7 7 Cloud mask (Code table 4.217)
+8 8 Pixel scene type (Code table 4.218)
+9 9 Fire detection indicator (Code table 4.223)
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.3.1.table b/definitions/grib2/tables/33/4.2.3.1.table
new file mode 100644
index 000000000..2aec33b42
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.1.table
@@ -0,0 +1,38 @@
+# Product discipline 3 - Space products, parameter category 1: quantitative products
+0 0 Estimated precipitation (kg m-2)
+1 1 Instantaneous rain rate (kg m-2 s-1)
+2 2 Cloud top height (m)
+3 3 Cloud top height quality indicator (Code table 4.219)
+4 4 Estimated u-component of wind (m/s)
+5 5 Estimated v-component of wind (m/s)
+6 6 Number of pixel used (Numeric)
+7 7 Solar zenith angle (deg)
+8 8 Relative azimuth angle (deg)
+9 9 Reflectance in 0.6 micron channel (%)
+10 10 Reflectance in 0.8 micron channel (%)
+11 11 Reflectance in 1.6 micron channel (%)
+12 12 Reflectance in 3.9 micron channel (%)
+13 13 Atmospheric divergence (/s)
+14 14 Cloudy brightness temperature (K)
+15 15 Clear-sky brightness temperature (K)
+16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
+17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
+18 18 Reserved
+19 19 Wind speed (m/s)
+20 20 Aerosol optical thickness at 0.635 um
+21 21 Aerosol optical thickness at 0.810 um
+22 22 Aerosol optical thickness at 1.640 um
+23 23 Angstrom coefficient
+# 24-26 Reserved
+27 27 Bidirectional reflectance factor (Numeric)
+28 28 Brightness temperature (K)
+29 29 Scaled radiance (Numeric)
+30 30 Reflectance in 0.4 micron channel (%)
+31 31 Cloudy reflectance (%)
+32 32 Clear reflectance (%)
+# 33-97 Reserved
+98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric)
+99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1)
+# 100-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.3.2.table b/definitions/grib2/tables/33/4.2.3.2.table
new file mode 100644
index 000000000..a97ce4942
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.2.table
@@ -0,0 +1,24 @@
+# Product discipline 3 - Space products, parameter category 2: cloud properties
+0 0 Clear sky probability (%)
+1 1 Cloud top temperature (K)
+2 2 Cloud top pressure (Pa)
+3 3 Cloud type (Code table 4.218)
+4 4 Cloud phase (Code table 4.218)
+5 5 Cloud optical depth (Numeric)
+6 6 Cloud particle effective radius (m)
+7 7 Cloud liquid water path (kg m-2)
+8 8 Cloud ice water path (kg m-2)
+9 9 Cloud albedo (Numeric)
+10 10 Cloud emissivity (Numeric)
+11 11 Effective absorption optical depth ratio (Numeric)
+30 30 Measurement cost (Numeric)
+31 31 Upper layer cloud optical depth (Numeric)
+32 32 Upper layer cloud top pressure (Pa)
+33 33 Upper layer cloud effective radius (m)
+34 34 Error in upper layer cloud optical depth (Numeric)
+35 35 Error in upper layer cloud top pressure (Pa)
+36 36 Error in upper layer cloud effective radius (m)
+37 37 Lower layer cloud optical depth (Numeric)
+38 38 Lower layer cloud top pressure (Pa)
+39 39 Error in lower layer cloud optical depth (Numeric)
+40 40 Error in lower layer cloud top pressure (Pa)
diff --git a/definitions/grib2/tables/33/4.2.3.3.table b/definitions/grib2/tables/33/4.2.3.3.table
new file mode 100644
index 000000000..c487a578e
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.3.table
@@ -0,0 +1,4 @@
+# Product discipline 3 - Space products, parameter category 3: flight rule conditions
+0 0 Probability of encountering marginal visual flight rule conditions (%)
+1 1 Probability of encountering low instrument flight rule conditions (%)
+2 2 Probability of encountering instrument flight rule conditions (%)
diff --git a/definitions/grib2/tables/33/4.2.3.4.table b/definitions/grib2/tables/33/4.2.3.4.table
new file mode 100644
index 000000000..7f832ff3c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.4.table
@@ -0,0 +1,10 @@
+# Product discipline 3 - Space products, parameter category 4: volcanic ash
+0 0 Volcanic ash probability (%)
+1 1 Volcanic ash cloud top temperature (K)
+2 2 Volcanic ash cloud top pressure (Pa)
+3 3 Volcanic ash cloud top height (m)
+4 4 Volcanic ash cloud emissivity (Numeric)
+5 5 Volcanic ash effective absorption optical depth ratio (Numeric)
+6 6 Volcanic ash cloud optical depth (Numeric)
+7 7 Volcanic ash column density (kg m-2)
+8 8 Volcanic ash particle effective radius (m)
diff --git a/definitions/grib2/tables/33/4.2.3.5.table b/definitions/grib2/tables/33/4.2.3.5.table
new file mode 100644
index 000000000..58a3f12cb
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.5.table
@@ -0,0 +1,7 @@
+# Product discipline 3 - Space products, parameter category 5: sea-surface temperature
+0 0 Interface sea-surface temperature (K)
+1 1 Skin sea-surface temperature (K)
+2 2 Sub-skin sea-surface temperature (K)
+3 3 Foundation sea-surface temperature (K)
+4 4 Estimated bias between sea-surface temperature and standard (K)
+5 5 Estimated standard deviation between sea surface temperature and standard (K)
diff --git a/definitions/grib2/tables/33/4.2.3.6.table b/definitions/grib2/tables/33/4.2.3.6.table
new file mode 100644
index 000000000..62a5ba656
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.3.6.table
@@ -0,0 +1,7 @@
+# Product discipline 3 - Space products, parameter category 6: solar radiation
+0 0 Global solar irradiance (W m-2)
+1 1 Global solar exposure (J m-2)
+2 2 Direct solar irradiance (W m-2)
+3 3 Direct solar exposure (J m-2)
+4 4 Diffuse solar irradiance (W m-2)
+5 5 Diffuse solar exposure (J m-2)
diff --git a/definitions/grib2/tables/33/4.2.4.0.table b/definitions/grib2/tables/33/4.2.4.0.table
new file mode 100644
index 000000000..337308305
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.0.table
@@ -0,0 +1,10 @@
+# Product discipline 4 - Space weather products, parameter category 0: temperature
+0 0 Temperature (K)
+1 1 Electron temperature (K)
+2 2 Proton temperature (K)
+3 3 Ion temperature (K)
+4 4 Parallel temperature (K)
+5 5 Perpendicular temperature (K)
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.1.table b/definitions/grib2/tables/33/4.2.4.1.table
new file mode 100644
index 000000000..9ec11160f
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.1.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 1: momentum
+0 0 Velocity magnitude (speed) (m s-1)
+1 1 1st vector component of velocity (coordinate system dependent) (m s-1)
+2 2 2nd vector component of velocity (coordinate system dependent) (m s-1)
+3 3 3rd vector component of velocity (coordinate system dependent) (m s-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.10.table b/definitions/grib2/tables/33/4.2.4.10.table
new file mode 100644
index 000000000..8f5b19e06
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.10.table
@@ -0,0 +1,12 @@
+# Product discipline 4 - Space weather products, parameter category 10: space weather indices
+0 0 Scintillation index (sigma phi) (rad)
+1 1 Scintillation index S4 (Numeric)
+2 2 Rate of change of TEC index (ROTI) (TECU/min)
+3 3 Disturbance ionosphere index spatial gradient (DIXSG) (Numeric)
+4 4 Along arc TEC rate (AATR) (TECU/min)
+5 5 Kp (Numeric)
+6 6 Equatorial disturbance storm time index (Dst) (nT)
+7 7 Auroral electrojet (AE) (nT)
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.2.table b/definitions/grib2/tables/33/4.2.4.2.table
new file mode 100644
index 000000000..b479b3361
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.2.table
@@ -0,0 +1,18 @@
+# Product discipline 4 - Space weather products, parameter category 2: charged particle mass and number
+0 0 Particle number density (m-3)
+1 1 Electron density (m-3)
+2 2 Proton density (m-3)
+3 3 Ion density (m-3)
+4 4 Vertical total electron content (TECU)
+5 5 HF absorption frequency (Hz)
+6 6 HF absorption (dB)
+7 7 Spread F (m)
+8 8 h'F (m)
+9 9 Critical frequency (Hz)
+10 10 Maximal usable frequency (MUF) (Hz)
+11 11 Peak height (hm) (m)
+12 12 Peak density (Nm) (m-3)
+13 13 Equivalent slab thickness (tau) (km)
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.3.table b/definitions/grib2/tables/33/4.2.4.3.table
new file mode 100644
index 000000000..3b752bbbc
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.3.table
@@ -0,0 +1,12 @@
+# Product discipline 4 - Space weather products, parameter category 3: electric and magnetic fields
+0 0 Magnetic field magnitude (T)
+1 1 1st vector component of magnetic field (T)
+2 2 2nd vector component of magnetic field (T)
+3 3 3rd vector component of magnetic field (T)
+4 4 Electric field magnitude (V m-1)
+5 5 1st vector component of electric field (V m-1)
+6 6 2nd vector component of electric field (V m-1)
+7 7 3rd vector component of electric field (V m-1)
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.4.table b/definitions/grib2/tables/33/4.2.4.4.table
new file mode 100644
index 000000000..694c8cacc
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.4.table
@@ -0,0 +1,11 @@
+# Product discipline 4 - Space weather products, parameter category 4: energetic particles
+0 0 Proton flux (differential) ((m2 s sr eV)-1)
+1 1 Proton flux (integral) ((m2 s sr )-1)
+2 2 Electron flux (differential) ((m2 s sr eV)-1)
+3 3 Electron flux (integral) ((m2 s sr)-1)
+4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1)
+5 5 Heavy ion flux (integral) ((m2 s sr)-1)
+6 6 Cosmic ray neutron flux (h-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.5.table b/definitions/grib2/tables/33/4.2.4.5.table
new file mode 100644
index 000000000..913efec6f
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.5.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 5: waves
+0 0 Amplitude (dB)
+1 1 Phase (rad)
+2 2 Frequency (Hz)
+3 3 Wavelength (m)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.6.table b/definitions/grib2/tables/33/4.2.4.6.table
new file mode 100644
index 000000000..6d13019a6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.6.table
@@ -0,0 +1,11 @@
+# Product discipline 4 - Space weather products, parameter category 6: solar electromagnetic emissions
+0 0 Integrated solar irradiance (W m-2)
+1 1 Solar X-ray flux (XRS long) (W m-2)
+2 2 Solar X-ray flux (XRS short) (W m-2)
+3 3 Solar EUV irradiance (W m-2)
+4 4 Solar spectral irradiance (W m-2 nm-1)
+5 5 F10.7 (W m-2 Hz-1)
+6 6 Solar radio emissions (W m-2 Hz-1)
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.7.table b/definitions/grib2/tables/33/4.2.4.7.table
new file mode 100644
index 000000000..38c2b17a8
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.7.table
@@ -0,0 +1,8 @@
+# Product discipline 4 - Space weather products, parameter category 7: terrestrial electromagnetic emissions
+0 0 Limb intensity (J m-2 s-1)
+1 1 Disk intensity (J m-2 s-1)
+2 2 Disk intensity day (J m-2 s-1)
+3 3 Disk intensity night (J m-2 s-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.8.table b/definitions/grib2/tables/33/4.2.4.8.table
new file mode 100644
index 000000000..f350f4807
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.8.table
@@ -0,0 +1,13 @@
+# Product discipline 4 - Space weather products, parameter category 8: imagery
+0 0 X-ray radiance (W sr-1 m-2)
+1 1 EUV radiance (W sr-1 m-2)
+2 2 H-alpha radiance (W sr-1 m-2)
+3 3 White light radiance (W sr-1 m-2)
+4 4 CaII-K radiance (W sr-1 m-2)
+5 5 White light coronagraph radiance (W sr-1 m-2)
+6 6 Heliospheric radiance (W sr-1 m-2)
+7 7 Thematic mask (Numeric)
+8 8 Solar induced chlorophyll fluorescence (W m-2 sr-1 m-1)
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.2.4.9.table b/definitions/grib2/tables/33/4.2.4.9.table
new file mode 100644
index 000000000..0e83436e2
--- /dev/null
+++ b/definitions/grib2/tables/33/4.2.4.9.table
@@ -0,0 +1,7 @@
+# Product discipline 4 - Space weather products, parameter category 9: ion-neutral coupling
+0 0 Pedersen conductivity (S m-1)
+1 1 Hall conductivity (S m-1)
+2 2 Parallel conductivity (S m-1)
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.201.table b/definitions/grib2/tables/33/4.201.table
new file mode 100644
index 000000000..a725e4e65
--- /dev/null
+++ b/definitions/grib2/tables/33/4.201.table
@@ -0,0 +1,17 @@
+# Code table 4.201 - Precipitation type
+0 0 No precipitation
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+6 6 Wet snow
+7 7 Mixture of rain and snow
+8 8 Ice pellets
+9 9 Graupel
+10 10 Hail
+11 11 Drizzle
+12 12 Freezing drizzle
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.202.table b/definitions/grib2/tables/33/4.202.table
new file mode 100644
index 000000000..7f3c8f6cf
--- /dev/null
+++ b/definitions/grib2/tables/33/4.202.table
@@ -0,0 +1,4 @@
+# Code table 4.202 - Precipitable water category
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.203.table b/definitions/grib2/tables/33/4.203.table
new file mode 100644
index 000000000..cf5eb6bdc
--- /dev/null
+++ b/definitions/grib2/tables/33/4.203.table
@@ -0,0 +1,26 @@
+# Code table 4.203 - Cloud type
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.204.table b/definitions/grib2/tables/33/4.204.table
new file mode 100644
index 000000000..8e0be1f8c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.204.table
@@ -0,0 +1,9 @@
+# Code table 4.204 - Thunderstorm coverage
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (6-45%)
+4 4 Numerous (> 45%)
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.205.table b/definitions/grib2/tables/33/4.205.table
new file mode 100644
index 000000000..c40c7f47b
--- /dev/null
+++ b/definitions/grib2/tables/33/4.205.table
@@ -0,0 +1,6 @@
+# Code table 4.205 - Presence of aerosol
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.206.table b/definitions/grib2/tables/33/4.206.table
new file mode 100644
index 000000000..76472c261
--- /dev/null
+++ b/definitions/grib2/tables/33/4.206.table
@@ -0,0 +1,6 @@
+# Code table 4.206 - Volcanic ash
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.207.table b/definitions/grib2/tables/33/4.207.table
new file mode 100644
index 000000000..b6392fca0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.207.table
@@ -0,0 +1,10 @@
+# Code table 4.207 - Icing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.208.table b/definitions/grib2/tables/33/4.208.table
new file mode 100644
index 000000000..4361d38c0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.208.table
@@ -0,0 +1,9 @@
+# Code table 4.208 - Turbulence
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.209.table b/definitions/grib2/tables/33/4.209.table
new file mode 100644
index 000000000..39ea549ac
--- /dev/null
+++ b/definitions/grib2/tables/33/4.209.table
@@ -0,0 +1,9 @@
+# Code table 4.209 - Planetary boundary-layer regime
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.210.table b/definitions/grib2/tables/33/4.210.table
new file mode 100644
index 000000000..791878469
--- /dev/null
+++ b/definitions/grib2/tables/33/4.210.table
@@ -0,0 +1,6 @@
+# Code table 4.210 - Contrail intensity
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.211.table b/definitions/grib2/tables/33/4.211.table
new file mode 100644
index 000000000..2a28a84d9
--- /dev/null
+++ b/definitions/grib2/tables/33/4.211.table
@@ -0,0 +1,7 @@
+# Code table 4.211 - Contrail engine type
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.212.table b/definitions/grib2/tables/33/4.212.table
new file mode 100644
index 000000000..6a3dcf88c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.212.table
@@ -0,0 +1,18 @@
+# Code table 4.212 - Land use
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.213.table b/definitions/grib2/tables/33/4.213.table
new file mode 100644
index 000000000..68d627af6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.213.table
@@ -0,0 +1,16 @@
+# Code table 4.213 - Soil type
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.214.table b/definitions/grib2/tables/33/4.214.table
new file mode 100644
index 000000000..b08860ce0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.214.table
@@ -0,0 +1,11 @@
+# Code table 4.214 - Environmental Factor Qualifier
+0 0 Worst
+1 1 Very poor
+2 2 Poor
+3 3 Average
+4 4 Good
+5 5 Excellent
+# 6-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.215.table b/definitions/grib2/tables/33/4.215.table
new file mode 100644
index 000000000..7888772d5
--- /dev/null
+++ b/definitions/grib2/tables/33/4.215.table
@@ -0,0 +1,9 @@
+# Code table 4.215 - Remotely sensed snow coverage
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.216.table b/definitions/grib2/tables/33/4.216.table
new file mode 100644
index 000000000..b51b358f4
--- /dev/null
+++ b/definitions/grib2/tables/33/4.216.table
@@ -0,0 +1,5 @@
+# Code table 4.216 - Elevation of snow-covered terrain
+# 0-90 Elevation in increments of 100 m
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.217.table b/definitions/grib2/tables/33/4.217.table
new file mode 100644
index 000000000..a700410d5
--- /dev/null
+++ b/definitions/grib2/tables/33/4.217.table
@@ -0,0 +1,8 @@
+# Code table 4.217 - Cloud mask type
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.218.table b/definitions/grib2/tables/33/4.218.table
new file mode 100644
index 000000000..a13debf16
--- /dev/null
+++ b/definitions/grib2/tables/33/4.218.table
@@ -0,0 +1,46 @@
+# Code table 4.218 - Pixel scene type
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation/crops
+15 15 Permanent snow/ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+19 19 Warm liquid water cloud
+20 20 Supercooled liquid water cloud
+21 21 Mixed-phase cloud
+22 22 Optically thin ice cloud
+23 23 Optically thick ice cloud
+24 24 Multilayered cloud
+# 25-96 Reserved
+97 97 Snow/ice on land
+98 98 Snow/ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud/fog/stratus
+102 102 Low cloud/stratocumulus
+103 103 Low cloud/unknown type
+104 104 Medium cloud/nimbostratus
+105 105 Medium cloud/altostratus
+106 106 Medium cloud/unknown type
+107 107 High cloud/cumulus
+108 108 High cloud/cirrus
+109 109 High cloud/unknown
+110 110 Unknown cloud type
+111 111 Single layer water cloud
+112 112 Single layer ice cloud
+# 113-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.219.table b/definitions/grib2/tables/33/4.219.table
new file mode 100644
index 000000000..9979f50ad
--- /dev/null
+++ b/definitions/grib2/tables/33/4.219.table
@@ -0,0 +1,8 @@
+# Code table 4.219 - Cloud top height quality indicator
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.220.table b/definitions/grib2/tables/33/4.220.table
new file mode 100644
index 000000000..88e869e42
--- /dev/null
+++ b/definitions/grib2/tables/33/4.220.table
@@ -0,0 +1,6 @@
+# Code table 4.220 - Horizontal dimension processed
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.221.table b/definitions/grib2/tables/33/4.221.table
new file mode 100644
index 000000000..011cc3518
--- /dev/null
+++ b/definitions/grib2/tables/33/4.221.table
@@ -0,0 +1,6 @@
+# Code table 4.221 - Treatment of missing data
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.222.table b/definitions/grib2/tables/33/4.222.table
new file mode 100644
index 000000000..558d947ac
--- /dev/null
+++ b/definitions/grib2/tables/33/4.222.table
@@ -0,0 +1,6 @@
+# Code table 4.222 - Categorical result
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.223.table b/definitions/grib2/tables/33/4.223.table
new file mode 100644
index 000000000..572c4e7a8
--- /dev/null
+++ b/definitions/grib2/tables/33/4.223.table
@@ -0,0 +1,5 @@
+# Code table 4.223 - Fire detection indicator
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing
diff --git a/definitions/grib2/tables/33/4.224.table b/definitions/grib2/tables/33/4.224.table
new file mode 100644
index 000000000..014f56e23
--- /dev/null
+++ b/definitions/grib2/tables/33/4.224.table
@@ -0,0 +1,18 @@
+# Code table 4.224 - Categorical outlook
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.225.table b/definitions/grib2/tables/33/4.225.table
new file mode 100644
index 000000000..9dc374087
--- /dev/null
+++ b/definitions/grib2/tables/33/4.225.table
@@ -0,0 +1,2 @@
+# Code table 4.225 - Weather (see FM 94 BUFR/FM 95 CREX Code table 0 20 003 - Present weather)
+511 511 Missing value
diff --git a/definitions/grib2/tables/33/4.227.table b/definitions/grib2/tables/33/4.227.table
new file mode 100644
index 000000000..48c3b7633
--- /dev/null
+++ b/definitions/grib2/tables/33/4.227.table
@@ -0,0 +1,9 @@
+# Code table 4.227 - Icing scenario (weather/cloud classification)
+0 0 None
+1 1 General
+2 2 Convective
+3 3 Stratiform
+4 4 Freezing
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.228.table b/definitions/grib2/tables/33/4.228.table
new file mode 100644
index 000000000..048a69f0b
--- /dev/null
+++ b/definitions/grib2/tables/33/4.228.table
@@ -0,0 +1,8 @@
+# Code table 4.228 - Icing severity
+0 0 None
+1 1 Trace
+2 2 Light
+3 3 Moderate
+4 4 Severe
+# 5-254 Reserved
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.230.table b/definitions/grib2/tables/33/4.230.table
new file mode 100644
index 000000000..1871fb176
--- /dev/null
+++ b/definitions/grib2/tables/33/4.230.table
@@ -0,0 +1,601 @@
+# Code table 4.230 - Atmospheric chemical constituent type
+0 0 Ozone O3
+1 1 Water vapour H2O
+2 2 Methane CH4
+3 3 Carbon dioxide CO2
+4 4 Carbon monoxide CO
+5 5 Nitrogen dioxide NO2
+6 6 Nitrous oxide N2O
+7 7 Formaldehyde HCHO
+8 8 Sulphur dioxide SO2
+9 9 Ammonia NH3
+10 10 Ammonium cation NH4+
+11 11 Nitrogen monoxide NO
+12 12 Atomic oxygen O
+13 13 Nitrate radical NO3*
+14 14 Hydroperoxyl radical HOO*
+15 15 Dinitrogen pentoxide N2O5
+16 16 Nitrous acid HONO
+17 17 Nitric acid HNO3
+18 18 Peroxynitric acid HO2NO2
+19 19 Hydrogen peroxide H2O2
+20 20 Dihydrogen H2
+21 21 Atomic nitrogen N
+22 22 Sulphate anion SO42-
+23 23 Atomic Radon Rn
+24 24 Mercury vapour Hg(0)
+25 25 Mercury(II) cation Hg2+
+26 26 Atomic chlorine Cl
+27 27 Chlorine monoxide ClO
+28 28 Dichlorine peroxide Cl2O2
+29 29 Hypochlorous acid HClO
+30 30 Chlorine nitrate ClONO2
+31 31 Chlorine dioxide ClO2
+32 32 Atomic bromine Br
+33 33 Bromine monoxide BrO
+34 34 Bromine chloride BrCl
+35 35 Hydrogen bromide HBr
+36 36 Hypobromous acid HBrO
+37 37 Bromine nitrate BrONO2
+38 38 Dioxygen O2
+39 39 Nitryl chloride NO2Cl
+40 40 Sulphuric acid H2SO4
+41 41 Hydrogen sulphide H2S
+42 42 Sulphur trioxide SO3
+43 43 Bromine Br2
+44 44 Hydrofluoric acid HF
+45 45 Sulphur hexafluoride SF6
+46 46 Chlorine Cl2
+# 47-9999 Reserved
+10000 10000 Hydroxyl radical HO*
+10001 10001 Methyl peroxy radical CH3OO*
+10002 10002 Methyl hydroperoxide CH3OOH
+10004 10004 Methanol CH3OH
+10005 10005 Formic acid HCOOH
+10006 10006 Hydrogen cyanide HCN
+10007 10007 Aceto nitrile CH3CN
+10008 10008 Ethane C2H6
+10009 10009 Ethene (= Ethylene) C2H4
+10010 10010 Ethyne (= Acetylene) C2H2
+10011 10011 Ethanol C2H5OH
+10012 10012 Acetic acid C2H5OOH
+10013 10013 Peroxyacetyl nitrate CH3C(O)OONO2
+10014 10014 Propane C3H8
+10015 10015 Propene C3H6
+10016 10016 Butane (all isomers) C4H10
+10017 10017 Isoprene C5H10
+10018 10018 Alpha pinene C10H16
+10019 10019 Beta pinene C10H16
+10020 10020 Limonene C10H16
+10021 10021 Benzene C6H6
+10022 10022 Toluene C7H8
+10023 10023 Xylene C8H10
+10024 10024 Methanesulphonic acid CH3SO3H
+10025 10025 Methylglyoxal (2-oxopropanal) CH3C(O)CHO
+10026 10026 Peroxyacetyl radical CH3C(O)OO*
+10027 10027 Methacrylic acid (2-methylprop-2-enoic acid) CH2C(CH3)COOH
+10028 10028 Methacrolein (2-methylprop-2-enal) CH2C(CH3)CHO
+10029 10029 Acetone (propan-2-one) CH3C(O)CH3
+10030 10030 Ethyl dioxidanyl radical CH3CH2OO*
+10031 10031 Butadiene (buta-1,3-diene) (CH2CH)2
+10032 10032 Acetaldehyde (ethanal) CH3CHO
+10033 10033 Glycolaldehyde (hydroxyethanal) HOCH2CHO
+10034 10034 Cresol (methylphenol), all isomers CH3C6H4OH
+10035 10035 Peracetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10036 10036 2-hydroxyethyl oxidanyl radical HOCH2CH2O*
+10037 10037 2-hydroxyethyl dioxidanyl radical HOCH2CH2OO*
+10038 10038 Glyoxal (oxaldehyde) OCHCHO
+10039 10039 Isopropyl dioxidanyl radical (CH3)2CHOO*
+10040 10040 Isopropyl hydroperoxide (2-hydroperoxypropane) (CH3)2CHOOH
+10041 10041 Hydroxyacetone (1-hydroxypropan-2-one) CH3C(O)CH2OH
+10042 10042 Peroxyacetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10043 10043 Methyl vinyl ketone (but-3-en-2-one) CH3C(O)CHCH2
+10044 10044 Phenoxy radical C6H5O*
+10045 10045 Methyl radical CH3*
+10046 10046 Carbonyl sulphide (carbon oxide sulphide) OCS
+10047 10047 Dibromomethane CH2Br2
+10048 10048 Methoxy radical CH3O*
+10049 10049 Tribromomethane CHBr3
+10050 10050 Formyl radical (oxomethyl radical) HOC*
+10051 10051 Hydroxymethyl dioxidanyl radical HOCH2OO*
+10052 10052 Ethyl hydroperoxide CH3CH2OOH
+10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO*
+10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH
+10055 10055 Methyl-peroxy-nitrate (nitroperoxy-methane) CH3OONO2
+10056 10056 2-lambda^1-oxidanyloxy-2-methylbut-3-en-1-ol (4-hydroxy-3-methyl-1-butene-3-ylperoxy radical) HOCH2C(CH3)(OO*)CHCH2
+10057 10057 2-lambda^1-oxidanyloxy-3-methylbut-3-en-1-ol (2-hydroxy-1-isopropenylethylperoxy radical) HOCH2CH(OO*)C(CH3)CH2
+10058 10058 (Z)-4-hydroperoxy-2-methyl-2-butenal CH2(OOH)CHC(CH3)CHO
+10059 10059 (Z)-4-hydroperoxy-3-methyl-2-butenal CH2(OOH)C(CH3)CHCHO
+# 10060-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, etc.)
+10500 10500 Dimethyl sulphide CH3SCH3 (DMS)
+10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO
+# 10502-20000 Reserved
+20001 20001 Hydrogen chloride HCl
+20002 20002 CFC-11 (trichlorofluoromethane) CCl3F
+20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2
+20004 20004 CFC-113 (1,1,2-trichloro-1,2,2-trifluoroethane) Cl2FC-CClF2
+20005 20005 CFC-113a (1,1,1-trichloro-2,2,2-trifluoroethane) Cl3C-CF3
+20006 20006 CFC-114 (1,2-dichloro-1,1,2,2-tetrafluoroethane) ClF2C-CClF2
+20007 20007 CFC-115 (1-chloro-1,1,2,2,2-pentafluoroethane) ClF2C-CF3
+20008 20008 HCFC-22 (chlorodifluoromethane) CHClF2
+20009 20009 HCFC-141b (1,1-dichloro-1-fluoroethane) Cl2FC-CH3
+20010 20010 HCFC-142b (1-chloro-1,1-difluoroethane) ClF2C-CH3
+20011 20011 Halon-1202 (dibromodifluoromethane) CBr2F2
+20012 20012 Halon-1211 (bromochlorodifluoromethane) CBrClF2
+20013 20013 Halon-1301 (bromotrifluoromethane) CBrF3
+20014 20014 Halon-2402 (1,2-dibromo-1,1,2,2-tetrafluoroethane) BrF2C-CBrF2
+20015 20015 HCC-40 (methyl chloride) CH3Cl
+20016 20016 HCC-10 (carbon tetrachloride) CCl4
+20017 20017 HCC-140a (1,1,1-trichloroethane) Cl3C-CH3
+20018 20018 HBC-40B1 (methyl bromide) CH3Br
+20019 20019 HCH (hexachlorocyclohexane) all isomers C6H6Cl6
+20020 20020 alpha-HCH (alpha-hexachlorocyclohexane) both enantiomers alpha-C6H6Cl6
+20021 20021 PCB-153 (2,2',4,4',5,5'-hexachlorobiphenyl) (C6H2Cl3)2
+20022 20022 HCFC-141a (1,1-dichloro-2-fluoroethane) Cl2HC-CH2F
+# 20023-29999 Reserved
+30000 30000 Radioactive pollutant (tracer, defined by originating centre)
+# 30001-30009 Reserved
+30010 30010 Tritium (Hydrogen 3) H-3
+30011 30011 Tritium organic bounded H-3o
+30012 30012 Tritium inorganic H-3a
+30013 30013 Beryllium 7 Be-7
+30014 30014 Beryllium 10 Be-10
+30015 30015 Carbon 14 C-14
+30016 30016 Carbon 14 CO2 C-14CO2
+30017 30017 Carbon 14 other gases C-14og
+30018 30018 Nitrogen 13 N-13
+30019 30019 Nitrogen 16 N-16
+30020 30020 Fluorine 18 F-18
+30021 30021 Sodium 22 Na-22
+30022 30022 Phosphate 32 P-32
+30023 30023 Phosphate 33 P-33
+30024 30024 Sulphur 35 S-35
+30025 30025 Chlorine 36 Cl-36
+30026 30026 Potassium 40 K-40
+30027 30027 Argon 41 Ar-41
+30028 30028 Calcium 41 Ca-41
+30029 30029 Calcium 45 Ca-45
+30030 30030 Titanium 44 Ti-44
+30031 30031 Scandium 46 Sc-46
+30032 30032 Vanadium 48 V-48
+30033 30033 Vanadium 49 V-49
+30034 30034 Chrome 51 Cr-51
+30035 30035 Manganese 52 Mn-52
+30036 30036 Manganese 54 Mn-54
+30037 30037 Iron 55 Fe-55
+30038 30038 Iron 59 Fe-59
+30039 30039 Cobalt 56 Co-56
+30040 30040 Cobalt 57 Co-57
+30041 30041 Cobalt 58 Co-58
+30042 30042 Cobalt 60 Co-60
+30043 30043 Nickel 59 Ni-59
+30044 30044 Nickel 63 Ni-63
+30045 30045 Zinc 65 Zn-65
+30046 30046 Gallium 67 Ga-67
+30047 30047 Gallium 68 Ga-68
+30048 30048 Germanium 68 Ge-68
+30049 30049 Germanium 69 Ge-69
+30050 30050 Arsenic 73 As-73
+30051 30051 Selenium 75 Se-75
+30052 30052 Selenium 79 Se-79
+30053 30053 Rubidium 81 Rb-81
+30054 30054 Rubidium 83 Rb-83
+30055 30055 Rubidium 84 Rb-84
+30056 30056 Rubidium 86 Rb-86
+30057 30057 Rubidium 87 Rb-87
+30058 30058 Rubidium 88 Rb-88
+30059 30059 Krypton 85 Kr-85
+30060 30060 Krypton 85 metastable Kr-85m
+30061 30061 Krypton 87 Kr-87
+30062 30062 Krypton 88 Kr-88
+30063 30063 Krypton 89 Kr-89
+30064 30064 Strontium 85 Sr-85
+30065 30065 Strontium 89 Sr-89
+30066 30066 Strontium 89/90 Sr-8990
+30067 30067 Strontium 90 Sr-90
+30068 30068 Strontium 91 Sr-91
+30069 30069 Strontium 92 Sr-92
+30070 30070 Yttrium 87 Y-87
+30071 30071 Yttrium 88 Y-88
+30072 30072 Yttrium 90 Y-90
+30073 30073 Yttrium 91 Y-91
+30074 30074 Yttrium 91 metastable Y-91m
+30075 30075 Yttrium 92 Y-92
+30076 30076 Yttrium 93 Y-93
+30077 30077 Zirconium 89 Zr-89
+30078 30078 Zirconium 93 Zr-93
+30079 30079 Zirconium 95 Zr-95
+30080 30080 Zirconium 97 Zr-97
+30081 30081 Niobium 93 metastable Nb-93m
+30082 30082 Niobium 94 Nb-94
+30083 30083 Niobium 95 Nb-95
+30084 30084 Niobium 95 metastable Nb-95m
+30085 30085 Niobium 97 Nb-97
+30086 30086 Niobium 97 metastable Nb-97m
+30087 30087 Molybdenum 93 Mo-93
+30088 30088 Molybdenum 99 Mo-99
+30089 30089 Technetium 95 metastable Tc-95m
+30090 30090 Technetium 96 Tc-96
+30091 30091 Technetium 99 Tc-99
+30092 30092 Technetium 99 metastable Tc-99m
+30093 30093 Rhodium 99 Rh-99
+30094 30094 Rhodium 101 Rh-101
+30095 30095 Rhodium 102 metastable Rh-102m
+30096 30096 Rhodium 103 metastable Rh-103m
+30097 30097 Rhodium 105 Rh-105
+30098 30098 Rhodium 106 Rh-106
+30099 30099 Palladium 100 Pd-100
+30100 30100 Palladium 103 Pd-103
+30101 30101 Palladium 107 Pd-107
+30102 30102 Ruthenium 103 Ru-103
+30103 30103 Ruthenium 105 Ru-105
+30104 30104 Ruthenium 106 Ru-106
+30105 30105 Silver 108 metastable Ag-108m
+30106 30106 Silver 110 metastable Ag-110m
+30107 30107 Cadmium 109 Cd-109
+30108 30108 Cadmium 113 metastable Cd-113m
+30109 30109 Cadmium 115 metastable Cd-115m
+30110 30110 Indium 114 metastable In-114m
+30111 30111 Tin 113 Sn-113
+30112 30112 Tin 119 metastable Sn-119m
+30113 30113 Tin 121 metastable Sn-121m
+30114 30114 Tin 122 Sn-122
+30115 30115 Tin 123 Sn-123
+30116 30116 Tin 126 Sn-126
+30117 30117 Antimony 124 Sb-124
+30118 30118 Antimony 125 Sb-125
+30119 30119 Antimony 126 Sb-126
+30120 30120 Antimony 127 Sb-127
+30121 30121 Antimony 129 Sb-129
+30122 30122 Tellurium 123 metastable Te-123m
+30123 30123 Tellurium 125 metastable Te-125m
+30124 30124 Tellurium 127 Te-127
+30125 30125 Tellurium 127 metastable Te-127m
+30126 30126 Tellurium 129 Te-129
+30127 30127 Tellurium 129 metastable Te-129m
+30128 30128 Tellurium 131 metastable Te-131m
+30129 30129 Tellurium 132 Te-132
+30130 30130 Iodine 123 I-123
+30131 30131 Iodine 124 I-124
+30132 30132 Iodine 125 I-125
+30133 30133 Iodine 126 I-126
+30134 30134 Iodine 129 I-129
+30135 30135 Iodine 129 elementary gaseous I-129g
+30136 30136 Iodine 129 organic bounded I-129o
+30137 30137 Iodine 131 I-131
+30138 30138 Iodine 131 elementary gaseous I-131g
+30139 30139 Iodine 131 organic bounded I-131o
+30140 30140 Iodine 131 gaseous elementary and organic bounded I-131go
+30141 30141 Iodine 131 aerosol I-131a
+30142 30142 Iodine 132 I-132
+30143 30143 Iodine 132 elementary gaseous I-132g
+30144 30144 Iodine 132 organic bounded I-132o
+30145 30145 Iodine 132 gaseous elementary and organic bounded I-132go
+30146 30146 Iodine 132 aerosol I-132a
+30147 30147 Iodine 133 I-133
+30148 30148 Iodine 133 elementary gaseous I-133g
+30149 30149 Iodine 133 organic bounded I-133o
+30150 30150 Iodine 133 gaseous elementary and organic bounded I-133go
+30151 30151 Iodine 133 aerosol I-133a
+30152 30152 Iodine 134 I-134
+30153 30153 Iodine 134 elementary gaseous I-134g
+30154 30154 Iodine 134 organic bounded I-134o
+30155 30155 Iodine 135 I-135
+30156 30156 Iodine 135 elementary gaseous I-135g
+30157 30157 Iodine 135 organic bounded I-135o
+30158 30158 Iodine 135 gaseous elementary and organic bounded I-135go
+30159 30159 Iodine 135 aerosol I-135a
+30160 30160 Xenon 131 metastable Xe-131m
+30161 30161 Xenon 133 Xe-133
+30162 30162 Xenon 133 metastable Xe-133m
+30163 30163 Xenon 135 Xe-135
+30164 30164 Xenon 135 metastable Xe-135m
+30165 30165 Xenon 137 Xe-137
+30166 30166 Xenon 138 Xe-138
+30167 30167 Xenon sum of all Xenon isotopes Xe-sum
+30168 30168 Caesium 131 Cs-131
+30169 30169 Caesium 134 Cs-134
+30170 30170 Caesium 135 Cs-135
+30171 30171 Caesium 136 Cs-136
+30172 30172 Caesium 137 Cs-137
+30173 30173 Barium 133 Ba-133
+30174 30174 Barium 137 metastable Ba-137m
+30175 30175 Barium 140 Ba-140
+30176 30176 Cerium 139 Ce-139
+30177 30177 Cerium 141 Ce-141
+30178 30178 Cerium 143 Ce-143
+30179 30179 Cerium 144 Ce-144
+30180 30180 Lanthanum 140 La-140
+30181 30181 Lanthanum 141 La-141
+30182 30182 Praseodymium 143 Pr-143
+30183 30183 Praseodymium 144 Pr-144
+30184 30184 Praseodymium 144 metastable Pr-144m
+30185 30185 Samarium 145 Sm-145
+30186 30186 Samarium 147 Sm-147
+30187 30187 Samarium 151 Sm-151
+30188 30188 Neodymium 147 Nd-147
+30189 30189 Promethium 146 Pm-146
+30190 30190 Promethium 147 Pm-147
+30191 30191 Promethium 151 Pm-151
+30192 30192 Europium 152 Eu-152
+30193 30193 Europium 154 Eu-154
+30194 30194 Europium 155 Eu-155
+30195 30195 Gadolinium 153 Gd-153
+30196 30196 Terbium 160 Tb-160
+30197 30197 Holmium 166 metastable Ho-166m
+30198 30198 Thulium 170 Tm-170
+30199 30199 Ytterbium 169 Yb-169
+30200 30200 Hafnium 175 Hf-175
+30201 30201 Hafnium 181 Hf-181
+30202 30202 Tantalum 179 Ta-179
+30203 30203 Tantalum 182 Ta-182
+30204 30204 Rhenium 184 Re-184
+30205 30205 Iridium 192 Ir-192
+30206 30206 Mercury 203 Hg-203
+30207 30207 Thallium 204 Tl-204
+30208 30208 Thallium 207 Tl-207
+30209 30209 Thallium 208 Tl-208
+30210 30210 Thallium 209 Tl-209
+30211 30211 Bismuth 205 Bi-205
+30212 30212 Bismuth 207 Bi-207
+30213 30213 Bismuth 210 Bi-210
+30214 30214 Bismuth 211 Bi-211
+30215 30215 Bismuth 212 Bi-212
+30216 30216 Bismuth 213 Bi-213
+30217 30217 Bismuth 214 Bi-214
+30218 30218 Polonium 208 Po-208
+30219 30219 Polonium 210 Po-210
+30220 30220 Polonium 212 Po-212
+30221 30221 Polonium 213 Po-213
+30222 30222 Polonium 214 Po-214
+30223 30223 Polonium 215 Po-215
+30224 30224 Polonium 216 Po-216
+30225 30225 Polonium 218 Po-218
+30226 30226 Lead 209 Pb-209
+30227 30227 Lead 210 Pb-210
+30228 30228 Lead 211 Pb-211
+30229 30229 Lead 212 Pb-212
+30230 30230 Lead 214 Pb-214
+30231 30231 Astatine 217 At-217
+30232 30232 Radon 219 Rn-219
+30233 30233 Radon 220 Rn-220
+30234 30234 Radon 222 Rn-222
+30235 30235 Francium 221 Fr-221
+30236 30236 Francium 223 Fr-223
+30237 30237 Radium 223 Ra-223
+30238 30238 Radium 224 Ra-224
+30239 30239 Radium 225 Ra-225
+30240 30240 Radium 226 Ra-226
+30241 30241 Radium 228 Ra-228
+30242 30242 Actinium 225 Ac-225
+30243 30243 Actinium 227 Ac-227
+30244 30244 Actinium 228 Ac-228
+30245 30245 Thorium 227 Th-227
+30246 30246 Thorium 228 Th-228
+30247 30247 Thorium 229 Th-229
+30248 30248 Thorium 230 Th-230
+30249 30249 Thorium 231 Th-231
+30250 30250 Thorium 232 Th-232
+30251 30251 Thorium 234 Th-234
+30252 30252 Protactinium 231 Pa-231
+30253 30253 Protactinium 233 Pa-233
+30254 30254 Protactinium 234 metastable Pa-234m
+30255 30255 Uranium 232 U-232
+30256 30256 Uranium 233 U-233
+30257 30257 Uranium 234 U-234
+30258 30258 Uranium 235 U-235
+30259 30259 Uranium 236 U-236
+30260 30260 Uranium 237 U-237
+30261 30261 Uranium 238 U-238
+30262 30262 Plutonium 236 Pu-236
+30263 30263 Plutonium 238 Pu-238
+30264 30264 Plutonium 239 Pu-239
+30265 30265 Plutonium 240 Pu-240
+30266 30266 Plutonium 241 Pu-241
+30267 30267 Plutonium 242 Pu-242
+30268 30268 Plutonium 244 Pu-244
+30269 30269 Neptunium 237 Np-237
+30270 30270 Neptunium 238 Np-238
+30271 30271 Neptunium 239 Np-239
+30272 30272 Americium 241 Am-241
+30273 30273 Americium 242 Am-242
+30274 30274 Americium 242 metastable Am-242m
+30275 30275 Americium 243 Am-243
+30276 30276 Curium 242 Cm-242
+30277 30277 Curium 243 Cm-243
+30278 30278 Curium 244 Cm-244
+30279 30279 Curium 245 Cm-245
+30280 30280 Curium 246 Cm-246
+30281 30281 Curium 247 Cm-247
+30282 30282 Curium 248 Cm-248
+30283 30283 Curium 243/244 Cm-243244
+30284 30284 Plutonium 238/Americium 241 Pu-238Am-241
+30285 30285 Plutonium 239/240 Pu-239240
+30286 30286 Berkelium 249 Bk-249
+30287 30287 Californium 249 Cf-249
+30288 30288 Californium 250 Cf-250
+30289 30289 Californium 252 Cf-252
+30290 30290 Sum aerosol particulates SumAer
+30291 30291 Sum Iodine SumIod
+30292 30292 Sum noble gas SumNG
+30293 30293 Activation gas ActGas
+30294 30294 Cs-137 Equivalent EquCs137
+30295 30295 Carbon-13 C-13
+30296 30296 Lead Pb
+30297 30297 Tellurium 131 Te-131
+30298 30298 Neodymium 137 Nd-137
+30299 30299 Pseudo radionuclide
+30300 30300 Silver 112 Ag-112
+30301 30301 Silver 115 Ag-115
+30302 30302 Barium 139 Ba-139
+30303 30303 Barium 141 Ba-141
+30304 30304 Barium 142 Ba-142
+30305 30305 Bromine 84 Br-84
+30306 30306 Cadminum 115 Cd-115
+30307 30307 Cadminum 117 Cd-117
+30308 30308 Cadminum 117 metastable Cd-117m
+30309 30309 Cerium 145 Ce-145
+30310 30310 Cerium 146 Ce-146
+30311 30311 Cobalt 58 metastable Co-58m
+30312 30312 Ceasium 138 Cs-138
+30313 30313 Ceasium 139 Cs-139
+30314 30314 Iodine 130 aerosol I-130a
+30315 30315 Iodine 130 elementary gaseous I-130e
+30316 30316 Iodine 130 organic bounded I-130o
+30317 30317 Iodine 132 metastable I-132m
+30318 30318 Iodine 134 metastable I-134m
+30319 30319 Indium 115 metastable In-115m
+30320 30320 Indium 117 metastable In-117m
+30321 30321 Krypton 83 metastable Kr-83m
+30322 30322 Lanthanum 142 La-142
+30323 30323 Lanthanum 143 La-143
+30324 30324 Manganese 56 Mn-56
+30325 30325 Molybdenum 101 Mo-101
+30326 30326 Molybdenum 102 Mo-102
+30327 30327 Neodymium 149 Nd-149
+30328 30328 Neodymium 151 Nd-151
+30329 30329 Palladium 109 Pd-109
+30330 30330 Palladium 112 Pd-112
+30331 30331 Praseodymium 145 Pr-145
+30332 30332 Praseodymium 146 Pr-146
+30333 30333 Praseodymium 147 Pr-147
+30334 30334 Rubidium 89 Rb-89
+30335 30335 Rubidium 90 Rb-90
+30336 30336 Rubidium 90 metastable Rb-90m
+30337 30337 Rhodium 105 metastable Rh-105m
+30338 30338 Rhodium 107 Rh-107
+30339 30339 Antimony 128 Sb-128
+30340 30340 Antimony 128 metastable Sb-128m
+30341 30341 Antimony 129 metastable Sb-129m
+30342 30342 Antimony 130 Sb-130
+30343 30343 Antimony 130 metastable Sb-130m
+30344 30344 Antimony 131 Sb-131
+30345 30345 Antimony 132 Sb-132
+30346 30346 Antimony 132 metastable Sb-132m
+30347 30347 Antimony 133 Sb-133
+30348 30348 Selenium 83 Se-83
+30349 30349 Tin 127 Sn-127
+30350 30350 Tin 127 metastable Sn-127m
+30351 30351 Tin 128 Sn-128
+30352 30352 Tin 129 metastable Sn-129m
+30353 30353 Tin 130 Sn-130
+30354 30354 Strontium 93 Sr-93
+30355 30355 Technetium 101 Tc-101
+30356 30356 Technetium 102 Tc-102
+30357 30357 Technetium 104 Tc-104
+30358 30358 Technetium 105 Tc-105
+30359 30359 Tellurium 133 Te-133
+30360 30360 Tellurium 133 metastable Te-133m
+30361 30361 Tellurium 134 Te-134
+30362 30362 Yttrium 93 metastable Y-93m
+30363 30363 Yttrium 94 Y-94
+30364 30364 Yttrium 95 Y-95
+30365 30365 Zirconium 96 Zr-96
+# 30366-39999 Reserved
+40000 40000 Singlet sigma oxygen (dioxygen (sigma singlet)) O2
+40001 40001 Singlet delta oxygen (dioxygen (delta singlet)) O2
+40002 40002 Singlet excited oxygen atom O(1D)
+40003 40003 Triplet ground state oxygen atom O(3P)
+# 40004-59999 Reserved
+60000 60000 HOx radical (OH+HO2) HOx*
+60001 60001 Total inorganic and organic peroxy radicals (HOO* + ROO*) ROO*
+60002 60002 Passive Ozone
+60003 60003 NOx expressed as nitrogen NOx
+60004 60004 All nitrogen oxides (NOy) expressed as nitrogen NOy
+60005 60005 Total inorganic chlorine Clx
+60006 60006 Total inorganic bromine Brx
+60007 60007 Total inorganic chlorine except HCl, ClONO2: ClOx
+60008 60008 Total inorganic bromine except HBr, BrONO2: BrOx
+60009 60009 Lumped alkanes
+60010 60010 Lumped alkenes
+60011 60011 Lumped aromatic compounds
+60012 60012 Lumped terpenes
+60013 60013 Non-methane volatile organic compounds expressed as carbon NMVOC
+60014 60014 Anthropogenic non-methane volatile organic compounds expressed as carbon aNMVOC
+60015 60015 Biogenic non-methane volatile organic compounds expressed as carbon bNMVOC
+60016 60016 Lumped oxygenated hydrocarbons OVOC
+60017 60017 NOx expressed as nitrogen dioxide (NO2) NOx
+60018 60018 Organic aldehydes RCHO
+60019 60019 Organic peroxides ROOH
+60020 60020 Organic nitrates RNO3
+60021 60021 Ethers ROR'
+60022 60022 Amines NRR'R''
+60023 60023 Ketones RC(O)R'
+60024 60024 Dicarbonyls unsaturated RC(O)CH2C(O)R'
+60025 60025 Hydroxy dicarbonyls unsaturated RC(O)CHOHC(O)R'
+60026 60026 Hydroxy ketones RC(OH)C(O)R'
+60027 60027 Oxides Ox
+60028 60028 Peroxyacyl nitrates RC(O)OONO2
+60029 60029 Aromatic peroxide radical (Aryl dioxydanyl radicals) ArOO*
+60030 60030 Biogenic secondary organic compound
+60031 60031 Anthropogenic secondary organic compound
+60032 60032 All hydroxy-peroxides products of the reaction of hydroxy-isoprene adducts with O2 ISOPOOH
+60033 60033 Anthropogenic volatile organic compounds aVOC
+60034 60034 Biomass burning volatile organic compounds bbVOC
+# 60035-61999 Reserved
+62000 62000 Total aerosol
+62001 62001 Dust dry
+62002 62002 Water in ambient
+62003 62003 Ammonium dry
+62004 62004 Nitrate dry
+62005 62005 Nitric acid trihydrate
+62006 62006 Sulphate dry
+62007 62007 Mercury dry
+62008 62008 Sea salt dry
+62009 62009 Black carbon dry
+62010 62010 Particulate organic matter dry
+62011 62011 Primary particulate organic matter dry
+62012 62012 Secondary particulate organic matter dry
+62013 62013 Black carbon hydrophilic dry
+62014 62014 Black carbon hydrophobic dry
+62015 62015 Particulate organic matter hydrophilic dry
+62016 62016 Particulate organic matter hydrophobic dry
+62017 62017 Nitrate hydrophilic dry
+62018 62018 Nitrate hydrophobic dry
+# 62019 Reserved
+62020 62020 Smoke - high absorption
+62021 62021 Smoke - low absorption
+62022 62022 Aerosol - high absorption
+62023 62023 Aerosol - low absorption
+# 62024 Reserved
+62025 62025 Volcanic ash
+62026 62026 Particulate matter (PM)
+# 62027 Reserved
+62028 62028 Total aerosol hydrophilic
+62029 62029 Total aerosol hydrophobic
+62030 62030 Primary particulate inorganic matter dry
+62031 62031 Secondary particulate inorganic matter dry
+62032 62032 Biogenic secondary organic aerosol
+62033 62033 Anthropogenic secondary organic aerosol
+62034 62034 Rain water H2Orain
+62035 62035 Cloud water H2Ocloud
+62036 62036 Brown carbon dry
+# 62037-62099 Reserved
+62100 62100 Alnus (alder) pollen
+62101 62101 Betula (birch) pollen
+62102 62102 Castanea (chestnut) pollen
+62103 62103 Carpinus (hornbeam) pollen
+62104 62104 Corylus (hazel) pollen
+62105 62105 Fagus (beech) pollen
+62106 62106 Fraxinus (ash) pollen
+62107 62107 Pinus (pine) pollen
+62108 62108 Platanus (plane) pollen
+62109 62109 Populus (cottonwood, poplar) pollen
+62110 62110 Quercus (oak) pollen
+62111 62111 Salix (willow) pollen
+62112 62112 Taxus (yew) pollen
+62113 62113 Tilia (lime, linden) pollen
+62114 62114 Ulmus (elm) pollen
+62115 62115 Olea (olive) pollen
+# 62116-62199 Reserved
+62200 62200 Ambrosia (ragweed, burr-ragweed) pollen
+62201 62201 Artemisia (sagebrush, wormwood, mugwort) pollen
+62202 62202 Brassica (rape, broccoli, Brussels sprouts, cabbage, cauliflower, collards, kale, kohlrabi, mustard, rutabaga) pollen
+62203 62203 Plantago (plantain) pollen
+62204 62204 Rumex (dock, sorrel) pollen
+62205 62205 Urtica (nettle) pollen
+# 62206-62299 Reserved
+62300 62300 Poaceae (grass family) pollen
+# 62301-62999 Reserved
+# 63000-65534 For experimental use at local level
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/4.233.table b/definitions/grib2/tables/33/4.233.table
new file mode 100644
index 000000000..00b837c93
--- /dev/null
+++ b/definitions/grib2/tables/33/4.233.table
@@ -0,0 +1,601 @@
+# Code table 4.233 - Aerosol type
+0 0 Ozone O3
+1 1 Water vapour H2O
+2 2 Methane CH4
+3 3 Carbon dioxide CO2
+4 4 Carbon monoxide CO
+5 5 Nitrogen dioxide NO2
+6 6 Nitrous oxide N2O
+7 7 Formaldehyde HCHO
+8 8 Sulphur dioxide SO2
+9 9 Ammonia NH3
+10 10 Ammonium cation NH4+
+11 11 Nitrogen monoxide NO
+12 12 Atomic oxygen O
+13 13 Nitrate radical NO3*
+14 14 Hydroperoxyl radical HOO*
+15 15 Dinitrogen pentoxide N2O5
+16 16 Nitrous acid HONO
+17 17 Nitric acid HNO3
+18 18 Peroxynitric acid HO2NO2
+19 19 Hydrogen peroxide H2O2
+20 20 Dihydrogen H2
+21 21 Atomic nitrogen N
+22 22 Sulphate anion SO42-
+23 23 Atomic Radon Rn
+24 24 Mercury vapour Hg(0)
+25 25 Mercury(II) cation Hg2+
+26 26 Atomic chlorine Cl
+27 27 Chlorine monoxide ClO
+28 28 Dichlorine peroxide Cl2O2
+29 29 Hypochlorous acid HClO
+30 30 Chlorine nitrate ClONO2
+31 31 Chlorine dioxide ClO2
+32 32 Atomic bromine Br
+33 33 Bromine monoxide BrO
+34 34 Bromine chloride BrCl
+35 35 Hydrogen bromide HBr
+36 36 Hypobromous acid HBrO
+37 37 Bromine nitrate BrONO2
+38 38 Dioxygen O2
+39 39 Nitryl chloride NO2Cl
+40 40 Sulphuric acid H2SO4
+41 41 Hydrogen sulphide H2S
+42 42 Sulphur trioxide SO3
+43 43 Bromine Br2
+44 44 Hydrofluoric acid HF
+45 45 Sulphur hexafluoride SF6
+46 46 Chlorine Cl2
+# 47-9999 Reserved
+10000 10000 Hydroxyl radical HO*
+10001 10001 Methyl peroxy radical CH3OO*
+10002 10002 Methyl hydroperoxide CH3OOH
+10004 10004 Methanol CH3OH
+10005 10005 Formic acid HCOOH
+10006 10006 Hydrogen cyanide HCN
+10007 10007 Aceto nitrile CH3CN
+10008 10008 Ethane C2H6
+10009 10009 Ethene (= Ethylene) C2H4
+10010 10010 Ethyne (= Acetylene) C2H2
+10011 10011 Ethanol C2H5OH
+10012 10012 Acetic acid C2H5OOH
+10013 10013 Peroxyacetyl nitrate CH3C(O)OONO2
+10014 10014 Propane C3H8
+10015 10015 Propene C3H6
+10016 10016 Butane (all isomers) C4H10
+10017 10017 Isoprene C5H10
+10018 10018 Alpha pinene C10H16
+10019 10019 Beta pinene C10H16
+10020 10020 Limonene C10H16
+10021 10021 Benzene C6H6
+10022 10022 Toluene C7H8
+10023 10023 Xylene C8H10
+10024 10024 Methanesulphonic acid CH3SO3H
+10025 10025 Methylglyoxal (2-oxopropanal) CH3C(O)CHO
+10026 10026 Peroxyacetyl radical CH3C(O)OO*
+10027 10027 Methacrylic acid (2-methylprop-2-enoic acid) CH2C(CH3)COOH
+10028 10028 Methacrolein (2-methylprop-2-enal) CH2C(CH3)CHO
+10029 10029 Acetone (propan-2-one) CH3C(O)CH3
+10030 10030 Ethyl dioxidanyl radical CH3CH2OO*
+10031 10031 Butadiene (buta-1,3-diene) (CH2CH)2
+10032 10032 Acetaldehyde (ethanal) CH3CHO
+10033 10033 Glycolaldehyde (hydroxyethanal) HOCH2CHO
+10034 10034 Cresol (methylphenol), all isomers CH3C6H4OH
+10035 10035 Peracetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10036 10036 2-hydroxyethyl oxidanyl radical HOCH2CH2O*
+10037 10037 2-hydroxyethyl dioxidanyl radical HOCH2CH2OO*
+10038 10038 Glyoxal (oxaldehyde) OCHCHO
+10039 10039 Isopropyl dioxidanyl radical (CH3)2CHOO*
+10040 10040 Isopropyl hydroperoxide (2-hydroperoxypropane) (CH3)2CHOOH
+10041 10041 Hydroxyacetone (1-hydroxypropan-2-one) CH3C(O)CH2OH
+10042 10042 Peroxyacetic acid (ethaneperoxoic acid) CH3C(O)OOH
+10043 10043 Methyl vinyl ketone (but-3-en-2-one) CH3C(O)CHCH2
+10044 10044 Phenoxy radical C6H5O*
+10045 10045 Methyl radical CH3*
+10046 10046 Carbonyl sulphide (carbon oxide sulphide) OCS
+10047 10047 Dibromomethane CH2Br2
+10048 10048 Methoxy radical CH3O*
+10049 10049 Tribromomethane CHBr3
+10050 10050 Formyl radical (oxomethyl radical) HOC*
+10051 10051 Hydroxymethyl dioxidanyl radical HOCH2OO*
+10052 10052 Ethyl hydroperoxide CH3CH2OOH
+10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO*
+10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH
+10055 10055 Methyl-peroxy-nitrate (nitroperoxy-methane) CH3OONO2
+10056 10056 2-lambda^1-oxidanyloxy-2-methylbut-3-en-1-ol (4-hydroxy-3-methyl-1-butene-3-ylperoxy radical) HOCH2C(CH3)(OO*)CHCH2
+10057 10057 2-lambda^1-oxidanyloxy-3-methylbut-3-en-1-ol (2-hydroxy-1-isopropenylethylperoxy radical) HOCH2CH(OO*)C(CH3)CH2
+10058 10058 (Z)-4-hydroperoxy-2-methyl-2-butenal CH2(OOH)CHC(CH3)CHO
+10059 10059 (Z)-4-hydroperoxy-3-methyl-2-butenal CH2(OOH)C(CH3)CHCHO
+# 10060-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, etc.)
+10500 10500 Dimethyl sulphide CH3SCH3 (DMS)
+10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO
+# 10502-20000 Reserved
+20001 20001 Hydrogen chloride HCl
+20002 20002 CFC-11 (trichlorofluoromethane) CCl3F
+20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2
+20004 20004 CFC-113 (1,1,2-trichloro-1,2,2-trifluoroethane) Cl2FC-CClF2
+20005 20005 CFC-113a (1,1,1-trichloro-2,2,2-trifluoroethane) Cl3C-CF3
+20006 20006 CFC-114 (1,2-dichloro-1,1,2,2-tetrafluoroethane) ClF2C-CClF2
+20007 20007 CFC-115 (1-chloro-1,1,2,2,2-pentafluoroethane) ClF2C-CF3
+20008 20008 HCFC-22 (chlorodifluoromethane) CHClF2
+20009 20009 HCFC-141b (1,1-dichloro-1-fluoroethane) Cl2FC-CH3
+20010 20010 HCFC-142b (1-chloro-1,1-difluoroethane) ClF2C-CH3
+20011 20011 Halon-1202 (dibromodifluoromethane) CBr2F2
+20012 20012 Halon-1211 (bromochlorodifluoromethane) CBrClF2
+20013 20013 Halon-1301 (bromotrifluoromethane) CBrF3
+20014 20014 Halon-2402 (1,2-dibromo-1,1,2,2-tetrafluoroethane) BrF2C-CBrF2
+20015 20015 HCC-40 (methyl chloride) CH3Cl
+20016 20016 HCC-10 (carbon tetrachloride) CCl4
+20017 20017 HCC-140a (1,1,1-trichloroethane) Cl3C-CH3
+20018 20018 HBC-40B1 (methyl bromide) CH3Br
+20019 20019 HCH (hexachlorocyclohexane) all isomers C6H6Cl6
+20020 20020 alpha-HCH (alpha-hexachlorocyclohexane) both enantiomers alpha-C6H6Cl6
+20021 20021 PCB-153 (2,2',4,4',5,5'-hexachlorobiphenyl) (C6H2Cl3)2
+20022 20022 HCFC-141a (1,1-dichloro-2-fluoroethane) Cl2HC-CH2F
+# 20023-29999 Reserved
+30000 30000 Radioactive pollutant (tracer, defined by originating centre)
+# 30001-30009 Reserved
+30010 30010 Tritium (Hydrogen 3) H-3
+30011 30011 Tritium organic bounded H-3o
+30012 30012 Tritium inorganic H-3a
+30013 30013 Beryllium 7 Be-7
+30014 30014 Beryllium 10 Be-10
+30015 30015 Carbon 14 C-14
+30016 30016 Carbon 14 CO2 C-14CO2
+30017 30017 Carbon 14 other gases C-14og
+30018 30018 Nitrogen 13 N-13
+30019 30019 Nitrogen 16 N-16
+30020 30020 Fluorine 18 F-18
+30021 30021 Sodium 22 Na-22
+30022 30022 Phosphate 32 P-32
+30023 30023 Phosphate 33 P-33
+30024 30024 Sulphur 35 S-35
+30025 30025 Chlorine 36 Cl-36
+30026 30026 Potassium 40 K-40
+30027 30027 Argon 41 Ar-41
+30028 30028 Calcium 41 Ca-41
+30029 30029 Calcium 45 Ca-45
+30030 30030 Titanium 44 Ti-44
+30031 30031 Scandium 46 Sc-46
+30032 30032 Vanadium 48 V-48
+30033 30033 Vanadium 49 V-49
+30034 30034 Chrome 51 Cr-51
+30035 30035 Manganese 52 Mn-52
+30036 30036 Manganese 54 Mn-54
+30037 30037 Iron 55 Fe-55
+30038 30038 Iron 59 Fe-59
+30039 30039 Cobalt 56 Co-56
+30040 30040 Cobalt 57 Co-57
+30041 30041 Cobalt 58 Co-58
+30042 30042 Cobalt 60 Co-60
+30043 30043 Nickel 59 Ni-59
+30044 30044 Nickel 63 Ni-63
+30045 30045 Zinc 65 Zn-65
+30046 30046 Gallium 67 Ga-67
+30047 30047 Gallium 68 Ga-68
+30048 30048 Germanium 68 Ge-68
+30049 30049 Germanium 69 Ge-69
+30050 30050 Arsenic 73 As-73
+30051 30051 Selenium 75 Se-75
+30052 30052 Selenium 79 Se-79
+30053 30053 Rubidium 81 Rb-81
+30054 30054 Rubidium 83 Rb-83
+30055 30055 Rubidium 84 Rb-84
+30056 30056 Rubidium 86 Rb-86
+30057 30057 Rubidium 87 Rb-87
+30058 30058 Rubidium 88 Rb-88
+30059 30059 Krypton 85 Kr-85
+30060 30060 Krypton 85 metastable Kr-85m
+30061 30061 Krypton 87 Kr-87
+30062 30062 Krypton 88 Kr-88
+30063 30063 Krypton 89 Kr-89
+30064 30064 Strontium 85 Sr-85
+30065 30065 Strontium 89 Sr-89
+30066 30066 Strontium 89/90 Sr-8990
+30067 30067 Strontium 90 Sr-90
+30068 30068 Strontium 91 Sr-91
+30069 30069 Strontium 92 Sr-92
+30070 30070 Yttrium 87 Y-87
+30071 30071 Yttrium 88 Y-88
+30072 30072 Yttrium 90 Y-90
+30073 30073 Yttrium 91 Y-91
+30074 30074 Yttrium 91 metastable Y-91m
+30075 30075 Yttrium 92 Y-92
+30076 30076 Yttrium 93 Y-93
+30077 30077 Zirconium 89 Zr-89
+30078 30078 Zirconium 93 Zr-93
+30079 30079 Zirconium 95 Zr-95
+30080 30080 Zirconium 97 Zr-97
+30081 30081 Niobium 93 metastable Nb-93m
+30082 30082 Niobium 94 Nb-94
+30083 30083 Niobium 95 Nb-95
+30084 30084 Niobium 95 metastable Nb-95m
+30085 30085 Niobium 97 Nb-97
+30086 30086 Niobium 97 metastable Nb-97m
+30087 30087 Molybdenum 93 Mo-93
+30088 30088 Molybdenum 99 Mo-99
+30089 30089 Technetium 95 metastable Tc-95m
+30090 30090 Technetium 96 Tc-96
+30091 30091 Technetium 99 Tc-99
+30092 30092 Technetium 99 metastable Tc-99m
+30093 30093 Rhodium 99 Rh-99
+30094 30094 Rhodium 101 Rh-101
+30095 30095 Rhodium 102 metastable Rh-102m
+30096 30096 Rhodium 103 metastable Rh-103m
+30097 30097 Rhodium 105 Rh-105
+30098 30098 Rhodium 106 Rh-106
+30099 30099 Palladium 100 Pd-100
+30100 30100 Palladium 103 Pd-103
+30101 30101 Palladium 107 Pd-107
+30102 30102 Ruthenium 103 Ru-103
+30103 30103 Ruthenium 105 Ru-105
+30104 30104 Ruthenium 106 Ru-106
+30105 30105 Silver 108 metastable Ag-108m
+30106 30106 Silver 110 metastable Ag-110m
+30107 30107 Cadmium 109 Cd-109
+30108 30108 Cadmium 113 metastable Cd-113m
+30109 30109 Cadmium 115 metastable Cd-115m
+30110 30110 Indium 114 metastable In-114m
+30111 30111 Tin 113 Sn-113
+30112 30112 Tin 119 metastable Sn-119m
+30113 30113 Tin 121 metastable Sn-121m
+30114 30114 Tin 122 Sn-122
+30115 30115 Tin 123 Sn-123
+30116 30116 Tin 126 Sn-126
+30117 30117 Antimony 124 Sb-124
+30118 30118 Antimony 125 Sb-125
+30119 30119 Antimony 126 Sb-126
+30120 30120 Antimony 127 Sb-127
+30121 30121 Antimony 129 Sb-129
+30122 30122 Tellurium 123 metastable Te-123m
+30123 30123 Tellurium 125 metastable Te-125m
+30124 30124 Tellurium 127 Te-127
+30125 30125 Tellurium 127 metastable Te-127m
+30126 30126 Tellurium 129 Te-129
+30127 30127 Tellurium 129 metastable Te-129m
+30128 30128 Tellurium 131 metastable Te-131m
+30129 30129 Tellurium 132 Te-132
+30130 30130 Iodine 123 I-123
+30131 30131 Iodine 124 I-124
+30132 30132 Iodine 125 I-125
+30133 30133 Iodine 126 I-126
+30134 30134 Iodine 129 I-129
+30135 30135 Iodine 129 elementary gaseous I-129g
+30136 30136 Iodine 129 organic bounded I-129o
+30137 30137 Iodine 131 I-131
+30138 30138 Iodine 131 elementary gaseous I-131g
+30139 30139 Iodine 131 organic bounded I-131o
+30140 30140 Iodine 131 gaseous elementary and organic bounded I-131go
+30141 30141 Iodine 131 aerosol I-131a
+30142 30142 Iodine 132 I-132
+30143 30143 Iodine 132 elementary gaseous I-132g
+30144 30144 Iodine 132 organic bounded I-132o
+30145 30145 Iodine 132 gaseous elementary and organic bounded I-132go
+30146 30146 Iodine 132 aerosol I-132a
+30147 30147 Iodine 133 I-133
+30148 30148 Iodine 133 elementary gaseous I-133g
+30149 30149 Iodine 133 organic bounded I-133o
+30150 30150 Iodine 133 gaseous elementary and organic bounded I-133go
+30151 30151 Iodine 133 aerosol I-133a
+30152 30152 Iodine 134 I-134
+30153 30153 Iodine 134 elementary gaseous I-134g
+30154 30154 Iodine 134 organic bounded I-134o
+30155 30155 Iodine 135 I-135
+30156 30156 Iodine 135 elementary gaseous I-135g
+30157 30157 Iodine 135 organic bounded I-135o
+30158 30158 Iodine 135 gaseous elementary and organic bounded I-135go
+30159 30159 Iodine 135 aerosol I-135a
+30160 30160 Xenon 131 metastable Xe-131m
+30161 30161 Xenon 133 Xe-133
+30162 30162 Xenon 133 metastable Xe-133m
+30163 30163 Xenon 135 Xe-135
+30164 30164 Xenon 135 metastable Xe-135m
+30165 30165 Xenon 137 Xe-137
+30166 30166 Xenon 138 Xe-138
+30167 30167 Xenon sum of all Xenon isotopes Xe-sum
+30168 30168 Caesium 131 Cs-131
+30169 30169 Caesium 134 Cs-134
+30170 30170 Caesium 135 Cs-135
+30171 30171 Caesium 136 Cs-136
+30172 30172 Caesium 137 Cs-137
+30173 30173 Barium 133 Ba-133
+30174 30174 Barium 137 metastable Ba-137m
+30175 30175 Barium 140 Ba-140
+30176 30176 Cerium 139 Ce-139
+30177 30177 Cerium 141 Ce-141
+30178 30178 Cerium 143 Ce-143
+30179 30179 Cerium 144 Ce-144
+30180 30180 Lanthanum 140 La-140
+30181 30181 Lanthanum 141 La-141
+30182 30182 Praseodymium 143 Pr-143
+30183 30183 Praseodymium 144 Pr-144
+30184 30184 Praseodymium 144 metastable Pr-144m
+30185 30185 Samarium 145 Sm-145
+30186 30186 Samarium 147 Sm-147
+30187 30187 Samarium 151 Sm-151
+30188 30188 Neodymium 147 Nd-147
+30189 30189 Promethium 146 Pm-146
+30190 30190 Promethium 147 Pm-147
+30191 30191 Promethium 151 Pm-151
+30192 30192 Europium 152 Eu-152
+30193 30193 Europium 154 Eu-154
+30194 30194 Europium 155 Eu-155
+30195 30195 Gadolinium 153 Gd-153
+30196 30196 Terbium 160 Tb-160
+30197 30197 Holmium 166 metastable Ho-166m
+30198 30198 Thulium 170 Tm-170
+30199 30199 Ytterbium 169 Yb-169
+30200 30200 Hafnium 175 Hf-175
+30201 30201 Hafnium 181 Hf-181
+30202 30202 Tantalum 179 Ta-179
+30203 30203 Tantalum 182 Ta-182
+30204 30204 Rhenium 184 Re-184
+30205 30205 Iridium 192 Ir-192
+30206 30206 Mercury 203 Hg-203
+30207 30207 Thallium 204 Tl-204
+30208 30208 Thallium 207 Tl-207
+30209 30209 Thallium 208 Tl-208
+30210 30210 Thallium 209 Tl-209
+30211 30211 Bismuth 205 Bi-205
+30212 30212 Bismuth 207 Bi-207
+30213 30213 Bismuth 210 Bi-210
+30214 30214 Bismuth 211 Bi-211
+30215 30215 Bismuth 212 Bi-212
+30216 30216 Bismuth 213 Bi-213
+30217 30217 Bismuth 214 Bi-214
+30218 30218 Polonium 208 Po-208
+30219 30219 Polonium 210 Po-210
+30220 30220 Polonium 212 Po-212
+30221 30221 Polonium 213 Po-213
+30222 30222 Polonium 214 Po-214
+30223 30223 Polonium 215 Po-215
+30224 30224 Polonium 216 Po-216
+30225 30225 Polonium 218 Po-218
+30226 30226 Lead 209 Pb-209
+30227 30227 Lead 210 Pb-210
+30228 30228 Lead 211 Pb-211
+30229 30229 Lead 212 Pb-212
+30230 30230 Lead 214 Pb-214
+30231 30231 Astatine 217 At-217
+30232 30232 Radon 219 Rn-219
+30233 30233 Radon 220 Rn-220
+30234 30234 Radon 222 Rn-222
+30235 30235 Francium 221 Fr-221
+30236 30236 Francium 223 Fr-223
+30237 30237 Radium 223 Ra-223
+30238 30238 Radium 224 Ra-224
+30239 30239 Radium 225 Ra-225
+30240 30240 Radium 226 Ra-226
+30241 30241 Radium 228 Ra-228
+30242 30242 Actinium 225 Ac-225
+30243 30243 Actinium 227 Ac-227
+30244 30244 Actinium 228 Ac-228
+30245 30245 Thorium 227 Th-227
+30246 30246 Thorium 228 Th-228
+30247 30247 Thorium 229 Th-229
+30248 30248 Thorium 230 Th-230
+30249 30249 Thorium 231 Th-231
+30250 30250 Thorium 232 Th-232
+30251 30251 Thorium 234 Th-234
+30252 30252 Protactinium 231 Pa-231
+30253 30253 Protactinium 233 Pa-233
+30254 30254 Protactinium 234 metastable Pa-234m
+30255 30255 Uranium 232 U-232
+30256 30256 Uranium 233 U-233
+30257 30257 Uranium 234 U-234
+30258 30258 Uranium 235 U-235
+30259 30259 Uranium 236 U-236
+30260 30260 Uranium 237 U-237
+30261 30261 Uranium 238 U-238
+30262 30262 Plutonium 236 Pu-236
+30263 30263 Plutonium 238 Pu-238
+30264 30264 Plutonium 239 Pu-239
+30265 30265 Plutonium 240 Pu-240
+30266 30266 Plutonium 241 Pu-241
+30267 30267 Plutonium 242 Pu-242
+30268 30268 Plutonium 244 Pu-244
+30269 30269 Neptunium 237 Np-237
+30270 30270 Neptunium 238 Np-238
+30271 30271 Neptunium 239 Np-239
+30272 30272 Americium 241 Am-241
+30273 30273 Americium 242 Am-242
+30274 30274 Americium 242 metastable Am-242m
+30275 30275 Americium 243 Am-243
+30276 30276 Curium 242 Cm-242
+30277 30277 Curium 243 Cm-243
+30278 30278 Curium 244 Cm-244
+30279 30279 Curium 245 Cm-245
+30280 30280 Curium 246 Cm-246
+30281 30281 Curium 247 Cm-247
+30282 30282 Curium 248 Cm-248
+30283 30283 Curium 243/244 Cm-243244
+30284 30284 Plutonium 238/Americium 241 Pu-238Am-241
+30285 30285 Plutonium 239/240 Pu-239240
+30286 30286 Berkelium 249 Bk-249
+30287 30287 Californium 249 Cf-249
+30288 30288 Californium 250 Cf-250
+30289 30289 Californium 252 Cf-252
+30290 30290 Sum aerosol particulates SumAer
+30291 30291 Sum Iodine SumIod
+30292 30292 Sum noble gas SumNG
+30293 30293 Activation gas ActGas
+30294 30294 Cs-137 Equivalent EquCs137
+30295 30295 Carbon-13 C-13
+30296 30296 Lead Pb
+30297 30297 Tellurium 131 Te-131
+30298 30298 Neodymium 137 Nd-137
+30299 30299 Pseudo radionuclide
+30300 30300 Silver 112 Ag-112
+30301 30301 Silver 115 Ag-115
+30302 30302 Barium 139 Ba-139
+30303 30303 Barium 141 Ba-141
+30304 30304 Barium 142 Ba-142
+30305 30305 Bromine 84 Br-84
+30306 30306 Cadminum 115 Cd-115
+30307 30307 Cadminum 117 Cd-117
+30308 30308 Cadminum 117 metastable Cd-117m
+30309 30309 Cerium 145 Ce-145
+30310 30310 Cerium 146 Ce-146
+30311 30311 Cobalt 58 metastable Co-58m
+30312 30312 Ceasium 138 Cs-138
+30313 30313 Ceasium 139 Cs-139
+30314 30314 Iodine 130 aerosol I-130a
+30315 30315 Iodine 130 elementary gaseous I-130e
+30316 30316 Iodine 130 organic bounded I-130o
+30317 30317 Iodine 132 metastable I-132m
+30318 30318 Iodine 134 metastable I-134m
+30319 30319 Indium 115 metastable In-115m
+30320 30320 Indium 117 metastable In-117m
+30321 30321 Krypton 83 metastable Kr-83m
+30322 30322 Lanthanum 142 La-142
+30323 30323 Lanthanum 143 La-143
+30324 30324 Manganese 56 Mn-56
+30325 30325 Molybdenum 101 Mo-101
+30326 30326 Molybdenum 102 Mo-102
+30327 30327 Neodymium 149 Nd-149
+30328 30328 Neodymium 151 Nd-151
+30329 30329 Palladium 109 Pd-109
+30330 30330 Palladium 112 Pd-112
+30331 30331 Praseodymium 145 Pr-145
+30332 30332 Praseodymium 146 Pr-146
+30333 30333 Praseodymium 147 Pr-147
+30334 30334 Rubidium 89 Rb-89
+30335 30335 Rubidium 90 Rb-90
+30336 30336 Rubidium 90 metastable Rb-90m
+30337 30337 Rhodium 105 metastable Rh-105m
+30338 30338 Rhodium 107 Rh-107
+30339 30339 Antimony 128 Sb-128
+30340 30340 Antimony 128 metastable Sb-128m
+30341 30341 Antimony 129 metastable Sb-129m
+30342 30342 Antimony 130 Sb-130
+30343 30343 Antimony 130 metastable Sb-130m
+30344 30344 Antimony 131 Sb-131
+30345 30345 Antimony 132 Sb-132
+30346 30346 Antimony 132 metastable Sb-132m
+30347 30347 Antimony 133 Sb-133
+30348 30348 Selenium 83 Se-83
+30349 30349 Tin 127 Sn-127
+30350 30350 Tin 127 metastable Sn-127m
+30351 30351 Tin 128 Sn-128
+30352 30352 Tin 129 metastable Sn-129m
+30353 30353 Tin 130 Sn-130
+30354 30354 Strontium 93 Sr-93
+30355 30355 Technetium 101 Tc-101
+30356 30356 Technetium 102 Tc-102
+30357 30357 Technetium 104 Tc-104
+30358 30358 Technetium 105 Tc-105
+30359 30359 Tellurium 133 Te-133
+30360 30360 Tellurium 133 metastable Te-133m
+30361 30361 Tellurium 134 Te-134
+30362 30362 Yttrium 93 metastable Y-93m
+30363 30363 Yttrium 94 Y-94
+30364 30364 Yttrium 95 Y-95
+30365 30365 Zirconium 96 Zr-96
+# 30366-39999 Reserved
+40000 40000 Singlet sigma oxygen (dioxygen (sigma singlet)) O2
+40001 40001 Singlet delta oxygen (dioxygen (delta singlet)) O2
+40002 40002 Singlet excited oxygen atom O(1D)
+40003 40003 Triplet ground state oxygen atom O(3P)
+# 40004-59999 Reserved
+60000 60000 HOx radical (OH+HO2) HOx*
+60001 60001 Total inorganic and organic peroxy radicals (HOO* + ROO*) ROO*
+60002 60002 Passive Ozone
+60003 60003 NOx expressed as nitrogen NOx
+60004 60004 All nitrogen oxides (NOy) expressed as nitrogen NOy
+60005 60005 Total inorganic chlorine Clx
+60006 60006 Total inorganic bromine Brx
+60007 60007 Total inorganic chlorine except HCl, ClONO2: ClOx
+60008 60008 Total inorganic bromine except HBr, BrONO2: BrOx
+60009 60009 Lumped alkanes
+60010 60010 Lumped alkenes
+60011 60011 Lumped aromatic compounds
+60012 60012 Lumped terpenes
+60013 60013 Non-methane volatile organic compounds expressed as carbon NMVOC
+60014 60014 Anthropogenic non-methane volatile organic compounds expressed as carbon aNMVOC
+60015 60015 Biogenic non-methane volatile organic compounds expressed as carbon bNMVOC
+60016 60016 Lumped oxygenated hydrocarbons OVOC
+60017 60017 NOx expressed as nitrogen dioxide (NO2) NOx
+60018 60018 Organic aldehydes RCHO
+60019 60019 Organic peroxides ROOH
+60020 60020 Organic nitrates RNO3
+60021 60021 Ethers ROR'
+60022 60022 Amines NRR'R''
+60023 60023 Ketones RC(O)R'
+60024 60024 Dicarbonyls unsaturated RC(O)CH2C(O)R'
+60025 60025 Hydroxy dicarbonyls unsaturated RC(O)CHOHC(O)R'
+60026 60026 Hydroxy ketones RC(OH)C(O)R'
+60027 60027 Oxides Ox
+60028 60028 Peroxyacyl nitrates RC(O)OONO2
+60029 60029 Aromatic peroxide radical (Aryl dioxydanyl radicals) ArOO*
+60030 60030 Biogenic secondary organic compound
+60031 60031 Anthropogenic secondary organic compound
+60032 60032 All hydroxy-peroxides products of the reaction of hydroxy-isoprene adducts with O2 ISOPOOH
+60033 60033 Anthropogenic volatile organic compounds aVOC
+60034 60034 Biomass burning volatile organic compounds bbVOC
+# 60035-61999 Reserved
+62000 62000 Total aerosol
+62001 62001 Dust dry
+62002 62002 Water in ambient
+62003 62003 Ammonium dry
+62004 62004 Nitrate dry
+62005 62005 Nitric acid trihydrate
+62006 62006 Sulphate dry
+62007 62007 Mercury dry
+62008 62008 Sea salt dry
+62009 62009 Black carbon dry
+62010 62010 Particulate organic matter dry
+62011 62011 Primary particulate organic matter dry
+62012 62012 Secondary particulate organic matter dry
+62013 62013 Black carbon hydrophilic dry
+62014 62014 Black carbon hydrophobic dry
+62015 62015 Particulate organic matter hydrophilic dry
+62016 62016 Particulate organic matter hydrophobic dry
+62017 62017 Nitrate hydrophilic dry
+62018 62018 Nitrate hydrophobic dry
+# 62019 Reserved
+62020 62020 Smoke - high absorption
+62021 62021 Smoke - low absorption
+62022 62022 Aerosol - high absorption
+62023 62023 Aerosol - low absorption
+# 62024 Reserved
+62025 62025 Volcanic ash
+62026 62026 Particulate matter (PM)
+# 62027 Reserved
+62028 62028 Total aerosol hydrophilic
+62029 62029 Total aerosol hydrophobic
+62030 62030 Primary particulate inorganic matter dry
+62031 62031 Secondary particulate inorganic matter dry
+62032 62032 Biogenic secondary organic aerosol
+62033 62033 Anthropogenic secondary organic aerosol
+62034 62034 Rain water H2Orain
+62035 62035 Cloud water H2Ocloud
+62036 62036 Brown carbon dry
+# 62037-62099 Reserved
+62100 62100 Alnus (alder) pollen
+62101 62101 Betula (birch) pollen
+62102 62102 Castanea (chestnut) pollen
+62103 62103 Carpinus (hornbeam) pollen
+62104 62104 Corylus (hazel) pollen
+62105 62105 Fagus (beech) pollen
+62106 62106 Fraxinus (ash) pollen
+62107 62107 Pinus (pine) pollen
+62108 62108 Platanus (plane) pollen
+62109 62109 Populus (cottonwood, poplar) pollen
+62110 62110 Quercus (oak) pollen
+62111 62111 Salix (willow) pollen
+62112 62112 Taxus (yew) pollen
+62113 62113 Tilia (lime, linden) pollen
+62114 62114 Ulmus (elm) pollen
+62115 62115 Olea (olive) pollen
+# 62116-62199 Reserved
+62200 62200 Ambrosia (ragweed, burr-ragweed) pollen
+62201 62201 Artemisia (sagebrush, wormwood, mugwort) pollen
+62202 62202 Brassica (rape, broccoli, Brussels sprouts, cabbage, cauliflower, collards, kale, kohlrabi, mustard, rutabaga) pollen
+62203 62203 Plantago (plantain) pollen
+62204 62204 Rumex (dock, sorrel) pollen
+62205 62205 Urtica (nettle) pollen
+# 62206-62299 Reserved
+62300 62300 Poaceae (grass family) pollen
+# 62301-62999 Reserved
+# 63000-65534 For experimental use at local level
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/4.234.table b/definitions/grib2/tables/33/4.234.table
new file mode 100644
index 000000000..3b05b4515
--- /dev/null
+++ b/definitions/grib2/tables/33/4.234.table
@@ -0,0 +1,21 @@
+# Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
+1 1 Crops, mixed farming
+2 2 Short grass
+3 3 Evergreen needleleaf trees
+4 4 Deciduous needleleaf trees
+5 5 Deciduous broadleaf trees
+6 6 Evergreen broadleaf trees
+7 7 Tall grass
+8 8 Desert
+9 9 Tundra
+10 10 Irrigated crops
+11 11 Semidesert
+12 12 Ice caps and glaciers
+13 13 Bogs and marshes
+14 14 Inland water
+15 15 Ocean
+16 16 Evergreen shrubs
+17 17 Deciduous shrubs
+18 18 Mixed forest
+19 19 Interrupted forest
+20 20 Water and land mixtures
diff --git a/definitions/grib2/tables/33/4.236.table b/definitions/grib2/tables/33/4.236.table
new file mode 100644
index 000000000..9c58b488c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.236.table
@@ -0,0 +1,8 @@
+# Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54)
+1 1 Coarse
+2 2 Medium
+3 3 Medium-fine
+4 4 Fine
+5 5 Very-fine
+6 6 Organic
+7 7 Tropical-organic
diff --git a/definitions/grib2/tables/33/4.238.table b/definitions/grib2/tables/33/4.238.table
new file mode 100644
index 000000000..cd8b5cba8
--- /dev/null
+++ b/definitions/grib2/tables/33/4.238.table
@@ -0,0 +1,34 @@
+# Code table 4.238 - Source or sink
+0 0 Other
+1 1 Aviation
+2 2 Lightning
+3 3 Biogenic sources
+4 4 Anthropogenic sources
+5 5 Wild fires
+6 6 Natural sources
+7 7 Volcanoes
+8 8 Bio-fuel
+9 9 Fossil-fuel
+10 10 Wetlands
+11 11 Oceans
+12 12 Elevated anthropogenic sources
+13 13 Surface anthropogenic sources
+14 14 Agriculture livestock
+15 15 Agriculture soils
+16 16 Agriculture waste burning
+17 17 Agriculture (all)
+18 18 Residential, commercial and other combustion
+19 19 Power generation
+20 20 Super power stations
+21 21 Fugitives
+22 22 Industrial process
+23 23 Solvents
+24 24 Ships
+25 25 Wastes (solid and water)
+26 26 Road transportation
+27 27 Off-road transportation
+28 28 Nuclear power plant
+29 29 Nuclear weapon
+# 30-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.239.table b/definitions/grib2/tables/33/4.239.table
new file mode 100644
index 000000000..f095b14a0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.239.table
@@ -0,0 +1,17 @@
+# Code table 4.239 - Wetland Type
+0 0 Reserved
+1 1 Bog
+2 2 Drained
+3 3 Fen
+4 4 Floodplain
+5 5 Mangrove
+6 6 Marsh
+7 7 Rice
+8 8 Riverine
+9 9 Salt marsh
+10 10 Swamp
+11 11 Upland
+12 12 Wet tundra
+# 13-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.240.table b/definitions/grib2/tables/33/4.240.table
new file mode 100644
index 000000000..2a31fb2ab
--- /dev/null
+++ b/definitions/grib2/tables/33/4.240.table
@@ -0,0 +1,13 @@
+# Code table 4.240 - Type of distribution function
+0 0 No specific distribution function given
+1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre
+2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg
+3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2)
+4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance
+5 5 Log-normal distribution with spatially variable number density, mean diameter and variance
+6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1)
+7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2)
+8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2)
+# 9-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing value
diff --git a/definitions/grib2/tables/33/4.241.table b/definitions/grib2/tables/33/4.241.table
new file mode 100644
index 000000000..743e5f6e2
--- /dev/null
+++ b/definitions/grib2/tables/33/4.241.table
@@ -0,0 +1,12 @@
+# Code table 4.241 - Coverage attributes
+0 UNDEF Undefined
+1 UNMOD Unmodified
+2 SNOW Snow covered
+3 FLOOD Flooded
+4 ICE Ice covered
+5 ITCW With intercepted water
+6 ITCS With intercepted snow
+7 AGG Aggregated
+# 8-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.242.table b/definitions/grib2/tables/33/4.242.table
new file mode 100644
index 000000000..9574142da
--- /dev/null
+++ b/definitions/grib2/tables/33/4.242.table
@@ -0,0 +1,10 @@
+# Code table 4.242 - Tile classification
+0 0 Reserved
+1 GCV2009 Land use classes according to ESA-GlobCover GCV2009
+2 GLC2000 Land use classes according to European Commission-Global Land Cover Project GLC2000
+3 ECOCLIMAP Land use classes according to ECOCLIMAP
+4 ECOCLIMAP-SG Land use classes according to ECOCLIMAP-SG
+5 GLCCv2BATS Land use classes according to USGS EROS Global Land Cover Characterization (GLCC) v2.0 BATS Classification
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.243.table b/definitions/grib2/tables/33/4.243.table
new file mode 100644
index 000000000..24d21b719
--- /dev/null
+++ b/definitions/grib2/tables/33/4.243.table
@@ -0,0 +1,43 @@
+# Code table 4.243 - Tile class
+0 0 Reserved
+1 1 Evergreen broadleaved forest
+2 2 Deciduous broadleaved closed forest
+3 3 Deciduous broadleaved open forest
+4 4 Evergreen needle-leaf forest
+5 5 Deciduous needle-leaf forest
+6 6 Mixed leaf trees
+7 7 Freshwater flooded trees
+8 8 Saline water flooded trees
+9 9 Mosaic tree/natural vegetation
+10 10 Burnt tree cover
+11 11 Evergreen shrubs closed-open
+12 12 Deciduous shrubs closed-open
+13 13 Herbaceous vegetation closed-open
+14 14 Sparse herbaceous or grass
+15 15 Flooded shrubs or herbaceous
+16 16 Cultivated and managed areas
+17 17 Mosaic crop/tree/natural vegetation
+18 18 Mosaic crop/shrub/grass
+19 19 Bare areas
+20 20 Water
+21 21 Snow and ice
+22 22 Artificial surface
+23 23 Ocean
+24 24 Irrigated croplands
+25 25 Rainfed croplands
+26 26 Mosaic cropland (50-70%) - vegetation (20-50%)
+27 27 Mosaic vegetation (50-70%) - cropland (20-50%)
+28 28 Closed broadleaved evergreen forest
+29 29 Closed needle-leaved evergreen forest
+30 30 Open needle-leaved deciduous forest
+31 31 Mixed broadleaved and needle-leaved forest
+32 32 Mosaic shrubland (50-70%) - grassland (20-50%)
+33 33 Mosaic grassland (50-70%) - shrubland (20-50%)
+34 34 Closed to open shrubland
+35 35 Sparse vegetation
+36 36 Closed to open forest regularly flooded
+37 37 Closed forest or shrubland permanently flooded
+38 38 Closed to open grassland regularly flooded
+39 39 Undefined
+# 40-32767 Reserved
+# 32768- Reserved for local use
diff --git a/definitions/grib2/tables/33/4.244.table b/definitions/grib2/tables/33/4.244.table
new file mode 100644
index 000000000..a4470cd56
--- /dev/null
+++ b/definitions/grib2/tables/33/4.244.table
@@ -0,0 +1,7 @@
+# Code table 4.244 - Quality indicator
+0 0 No quality information available
+1 1 Failed
+2 2 Passed
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.246.table b/definitions/grib2/tables/33/4.246.table
new file mode 100644
index 000000000..0ca9c0c98
--- /dev/null
+++ b/definitions/grib2/tables/33/4.246.table
@@ -0,0 +1,7 @@
+# Code table 4.246 - Thunderstorm intensity
+0 0 No thunderstorm occurrence
+1 1 Weak thunderstorm
+2 2 Moderate thunderstorm
+3 3 Severe thunderstorm
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.247.table b/definitions/grib2/tables/33/4.247.table
new file mode 100644
index 000000000..6da16e396
--- /dev/null
+++ b/definitions/grib2/tables/33/4.247.table
@@ -0,0 +1,7 @@
+# Code table 4.247 - Precipitation intensity
+0 0 No precipitation occurrence
+1 1 Light precipitation
+2 2 Moderate precipitation
+3 3 Heavy precipitation
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.248.table b/definitions/grib2/tables/33/4.248.table
new file mode 100644
index 000000000..04e365c97
--- /dev/null
+++ b/definitions/grib2/tables/33/4.248.table
@@ -0,0 +1,6 @@
+# Code table 4.248 - Method used to derive data values for a given local time
+0 0 Nearest forecast or analysis time to specified local time
+1 1 Interpolated to be valid at the specified local time
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.249.table b/definitions/grib2/tables/33/4.249.table
new file mode 100644
index 000000000..bd1c944c4
--- /dev/null
+++ b/definitions/grib2/tables/33/4.249.table
@@ -0,0 +1,7 @@
+# Code table 4.249 - Character of precipitation
+0 0 None
+1 1 Showers
+2 2 Intermittent
+3 3 Continuous
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.250.table b/definitions/grib2/tables/33/4.250.table
new file mode 100644
index 000000000..a249158ca
--- /dev/null
+++ b/definitions/grib2/tables/33/4.250.table
@@ -0,0 +1,14 @@
+# Code table 4.250 - Drainage direction
+0 0 Reserved
+1 1 South-west
+2 2 South
+3 3 South-east
+4 4 West
+5 5 No direction
+6 6 East
+7 7 North-west
+8 8 North
+9 9 North-east
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.251.table b/definitions/grib2/tables/33/4.251.table
new file mode 100644
index 000000000..3a78e713e
--- /dev/null
+++ b/definitions/grib2/tables/33/4.251.table
@@ -0,0 +1,7 @@
+# Code table 4.251 - Wave direction and frequency formulae
+0 0 Undefined sequence
+1 1 Geometric sequence
+2 2 Arithmetic sequence
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.252.table b/definitions/grib2/tables/33/4.252.table
new file mode 100644
index 000000000..3baf4064c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.252.table
@@ -0,0 +1,165 @@
+# Code table 4.252 - Tile classes and groupings
+0 0 Reserved
+1 SEOC Seas and oceans
+2 INWB Inland water bodies
+3 BARE Bare areas
+4 HIV High vegetation
+5 LOV Low vegetation
+6 URBAN Urban
+# 7-1000 Reserved for intercomparison tile classes/groupings
+1001 SEAO Sea and oceans
+1002 LAKE Lakes
+1003 RIVE Rivers
+1004 NO Bare land
+1005 ROCK Bare rock
+1006 SNOW Permanent snow
+1007 BOBD Boreal broadleaf deciduous
+1008 TEBD Temperate broadleaf deciduous
+1009 TRBD Tropical broadleaf deciduous
+1010 TEBE Temperate broadleaf evergreen
+1011 TRBE Tropical broadleaf evergreen
+1012 BONE Boreal needleleaf evergreen
+1013 TENE Temperate needleleaf evergreen
+1014 BOND Boreal needleleaf deciduous
+1015 SHRB Shrubs
+1016 BOGR Boreal grassland
+1017 GRAS Temperate grassland
+1018 TROG Tropical grassland
+1019 C3W Winter C3 crops
+1020 C3S Summer C3 crops
+1021 C4 C4 crops
+1022 FLTR Flooded trees
+1023 FLGR Flooded grassland
+1024 LCZ1 Local climate zone 1: compact high-rise (buildings)
+1025 LCZ2 Local climate zone 2: compact midrise (buildings)
+1026 LCZ3 Local climate zone 3: compact low-rise (buildings)
+1027 LCZ4 Local climate zone 4: open high-rise (buildings)
+1028 LCZ5 Local climate zone 5: open midrise (buildings)
+1029 LCZ6 Local climate zone 6: open low-rise (buildings)
+1030 LCZ7 Local climate zone 7: lightweight low-rise (buildings)
+1031 LCZ8 Local climate zone 8: large low-rise (buildings)
+1032 LCZ9 Local climate zone 9: sparsely built (buildings)
+1033 LCZ10 Local climate zone 10: heavy industry (buildings)
+1034 TEBDU Urban temperate broadleaf deciduous
+1035 TRBDU Urban tropical broadleaf deciduous
+1036 TEBEU Urban temperate broadleaf evergreen
+1037 TRBEU Urban tropical broadleaf evergreen
+1038 BONEU Urban boreal needleleaf evergreen
+1039 TENEU Urban temperate needleleaf evergreen
+1040 BONDU Urban boreal needleleaf deciduous
+# 1041-1500 Reserved for tile class entries for tile models using the ECOCLIMAP-SG land cover survey
+# v8.1 groupings
+1501 GNATU Nature grouping (NO + ROCK + SNOW + BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
+1502 GNOFO Non-forest grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
+1503 GFORE Forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB)
+1504 GNOVE Non-vegetated grouping (NO + ROCK + SNOW)
+1505 GTREE Trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + FLTR)
+1506 GLVEG Low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
+1507 GNFLV Non-flooded low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4)
+1508 GCROP Crops grouping (C3W + C3S + C4)
+1509 GGRAS Grassland grouping (BOGR + GRAS + TROG)
+1510 GBARO Bare and rock grouping (NO + ROCK)
+1511 GC3CR C3 crops grouping (C3W + C3S)
+1512 GBFOR Broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB)
+1513 GNFOR Needleleaf forest grouping (BONE + TENE + BOND)
+1514 GDBFO Deciduous broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + SHRB)
+1515 GTGRA Temperate grassland grouping (BOGR + GRAS)
+# v9.0 groupings
+1516 GNFNF Non-forest (no FLTR) grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
+1517 GBFFT Broadleaf forest (with FLTR) grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB + FLTR)
+1518 GBTRE Broadleaf trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + FLTR)
+1519 GCGRA C3/C4 grasslands grouping (BOGR + GRAS + FLGR)
+1520 GBDTR Broadleaf deciduous trees grouping (BOBD + TEBD + TRBD + FLTR)
+1521 GBETR Broadleaf evergreen trees grouping (TEBE + TRBE)
+1522 GNETR Needleleaf evergreen trees grouping (BONE + TENE)
+# Other groupings
+1523 GLCZU LCZ or urban grouping (LCZ1 + LCZ2 + LCZ3 + LCZ4 + LCZ5 + LCZ6 + LCZ7 + LCZ8 + LCZ9 + LCZ10)
+1524 GIWAT Inland water grouping (LAKE + RIVE)
+1525 GPTEBD Urban parks and gardens TEBD grouping (NO + GRAS + TEBDU)
+1526 GPTRBD Urban parks and gardens TRBD grouping (NO + GRAS + TRBDU)
+1527 GPTEBE Urban parks and gardens TEBE grouping (NO + GRAS + TEBEU)
+1528 GPTRBE Urban parks and gardens TRBE grouping (NO + GRAS + TRBEU)
+1529 GPBONE Urban parks and gardens BONE grouping (NO + GRAS + BONEU)
+1530 GPTENE Urban parks and gardens TENE grouping (NO + GRAS + TENEU)
+1531 GPBOND Urban parks and gardens BOND grouping (NO + GRAS + BONDU)
+# 1532-2000 Reserved for tile grouping entries for tile models using the ECOCLIMAP-SG land cover survey
+2001 CRMF Crops, mixed farming
+2002 SHGR Short grass
+2003 EVNE Evergreen needleleaf trees
+2004 DENE Deciduous needleleaf trees
+2005 DEBR Deciduous broadleaf trees
+2006 EVBR Evergreen broadleaf trees
+2007 TAGR Tall grass
+2008 DESE Desert
+2009 TUND Tundra
+2010 IRCR Irrigated crops
+2011 SEDE Semidesert
+2012 ICGL Ice caps and glaciers
+2013 BOMA Bogs and marshes
+2014 INWA Inland water
+2015 OCEA Ocean
+2016 EVSH Evergreen shrubs
+2017 DESH Deciduous shrubs
+2018 MFWO Mixed forest/woodland
+2019 INFO Interrupted forest
+2020 WLMI Water and land mixtures
+2021 BASO Bare soil
+2022 URBA Urban
+2023 LORI Low-rise building
+2024 HIRI High-rise building
+# 2025-2500 Reserved for tile class entries for tile models using the GLCC v2.0 BATS Classification survey
+2501 GLVE Low vegetation grouping (CRMF + SHGR + TAGR + TUND + IRCR + SEDE + BOMA + EVSH + DESH + WLMI)
+2502 GHVE High vegetation grouping (EVNE + DENE + DEBR + EVBR + MFWO + INFO)
+# 2503-3000 Reserved for tile grouping entries for tile models using the GLCC v2.0 BATS Classification survey
+3001 PFIC Post-flooding or irrigated croplands
+3002 RACR Rainfed croplands
+3003 MCVE Mosaic cropland (50-70%) / vegetation (grassland, shrubland, forest) (20-50%)
+3004 MVCR Mosaic vegetation (grassland, shrubland, forest) (50-70%) / cropland (20-50%)
+3005 COBS Closed to open (>15%) broadleaved evergreen and/or semi-deciduous forest (>5m)
+3006 CLBD Closed (>40%) broadleaved deciduous forest (>5m)
+3007 OPBD Open (15-40%) broadleaved deciduous forest (>5m)
+3008 CLNE Closed (>40%) needleleaved evergreen forest (>5m)
+3009 ONDE Open (15-40%) needleleaved deciduous or evergreen forest (>5m)
+3010 COBN Closed to open (>15%) mixed broadleaved and needleleaved forest (>5m)
+3011 MFSG Mosaic forest/shrubland (50-70%) / grassland (20-50%)
+3012 MGFS Mosaic grassland (50-70%) / forest / shrubland (20-50%)
+3013 COSH Closed to open (>15%) shrubland (<5m)
+3014 COHV Closed to open (>15%) herbaceous vegetation
+3015 SPVE Sparse (<15%) vegetation (woody vegetation, shrubs, grassland)
+3016 COBFF Closed to open (>15%) broadleaved forest regularly flooded (semi-permanently or temporarily) - fresh or brackish water
+3017 CLBFF Closed (>40%) broadleaved forest or shrubland permanently flooded - saline or brackish water
+3018 COVEF Closed to open (>15%) vegetation (grassland, shrubland, woody vegetation) on regularly flooded or waterlogged soil - fresh, brackish or saline water
+3019 ASAA Artificial surfaces and associated areas (urban areas >50%)
+3020 BAAR Bare areas
+3021 WABO Water bodies
+3022 PESI Permanent snow and ice
+# 3023-3500 Reserved for tile class entries for tile models using the ESA-GlobCover GCV2009 survey
+3501 GRDT Grouping using the dominant tiles approach (dominant tile varies per gridbox)
+# 3502-4000 Reserved for tile grouping entries for tile models using the ESA-GlobCover GCV2009 survey
+4001 TBECO Tree cover, broadleaved evergreen, closed to open (>15%)
+4002 TBDC Tree cover, broadleaved deciduous, closed (>40%)
+4003 TBDO Tree cover, broadleaved deciduous, open (15-40%)
+4004 TNECO Tree cover, needleleaved evergreen, closed to open (>15%)
+4005 TNDCO Tree cover, needleleaved decidous, closed to open (>15%)
+4006 TMLCO Tree cover, mixed leaftype, closed to open (>15%)
+4007 TCOFF Tree cover, closed to open (>15%), regularly flooded, fresh or brackish water: swamp forests
+4008 TCOFS Tree cover, closed to open (>15%), regularly flooded, saline water: mangrove forests
+4009 MTVG Mosaic of tree cover and other natural vegetation (crop component possible)
+4010 TBURN Tree Cover, burnt (mainly boreal forests)
+4011 SCOE Shrubcover, closed to open (>15%), evergreen (broadleaved or needleleaved)
+4012 SCOD Shrubcover, closed to open (>15%), deciduous (broadleaved)
+4013 HCCO Herbaceous cover, closed to open (>15%)
+4014 SHSC Sparse herbaceous or sparse shrub cover
+4015 FSHCO Regularly flooded (>2 month) shrub or herbaceous cover, closed to open
+4016 CROP Cropland (upland crops or inundated/ flooded crops)
+4017 MCTNV Mosaic of cropland / tree cover/ other natural vegetation
+4018 MCSH Mosaic of cropland / shrub or herbaceous cover
+4019 BAARE Bare areas
+4020 WBNA Water bodies (natural or artificial)
+4021 SINA Snow or ice (natural or artificial)
+4022 URAR Urban areas
+# 4023-4500 Reserved for tile class entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey
+# 4501-5000 Reserved for tile grouping entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey
+# 5001-32767 Reserved for additional land cover surveys
+# 32768-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/4.3.table b/definitions/grib2/tables/33/4.3.table
new file mode 100644
index 000000000..8ae36efc3
--- /dev/null
+++ b/definitions/grib2/tables/33/4.3.table
@@ -0,0 +1,26 @@
+# Code table 4.3 - Type of generating process
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+12 12 Post-processed analysis
+13 13 Post-processed forecast
+14 14 Nowcast
+15 15 Hindcast
+16 16 Physical retrieval
+17 17 Regression analysis
+18 18 Difference between two forecasts
+19 19 First guess
+20 20 Analysis increment
+21 21 Initialization increment for analysis
+# 22-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.333.table b/definitions/grib2/tables/33/4.333.table
new file mode 100644
index 000000000..1367d35c6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.333.table
@@ -0,0 +1,12 @@
+# Code table 4.333 - Transport dispersion model
+1 1 DERMA (Danish Emergency Response Model of the Atmosphere)
+2 2 E-EMEP (Emergency EMEP model)
+3 3 FLEXPART (Particle dispersion model)
+4 4 MLDP (Modèle lagrangien de dispersion de particules)
+5 5 MATCH (Multi-scale Atmospheric Transport Model)
+6 6 SILAM (System for Integrated modeLling of Atmospheric composition)
+7 7 SNAP (Severe Nuclear Accident Program)
+8 8 WRF-Chem (Weather Research and Forecasting Chemical model)
+9 9 Trajectoire (Trajectory model)
+# 10-254 Reserved
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.335.table b/definitions/grib2/tables/33/4.335.table
new file mode 100644
index 000000000..f47807cf6
--- /dev/null
+++ b/definitions/grib2/tables/33/4.335.table
@@ -0,0 +1,7 @@
+# Code table 4.335 - Emission scenario origin
+1 1 ARGOS (Accident Reporting and Guiding Operational System)
+2 2 JRODOS (Java version of Real time Online Decision SuppOrt System)
+3 3 Assimilated (Scenario retrieved from measurements)
+4 4 Centre (scenario by originating centre)
+# 5-254 Reserved
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.336.table b/definitions/grib2/tables/33/4.336.table
new file mode 100644
index 000000000..c7855abea
--- /dev/null
+++ b/definitions/grib2/tables/33/4.336.table
@@ -0,0 +1,13 @@
+# Code table 4.336 - NWP model
+1 1 AROME (Meso scale NWP, Meteo-France)
+2 2 ARPEGE (Global scale NWP, Meteo-France)
+3 3 GFS (Global forecast system, NCEP)
+4 4 HARMONIE (HIRLAM-ALADIN Research on Mesoscale Operational NWP)
+5 5 HIRLAM (HIgh resolution Limited Area Model)
+6 6 IFS (Integrated Forecast System)
+7 7 GEM GDPS (Canadian Global Deterministic Prediction System)
+8 8 GEM RDPS (Canadian Regional Deterministic Prediction System)
+9 9 GEM HRDPS (Canadian High Resolution Deterministic Prediction System)
+10 10 WRF (Weather Research and Forecasting)
+# 11-254 Reserved
+255 255 Missing value
diff --git a/definitions/grib2/tables/33/4.4.table b/definitions/grib2/tables/33/4.4.table
new file mode 100644
index 000000000..6e63e069c
--- /dev/null
+++ b/definitions/grib2/tables/33/4.4.table
@@ -0,0 +1,17 @@
+# Code table 4.4 - Indicator of unit of time range
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.5.table b/definitions/grib2/tables/33/4.5.table
new file mode 100644
index 000000000..f139bc109
--- /dev/null
+++ b/definitions/grib2/tables/33/4.5.table
@@ -0,0 +1,95 @@
+# Code table 4.5 - Fixed surface types and units
+0 0 Reserved
+1 sfc Ground or water surface (-)
+2 2 Cloud base level (-)
+3 3 Level of cloud tops (-)
+4 4 Level of 0 degree C isotherm (-)
+5 5 Level of adiabatic condensation lifted from the surface (-)
+6 6 Maximum wind level (-)
+7 sfc Tropopause (-)
+8 sfc Nominal top of the atmosphere (-)
+9 9 Sea bottom (-)
+10 10 Entire atmosphere (-)
+11 11 Cumulonimbus (CB) base (m)
+12 12 Cumulonimbus (CB) top (m)
+13 13 Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover) (%)
+14 14 Level of free convection (LFC) (-)
+15 15 Convective condensation level (CCL) (-)
+16 16 Level of neutral buoyancy or equilibrium level (LNB) (-)
+17 sfc Departure level of the most unstable parcel of air (MUDL)
+18 sfc Departure level of a mixed layer parcel of air with specified layer depth (Pa)
+19 19 Lowest level where cloud cover exceeds the specified percentage (%)
+20 20 Isothermal level (K)
+21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3)
+22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3)
+23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3)
+24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3)
+25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ)
+26 26 Convective cloud layer base (m)
+27 27 Convective cloud layer top (m)
+# 28-29 Reserved
+30 30 Specified radius from the centre of the Sun (m)
+31 31 Solar photosphere
+32 32 Ionospheric D-region level
+33 33 Ionospheric E-region level
+34 34 Ionospheric F1-region level
+35 35 Ionospheric F2-region level
+# 36-99 Reserved
+100 pl Isobaric surface (Pa)
+101 sfc Mean sea level
+102 102 Specific altitude above mean sea level (m)
+103 sfc Specified height level above ground (m)
+104 104 Sigma level (sigma value)
+105 ml Hybrid level (-)
+106 sfc Depth below land surface (m)
+107 pt Isentropic (theta) level (K)
+108 108 Level at specified pressure difference from ground to level (Pa)
+109 pv Potential vorticity surface (K m2 kg-1 s-1)
+110 110 Reserved
+111 111 Eta level (-)
+112 112 Reserved
+113 113 Logarithmic hybrid level
+114 sol Snow level (Numeric)
+115 115 Sigma height level
+# 116 Reserved
+117 117 Mixed layer depth (m)
+118 hhl Hybrid height level (-)
+119 hpl Hybrid pressure level (-)
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
+151 sol Soil level (Numeric)
+152 sol Sea-ice level (Numeric)
+# 153-159 Reserved
+160 160 Depth below sea level (m)
+161 161 Depth below water surface (m)
+162 sfc Lake or river bottom (-)
+163 163 Bottom of sediment layer (-)
+164 164 Bottom of thermally active sediment layer (-)
+165 165 Bottom of sediment layer penetrated by thermal wave (-)
+166 sfc Mixing layer (-)
+167 167 Bottom of root zone (-)
+168 168 Ocean model level (Numeric)
+169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3)
+170 170 Ocean level defined by water potential temperature difference from near-surface to level (K)
+171 171 Ocean level defined by vertical eddy diffusivity difference from near-surface to level (m2 s-1)
+172 172 Ocean level defined by water density (rho) difference from near-surface to level (m)
+173 173 Top of snow over sea ice on sea, lake or river
+174 sfc Top surface of ice on sea, lake or river
+175 175 Top surface of ice, under snow cover, on sea, lake or river
+176 176 Bottom surface (underside) ice on sea, lake or river
+177 sfc Deep soil (of indefinite depth)
+# 178 Reserved
+179 179 Top surface of glacier ice and inland ice
+180 180 Deep inland or glacier ice (of indefinite depth)
+181 181 Grid tile land fraction as a model surface
+182 182 Grid tile water fraction as a model surface
+183 183 Grid tile ice fraction on sea, lake or river as a model surface
+184 184 Grid tile glacier ice and inland ice fraction as a model surface
+185 185 Roof level
+186 186 Wall level
+187 187 Road level
+188 188 Melt pond top surface
+189 189 Melt pond bottom surface
+# 190-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.6.table b/definitions/grib2/tables/33/4.6.table
new file mode 100644
index 000000000..ce799721d
--- /dev/null
+++ b/definitions/grib2/tables/33/4.6.table
@@ -0,0 +1,9 @@
+# Code table 4.6 - Type of ensemble forecast
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.8.table b/definitions/grib2/tables/33/4.8.table
new file mode 100644
index 000000000..78467454a
--- /dev/null
+++ b/definitions/grib2/tables/33/4.8.table
@@ -0,0 +1,6 @@
+# Code table 4.8 - Clustering method
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/4.9.table b/definitions/grib2/tables/33/4.9.table
index db9928fd3..8e481465e 100644
--- a/definitions/grib2/tables/33/4.9.table
+++ b/definitions/grib2/tables/33/4.9.table
@@ -8,7 +8,7 @@
6 6 Probability of event in above normal category
7 7 Probability of event in near normal category
8 8 Probability of event in below normal category
-9 9 Probability based on counts of categorical yes/no per member
+9 9 Probability based on counts of categorical boolean
# 10-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/33/4.91.table b/definitions/grib2/tables/33/4.91.table
new file mode 100644
index 000000000..1a0f215f0
--- /dev/null
+++ b/definitions/grib2/tables/33/4.91.table
@@ -0,0 +1,16 @@
+# Code table 4.91 - Type of Interval
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.0.table b/definitions/grib2/tables/33/5.0.table
new file mode 100644
index 000000000..5e00004b0
--- /dev/null
+++ b/definitions/grib2/tables/33/5.0.table
@@ -0,0 +1,22 @@
+# Code table 5.0 - Data representation template number
+0 0 Grid point data - simple packing
+1 1 Matrix value at grid point - simple packing
+2 2 Grid point data - complex packing
+3 3 Grid point data - complex packing and spatial differencing
+4 4 Grid point data - IEEE floating point data
+# 5-39 Reserved
+40 40 Grid point data - JPEG 2000 code stream format
+41 41 Grid point data - Portable Network Graphics (PNG)
+42 42 Grid point data - CCSDS recommended lossless compression
+# 43-49 Reserved
+50 50 Spectral data - simple packing
+51 51 Spherical harmonics data - complex packing
+# 52 Reserved
+53 53 Spectral data for limited area models - complex packing
+# 54-60 Reserved
+61 61 Grid point data - simple packing with logarithm pre-processing
+# 62-199 Reserved
+200 200 Run length packing with level values
+# 201-49151 Reserved
+# 49152-65534 Reserved for local use
+65535 65535 Missing
diff --git a/definitions/grib2/tables/33/5.1.table b/definitions/grib2/tables/33/5.1.table
new file mode 100644
index 000000000..1189b5e46
--- /dev/null
+++ b/definitions/grib2/tables/33/5.1.table
@@ -0,0 +1,6 @@
+# Code table 5.1 - Type of original field values
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.2.table b/definitions/grib2/tables/33/5.2.table
new file mode 100644
index 000000000..60d557a0d
--- /dev/null
+++ b/definitions/grib2/tables/33/5.2.table
@@ -0,0 +1,8 @@
+# Code table 5.2 - Matrix coordinate value function definition
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.25.table b/definitions/grib2/tables/33/5.25.table
new file mode 100644
index 000000000..79e9fd69a
--- /dev/null
+++ b/definitions/grib2/tables/33/5.25.table
@@ -0,0 +1,9 @@
+# Code table 5.25 - type of bi-Fourier subtruncation
+# 0-76 Reserved
+77 77 Rectangular
+# 78-87 Reserved
+88 88 Elliptic
+# 89-98 Reserved
+99 99 Diamond
+# 100-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.26.table b/definitions/grib2/tables/33/5.26.table
new file mode 100644
index 000000000..298f3fcd0
--- /dev/null
+++ b/definitions/grib2/tables/33/5.26.table
@@ -0,0 +1,5 @@
+# Code table 5.26 - packing mode for axes
+0 0 Spectral coefficients for axes are packed
+1 1 Spectral coefficients for axes included in the unpacked subset
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.3.table b/definitions/grib2/tables/33/5.3.table
new file mode 100644
index 000000000..481331791
--- /dev/null
+++ b/definitions/grib2/tables/33/5.3.table
@@ -0,0 +1,7 @@
+# Code table 5.3 - Matrix coordinate parameter
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.4.table b/definitions/grib2/tables/33/5.4.table
new file mode 100644
index 000000000..e84ab1901
--- /dev/null
+++ b/definitions/grib2/tables/33/5.4.table
@@ -0,0 +1,6 @@
+# Code table 5.4 - Group splitting method
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.40.table b/definitions/grib2/tables/33/5.40.table
new file mode 100644
index 000000000..97e8880ab
--- /dev/null
+++ b/definitions/grib2/tables/33/5.40.table
@@ -0,0 +1,5 @@
+# Code table 5.40 - Type of compression
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.5.table b/definitions/grib2/tables/33/5.5.table
new file mode 100644
index 000000000..f2316975a
--- /dev/null
+++ b/definitions/grib2/tables/33/5.5.table
@@ -0,0 +1,7 @@
+# Code table 5.5 - Missing value management for complex packing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.6.table b/definitions/grib2/tables/33/5.6.table
new file mode 100644
index 000000000..db68ead9c
--- /dev/null
+++ b/definitions/grib2/tables/33/5.6.table
@@ -0,0 +1,7 @@
+# Code table 5.6 - Order of spatial differencing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/33/5.7.table b/definitions/grib2/tables/33/5.7.table
new file mode 100644
index 000000000..e54862c19
--- /dev/null
+++ b/definitions/grib2/tables/33/5.7.table
@@ -0,0 +1,7 @@
+# Code table 5.7 - Precision of floating-point numbers
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/33/6.0.table b/definitions/grib2/tables/33/6.0.table
new file mode 100644
index 000000000..a8f30f5a4
--- /dev/null
+++ b/definitions/grib2/tables/33/6.0.table
@@ -0,0 +1,6 @@
+# Code table 6.0 - Bit map indicator
+0 0 A bit map applies to this product and is specified in this Section
+1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section
+# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/4/4.1.192.table b/definitions/grib2/tables/4/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/4/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/4/4.2.192.0.table b/definitions/grib2/tables/4/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.1.table b/definitions/grib2/tables/4/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.10.table b/definitions/grib2/tables/4/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.100.table b/definitions/grib2/tables/4/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.101.table b/definitions/grib2/tables/4/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.102.table b/definitions/grib2/tables/4/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.103.table b/definitions/grib2/tables/4/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.104.table b/definitions/grib2/tables/4/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.105.table b/definitions/grib2/tables/4/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.106.table b/definitions/grib2/tables/4/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.107.table b/definitions/grib2/tables/4/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.108.table b/definitions/grib2/tables/4/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.109.table b/definitions/grib2/tables/4/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.11.table b/definitions/grib2/tables/4/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.110.table b/definitions/grib2/tables/4/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.111.table b/definitions/grib2/tables/4/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.112.table b/definitions/grib2/tables/4/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.113.table b/definitions/grib2/tables/4/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.114.table b/definitions/grib2/tables/4/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.115.table b/definitions/grib2/tables/4/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.116.table b/definitions/grib2/tables/4/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.117.table b/definitions/grib2/tables/4/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.118.table b/definitions/grib2/tables/4/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.119.table b/definitions/grib2/tables/4/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.12.table b/definitions/grib2/tables/4/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.120.table b/definitions/grib2/tables/4/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.121.table b/definitions/grib2/tables/4/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.122.table b/definitions/grib2/tables/4/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.123.table b/definitions/grib2/tables/4/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.124.table b/definitions/grib2/tables/4/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.125.table b/definitions/grib2/tables/4/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.126.table b/definitions/grib2/tables/4/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.127.table b/definitions/grib2/tables/4/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.128.table b/definitions/grib2/tables/4/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.129.table b/definitions/grib2/tables/4/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.13.table b/definitions/grib2/tables/4/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.130.table b/definitions/grib2/tables/4/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.131.table b/definitions/grib2/tables/4/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.132.table b/definitions/grib2/tables/4/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.133.table b/definitions/grib2/tables/4/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.134.table b/definitions/grib2/tables/4/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.135.table b/definitions/grib2/tables/4/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.136.table b/definitions/grib2/tables/4/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.137.table b/definitions/grib2/tables/4/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.138.table b/definitions/grib2/tables/4/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.139.table b/definitions/grib2/tables/4/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.14.table b/definitions/grib2/tables/4/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.140.table b/definitions/grib2/tables/4/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.141.table b/definitions/grib2/tables/4/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.142.table b/definitions/grib2/tables/4/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.143.table b/definitions/grib2/tables/4/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.144.table b/definitions/grib2/tables/4/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.145.table b/definitions/grib2/tables/4/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.146.table b/definitions/grib2/tables/4/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.147.table b/definitions/grib2/tables/4/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.148.table b/definitions/grib2/tables/4/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.149.table b/definitions/grib2/tables/4/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.15.table b/definitions/grib2/tables/4/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.150.table b/definitions/grib2/tables/4/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.151.table b/definitions/grib2/tables/4/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.152.table b/definitions/grib2/tables/4/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.153.table b/definitions/grib2/tables/4/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.154.table b/definitions/grib2/tables/4/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.155.table b/definitions/grib2/tables/4/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.156.table b/definitions/grib2/tables/4/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.157.table b/definitions/grib2/tables/4/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.158.table b/definitions/grib2/tables/4/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.159.table b/definitions/grib2/tables/4/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.16.table b/definitions/grib2/tables/4/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.160.table b/definitions/grib2/tables/4/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.161.table b/definitions/grib2/tables/4/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.162.table b/definitions/grib2/tables/4/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.163.table b/definitions/grib2/tables/4/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.164.table b/definitions/grib2/tables/4/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.165.table b/definitions/grib2/tables/4/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.166.table b/definitions/grib2/tables/4/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.167.table b/definitions/grib2/tables/4/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.168.table b/definitions/grib2/tables/4/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.169.table b/definitions/grib2/tables/4/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.17.table b/definitions/grib2/tables/4/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.170.table b/definitions/grib2/tables/4/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.171.table b/definitions/grib2/tables/4/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.172.table b/definitions/grib2/tables/4/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.173.table b/definitions/grib2/tables/4/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.174.table b/definitions/grib2/tables/4/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.175.table b/definitions/grib2/tables/4/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.176.table b/definitions/grib2/tables/4/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.177.table b/definitions/grib2/tables/4/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.178.table b/definitions/grib2/tables/4/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.179.table b/definitions/grib2/tables/4/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.18.table b/definitions/grib2/tables/4/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.180.table b/definitions/grib2/tables/4/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.181.table b/definitions/grib2/tables/4/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.182.table b/definitions/grib2/tables/4/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.183.table b/definitions/grib2/tables/4/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.184.table b/definitions/grib2/tables/4/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.185.table b/definitions/grib2/tables/4/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.186.table b/definitions/grib2/tables/4/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.187.table b/definitions/grib2/tables/4/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.188.table b/definitions/grib2/tables/4/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.189.table b/definitions/grib2/tables/4/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.19.table b/definitions/grib2/tables/4/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.190.table b/definitions/grib2/tables/4/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.191.table b/definitions/grib2/tables/4/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.192.table b/definitions/grib2/tables/4/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.193.table b/definitions/grib2/tables/4/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.194.table b/definitions/grib2/tables/4/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.195.table b/definitions/grib2/tables/4/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.196.table b/definitions/grib2/tables/4/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.197.table b/definitions/grib2/tables/4/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.198.table b/definitions/grib2/tables/4/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.199.table b/definitions/grib2/tables/4/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.2.table b/definitions/grib2/tables/4/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.20.table b/definitions/grib2/tables/4/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.200.table b/definitions/grib2/tables/4/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.201.table b/definitions/grib2/tables/4/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.202.table b/definitions/grib2/tables/4/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.203.table b/definitions/grib2/tables/4/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.204.table b/definitions/grib2/tables/4/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.205.table b/definitions/grib2/tables/4/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.206.table b/definitions/grib2/tables/4/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.207.table b/definitions/grib2/tables/4/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.208.table b/definitions/grib2/tables/4/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.209.table b/definitions/grib2/tables/4/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.21.table b/definitions/grib2/tables/4/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.210.table b/definitions/grib2/tables/4/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.211.table b/definitions/grib2/tables/4/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.212.table b/definitions/grib2/tables/4/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.213.table b/definitions/grib2/tables/4/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.214.table b/definitions/grib2/tables/4/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.215.table b/definitions/grib2/tables/4/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.216.table b/definitions/grib2/tables/4/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.217.table b/definitions/grib2/tables/4/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.218.table b/definitions/grib2/tables/4/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.219.table b/definitions/grib2/tables/4/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.22.table b/definitions/grib2/tables/4/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.220.table b/definitions/grib2/tables/4/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.221.table b/definitions/grib2/tables/4/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.222.table b/definitions/grib2/tables/4/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.223.table b/definitions/grib2/tables/4/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.224.table b/definitions/grib2/tables/4/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.225.table b/definitions/grib2/tables/4/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.226.table b/definitions/grib2/tables/4/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.227.table b/definitions/grib2/tables/4/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.228.table b/definitions/grib2/tables/4/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.229.table b/definitions/grib2/tables/4/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.23.table b/definitions/grib2/tables/4/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.230.table b/definitions/grib2/tables/4/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.231.table b/definitions/grib2/tables/4/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.232.table b/definitions/grib2/tables/4/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.233.table b/definitions/grib2/tables/4/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.234.table b/definitions/grib2/tables/4/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.235.table b/definitions/grib2/tables/4/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.236.table b/definitions/grib2/tables/4/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.237.table b/definitions/grib2/tables/4/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.238.table b/definitions/grib2/tables/4/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.239.table b/definitions/grib2/tables/4/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.24.table b/definitions/grib2/tables/4/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.240.table b/definitions/grib2/tables/4/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.241.table b/definitions/grib2/tables/4/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.242.table b/definitions/grib2/tables/4/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.243.table b/definitions/grib2/tables/4/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.244.table b/definitions/grib2/tables/4/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.245.table b/definitions/grib2/tables/4/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.246.table b/definitions/grib2/tables/4/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.247.table b/definitions/grib2/tables/4/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.248.table b/definitions/grib2/tables/4/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.249.table b/definitions/grib2/tables/4/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.25.table b/definitions/grib2/tables/4/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.250.table b/definitions/grib2/tables/4/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.251.table b/definitions/grib2/tables/4/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.252.table b/definitions/grib2/tables/4/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.253.table b/definitions/grib2/tables/4/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.254.table b/definitions/grib2/tables/4/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.255.table b/definitions/grib2/tables/4/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.26.table b/definitions/grib2/tables/4/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.27.table b/definitions/grib2/tables/4/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.28.table b/definitions/grib2/tables/4/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.29.table b/definitions/grib2/tables/4/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.3.table b/definitions/grib2/tables/4/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.30.table b/definitions/grib2/tables/4/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.31.table b/definitions/grib2/tables/4/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.32.table b/definitions/grib2/tables/4/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.33.table b/definitions/grib2/tables/4/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.34.table b/definitions/grib2/tables/4/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.35.table b/definitions/grib2/tables/4/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.36.table b/definitions/grib2/tables/4/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.37.table b/definitions/grib2/tables/4/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.38.table b/definitions/grib2/tables/4/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.39.table b/definitions/grib2/tables/4/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.4.table b/definitions/grib2/tables/4/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.40.table b/definitions/grib2/tables/4/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.41.table b/definitions/grib2/tables/4/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.42.table b/definitions/grib2/tables/4/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.43.table b/definitions/grib2/tables/4/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.44.table b/definitions/grib2/tables/4/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.45.table b/definitions/grib2/tables/4/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.46.table b/definitions/grib2/tables/4/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.47.table b/definitions/grib2/tables/4/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.48.table b/definitions/grib2/tables/4/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.49.table b/definitions/grib2/tables/4/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.5.table b/definitions/grib2/tables/4/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.50.table b/definitions/grib2/tables/4/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.51.table b/definitions/grib2/tables/4/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.52.table b/definitions/grib2/tables/4/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.53.table b/definitions/grib2/tables/4/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.54.table b/definitions/grib2/tables/4/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.55.table b/definitions/grib2/tables/4/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.56.table b/definitions/grib2/tables/4/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.57.table b/definitions/grib2/tables/4/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.58.table b/definitions/grib2/tables/4/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.59.table b/definitions/grib2/tables/4/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.6.table b/definitions/grib2/tables/4/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.60.table b/definitions/grib2/tables/4/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.61.table b/definitions/grib2/tables/4/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.62.table b/definitions/grib2/tables/4/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.63.table b/definitions/grib2/tables/4/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.64.table b/definitions/grib2/tables/4/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.65.table b/definitions/grib2/tables/4/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.66.table b/definitions/grib2/tables/4/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.67.table b/definitions/grib2/tables/4/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.68.table b/definitions/grib2/tables/4/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.69.table b/definitions/grib2/tables/4/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.7.table b/definitions/grib2/tables/4/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.70.table b/definitions/grib2/tables/4/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.71.table b/definitions/grib2/tables/4/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.72.table b/definitions/grib2/tables/4/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.73.table b/definitions/grib2/tables/4/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.74.table b/definitions/grib2/tables/4/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.75.table b/definitions/grib2/tables/4/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.76.table b/definitions/grib2/tables/4/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.77.table b/definitions/grib2/tables/4/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.78.table b/definitions/grib2/tables/4/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.79.table b/definitions/grib2/tables/4/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.8.table b/definitions/grib2/tables/4/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.80.table b/definitions/grib2/tables/4/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.81.table b/definitions/grib2/tables/4/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.82.table b/definitions/grib2/tables/4/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.83.table b/definitions/grib2/tables/4/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.84.table b/definitions/grib2/tables/4/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.85.table b/definitions/grib2/tables/4/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.86.table b/definitions/grib2/tables/4/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.87.table b/definitions/grib2/tables/4/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.88.table b/definitions/grib2/tables/4/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.89.table b/definitions/grib2/tables/4/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.9.table b/definitions/grib2/tables/4/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.90.table b/definitions/grib2/tables/4/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.91.table b/definitions/grib2/tables/4/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.92.table b/definitions/grib2/tables/4/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.93.table b/definitions/grib2/tables/4/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.94.table b/definitions/grib2/tables/4/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.95.table b/definitions/grib2/tables/4/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.96.table b/definitions/grib2/tables/4/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.97.table b/definitions/grib2/tables/4/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.98.table b/definitions/grib2/tables/4/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/4/4.2.192.99.table b/definitions/grib2/tables/4/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/4/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.1.192.table b/definitions/grib2/tables/5/4.1.192.table
deleted file mode 100644
index 5ee0de0d5..000000000
--- a/definitions/grib2/tables/5/4.1.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
diff --git a/definitions/grib2/tables/5/4.2.192.0.table b/definitions/grib2/tables/5/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.1.table b/definitions/grib2/tables/5/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.10.table b/definitions/grib2/tables/5/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.100.table b/definitions/grib2/tables/5/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.101.table b/definitions/grib2/tables/5/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.102.table b/definitions/grib2/tables/5/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.103.table b/definitions/grib2/tables/5/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.104.table b/definitions/grib2/tables/5/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.105.table b/definitions/grib2/tables/5/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.106.table b/definitions/grib2/tables/5/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.107.table b/definitions/grib2/tables/5/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.108.table b/definitions/grib2/tables/5/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.109.table b/definitions/grib2/tables/5/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.11.table b/definitions/grib2/tables/5/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.110.table b/definitions/grib2/tables/5/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.111.table b/definitions/grib2/tables/5/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.112.table b/definitions/grib2/tables/5/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.113.table b/definitions/grib2/tables/5/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.114.table b/definitions/grib2/tables/5/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.115.table b/definitions/grib2/tables/5/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.116.table b/definitions/grib2/tables/5/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.117.table b/definitions/grib2/tables/5/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.118.table b/definitions/grib2/tables/5/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.119.table b/definitions/grib2/tables/5/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.12.table b/definitions/grib2/tables/5/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.120.table b/definitions/grib2/tables/5/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.121.table b/definitions/grib2/tables/5/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.122.table b/definitions/grib2/tables/5/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.123.table b/definitions/grib2/tables/5/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.124.table b/definitions/grib2/tables/5/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.125.table b/definitions/grib2/tables/5/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.126.table b/definitions/grib2/tables/5/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.127.table b/definitions/grib2/tables/5/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.128.table b/definitions/grib2/tables/5/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.129.table b/definitions/grib2/tables/5/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.13.table b/definitions/grib2/tables/5/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.130.table b/definitions/grib2/tables/5/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.131.table b/definitions/grib2/tables/5/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.132.table b/definitions/grib2/tables/5/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.133.table b/definitions/grib2/tables/5/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.134.table b/definitions/grib2/tables/5/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.135.table b/definitions/grib2/tables/5/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.136.table b/definitions/grib2/tables/5/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.137.table b/definitions/grib2/tables/5/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.138.table b/definitions/grib2/tables/5/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.139.table b/definitions/grib2/tables/5/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.14.table b/definitions/grib2/tables/5/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.140.table b/definitions/grib2/tables/5/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.141.table b/definitions/grib2/tables/5/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.142.table b/definitions/grib2/tables/5/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.143.table b/definitions/grib2/tables/5/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.144.table b/definitions/grib2/tables/5/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.145.table b/definitions/grib2/tables/5/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.146.table b/definitions/grib2/tables/5/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.147.table b/definitions/grib2/tables/5/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.148.table b/definitions/grib2/tables/5/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.149.table b/definitions/grib2/tables/5/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.15.table b/definitions/grib2/tables/5/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.150.table b/definitions/grib2/tables/5/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.151.table b/definitions/grib2/tables/5/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.152.table b/definitions/grib2/tables/5/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.153.table b/definitions/grib2/tables/5/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.154.table b/definitions/grib2/tables/5/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.155.table b/definitions/grib2/tables/5/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.156.table b/definitions/grib2/tables/5/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.157.table b/definitions/grib2/tables/5/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.158.table b/definitions/grib2/tables/5/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.159.table b/definitions/grib2/tables/5/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.16.table b/definitions/grib2/tables/5/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.160.table b/definitions/grib2/tables/5/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.161.table b/definitions/grib2/tables/5/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.162.table b/definitions/grib2/tables/5/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.163.table b/definitions/grib2/tables/5/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.164.table b/definitions/grib2/tables/5/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.165.table b/definitions/grib2/tables/5/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.166.table b/definitions/grib2/tables/5/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.167.table b/definitions/grib2/tables/5/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.168.table b/definitions/grib2/tables/5/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.169.table b/definitions/grib2/tables/5/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.17.table b/definitions/grib2/tables/5/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.170.table b/definitions/grib2/tables/5/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.171.table b/definitions/grib2/tables/5/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.172.table b/definitions/grib2/tables/5/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.173.table b/definitions/grib2/tables/5/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.174.table b/definitions/grib2/tables/5/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.175.table b/definitions/grib2/tables/5/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.176.table b/definitions/grib2/tables/5/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.177.table b/definitions/grib2/tables/5/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.178.table b/definitions/grib2/tables/5/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.179.table b/definitions/grib2/tables/5/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.18.table b/definitions/grib2/tables/5/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.180.table b/definitions/grib2/tables/5/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.181.table b/definitions/grib2/tables/5/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.182.table b/definitions/grib2/tables/5/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.183.table b/definitions/grib2/tables/5/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.184.table b/definitions/grib2/tables/5/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.185.table b/definitions/grib2/tables/5/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.186.table b/definitions/grib2/tables/5/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.187.table b/definitions/grib2/tables/5/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.188.table b/definitions/grib2/tables/5/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.189.table b/definitions/grib2/tables/5/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.19.table b/definitions/grib2/tables/5/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.190.table b/definitions/grib2/tables/5/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.191.table b/definitions/grib2/tables/5/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.192.table b/definitions/grib2/tables/5/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.193.table b/definitions/grib2/tables/5/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.194.table b/definitions/grib2/tables/5/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.195.table b/definitions/grib2/tables/5/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.196.table b/definitions/grib2/tables/5/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.197.table b/definitions/grib2/tables/5/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.198.table b/definitions/grib2/tables/5/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.199.table b/definitions/grib2/tables/5/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.2.table b/definitions/grib2/tables/5/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.20.table b/definitions/grib2/tables/5/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.200.table b/definitions/grib2/tables/5/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.201.table b/definitions/grib2/tables/5/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.202.table b/definitions/grib2/tables/5/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.203.table b/definitions/grib2/tables/5/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.204.table b/definitions/grib2/tables/5/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.205.table b/definitions/grib2/tables/5/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.206.table b/definitions/grib2/tables/5/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.207.table b/definitions/grib2/tables/5/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.208.table b/definitions/grib2/tables/5/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.209.table b/definitions/grib2/tables/5/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.21.table b/definitions/grib2/tables/5/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.210.table b/definitions/grib2/tables/5/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.211.table b/definitions/grib2/tables/5/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.212.table b/definitions/grib2/tables/5/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.213.table b/definitions/grib2/tables/5/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.214.table b/definitions/grib2/tables/5/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.215.table b/definitions/grib2/tables/5/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.216.table b/definitions/grib2/tables/5/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.217.table b/definitions/grib2/tables/5/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.218.table b/definitions/grib2/tables/5/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.219.table b/definitions/grib2/tables/5/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.22.table b/definitions/grib2/tables/5/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.220.table b/definitions/grib2/tables/5/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.221.table b/definitions/grib2/tables/5/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.222.table b/definitions/grib2/tables/5/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.223.table b/definitions/grib2/tables/5/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.224.table b/definitions/grib2/tables/5/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.225.table b/definitions/grib2/tables/5/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.226.table b/definitions/grib2/tables/5/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.227.table b/definitions/grib2/tables/5/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.228.table b/definitions/grib2/tables/5/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.229.table b/definitions/grib2/tables/5/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.23.table b/definitions/grib2/tables/5/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.230.table b/definitions/grib2/tables/5/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.231.table b/definitions/grib2/tables/5/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.232.table b/definitions/grib2/tables/5/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.233.table b/definitions/grib2/tables/5/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.234.table b/definitions/grib2/tables/5/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.235.table b/definitions/grib2/tables/5/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.236.table b/definitions/grib2/tables/5/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.237.table b/definitions/grib2/tables/5/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.238.table b/definitions/grib2/tables/5/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.239.table b/definitions/grib2/tables/5/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.24.table b/definitions/grib2/tables/5/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.240.table b/definitions/grib2/tables/5/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.241.table b/definitions/grib2/tables/5/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.242.table b/definitions/grib2/tables/5/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.243.table b/definitions/grib2/tables/5/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.244.table b/definitions/grib2/tables/5/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.245.table b/definitions/grib2/tables/5/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.246.table b/definitions/grib2/tables/5/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.247.table b/definitions/grib2/tables/5/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.248.table b/definitions/grib2/tables/5/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.249.table b/definitions/grib2/tables/5/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.25.table b/definitions/grib2/tables/5/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.250.table b/definitions/grib2/tables/5/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.251.table b/definitions/grib2/tables/5/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.252.table b/definitions/grib2/tables/5/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.253.table b/definitions/grib2/tables/5/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.254.table b/definitions/grib2/tables/5/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.255.table b/definitions/grib2/tables/5/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.26.table b/definitions/grib2/tables/5/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.27.table b/definitions/grib2/tables/5/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.28.table b/definitions/grib2/tables/5/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.29.table b/definitions/grib2/tables/5/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.3.table b/definitions/grib2/tables/5/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.30.table b/definitions/grib2/tables/5/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.31.table b/definitions/grib2/tables/5/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.32.table b/definitions/grib2/tables/5/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.33.table b/definitions/grib2/tables/5/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.34.table b/definitions/grib2/tables/5/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.35.table b/definitions/grib2/tables/5/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.36.table b/definitions/grib2/tables/5/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.37.table b/definitions/grib2/tables/5/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.38.table b/definitions/grib2/tables/5/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.39.table b/definitions/grib2/tables/5/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.4.table b/definitions/grib2/tables/5/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.40.table b/definitions/grib2/tables/5/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.41.table b/definitions/grib2/tables/5/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.42.table b/definitions/grib2/tables/5/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.43.table b/definitions/grib2/tables/5/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.44.table b/definitions/grib2/tables/5/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.45.table b/definitions/grib2/tables/5/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.46.table b/definitions/grib2/tables/5/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.47.table b/definitions/grib2/tables/5/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.48.table b/definitions/grib2/tables/5/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.49.table b/definitions/grib2/tables/5/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.5.table b/definitions/grib2/tables/5/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.50.table b/definitions/grib2/tables/5/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.51.table b/definitions/grib2/tables/5/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.52.table b/definitions/grib2/tables/5/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.53.table b/definitions/grib2/tables/5/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.54.table b/definitions/grib2/tables/5/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.55.table b/definitions/grib2/tables/5/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.56.table b/definitions/grib2/tables/5/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.57.table b/definitions/grib2/tables/5/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.58.table b/definitions/grib2/tables/5/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.59.table b/definitions/grib2/tables/5/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.6.table b/definitions/grib2/tables/5/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.60.table b/definitions/grib2/tables/5/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.61.table b/definitions/grib2/tables/5/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.62.table b/definitions/grib2/tables/5/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.63.table b/definitions/grib2/tables/5/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.64.table b/definitions/grib2/tables/5/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.65.table b/definitions/grib2/tables/5/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.66.table b/definitions/grib2/tables/5/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.67.table b/definitions/grib2/tables/5/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.68.table b/definitions/grib2/tables/5/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.69.table b/definitions/grib2/tables/5/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.7.table b/definitions/grib2/tables/5/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.70.table b/definitions/grib2/tables/5/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.71.table b/definitions/grib2/tables/5/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.72.table b/definitions/grib2/tables/5/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.73.table b/definitions/grib2/tables/5/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.74.table b/definitions/grib2/tables/5/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.75.table b/definitions/grib2/tables/5/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.76.table b/definitions/grib2/tables/5/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.77.table b/definitions/grib2/tables/5/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.78.table b/definitions/grib2/tables/5/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.79.table b/definitions/grib2/tables/5/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.8.table b/definitions/grib2/tables/5/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.80.table b/definitions/grib2/tables/5/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.81.table b/definitions/grib2/tables/5/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.82.table b/definitions/grib2/tables/5/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.83.table b/definitions/grib2/tables/5/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.84.table b/definitions/grib2/tables/5/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.85.table b/definitions/grib2/tables/5/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.86.table b/definitions/grib2/tables/5/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.87.table b/definitions/grib2/tables/5/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.88.table b/definitions/grib2/tables/5/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.89.table b/definitions/grib2/tables/5/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.9.table b/definitions/grib2/tables/5/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.90.table b/definitions/grib2/tables/5/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.91.table b/definitions/grib2/tables/5/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.92.table b/definitions/grib2/tables/5/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.93.table b/definitions/grib2/tables/5/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.94.table b/definitions/grib2/tables/5/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.95.table b/definitions/grib2/tables/5/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.96.table b/definitions/grib2/tables/5/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.97.table b/definitions/grib2/tables/5/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.98.table b/definitions/grib2/tables/5/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/5/4.2.192.99.table b/definitions/grib2/tables/5/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/5/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/1.1.table b/definitions/grib2/tables/6/1.1.table
index 6c5a60361..6ccac21de 100644
--- a/definitions/grib2/tables/6/1.1.table
+++ b/definitions/grib2/tables/6/1.1.table
@@ -1,5 +1,5 @@
# Code Table 1.1 GRIB Local Tables Version Number
-0 0 Local tables not used
+0 0 Local tables not used
# . Only table entries and templates from the current Master table are valid.
# 1-254 Number of local tables version used
255 255 Missing
diff --git a/definitions/grib2/tables/6/4.1.192.table b/definitions/grib2/tables/6/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/6/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/6/4.2.192.0.table b/definitions/grib2/tables/6/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.1.table b/definitions/grib2/tables/6/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.10.table b/definitions/grib2/tables/6/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.100.table b/definitions/grib2/tables/6/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.101.table b/definitions/grib2/tables/6/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.102.table b/definitions/grib2/tables/6/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.103.table b/definitions/grib2/tables/6/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.104.table b/definitions/grib2/tables/6/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.105.table b/definitions/grib2/tables/6/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.106.table b/definitions/grib2/tables/6/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.107.table b/definitions/grib2/tables/6/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.108.table b/definitions/grib2/tables/6/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.109.table b/definitions/grib2/tables/6/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.11.table b/definitions/grib2/tables/6/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.110.table b/definitions/grib2/tables/6/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.111.table b/definitions/grib2/tables/6/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.112.table b/definitions/grib2/tables/6/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.113.table b/definitions/grib2/tables/6/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.114.table b/definitions/grib2/tables/6/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.115.table b/definitions/grib2/tables/6/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.116.table b/definitions/grib2/tables/6/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.117.table b/definitions/grib2/tables/6/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.118.table b/definitions/grib2/tables/6/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.119.table b/definitions/grib2/tables/6/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.12.table b/definitions/grib2/tables/6/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.120.table b/definitions/grib2/tables/6/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.121.table b/definitions/grib2/tables/6/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.122.table b/definitions/grib2/tables/6/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.123.table b/definitions/grib2/tables/6/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.124.table b/definitions/grib2/tables/6/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.125.table b/definitions/grib2/tables/6/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.126.table b/definitions/grib2/tables/6/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.127.table b/definitions/grib2/tables/6/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.128.table b/definitions/grib2/tables/6/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.129.table b/definitions/grib2/tables/6/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.13.table b/definitions/grib2/tables/6/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.130.table b/definitions/grib2/tables/6/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.131.table b/definitions/grib2/tables/6/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.132.table b/definitions/grib2/tables/6/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.133.table b/definitions/grib2/tables/6/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.134.table b/definitions/grib2/tables/6/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.135.table b/definitions/grib2/tables/6/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.136.table b/definitions/grib2/tables/6/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.137.table b/definitions/grib2/tables/6/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.138.table b/definitions/grib2/tables/6/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.139.table b/definitions/grib2/tables/6/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.14.table b/definitions/grib2/tables/6/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.140.table b/definitions/grib2/tables/6/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.141.table b/definitions/grib2/tables/6/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.142.table b/definitions/grib2/tables/6/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.143.table b/definitions/grib2/tables/6/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.144.table b/definitions/grib2/tables/6/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.145.table b/definitions/grib2/tables/6/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.146.table b/definitions/grib2/tables/6/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.147.table b/definitions/grib2/tables/6/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.148.table b/definitions/grib2/tables/6/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.149.table b/definitions/grib2/tables/6/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.15.table b/definitions/grib2/tables/6/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.150.table b/definitions/grib2/tables/6/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.151.table b/definitions/grib2/tables/6/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.152.table b/definitions/grib2/tables/6/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.153.table b/definitions/grib2/tables/6/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.154.table b/definitions/grib2/tables/6/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.155.table b/definitions/grib2/tables/6/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.156.table b/definitions/grib2/tables/6/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.157.table b/definitions/grib2/tables/6/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.158.table b/definitions/grib2/tables/6/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.159.table b/definitions/grib2/tables/6/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.16.table b/definitions/grib2/tables/6/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.160.table b/definitions/grib2/tables/6/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.161.table b/definitions/grib2/tables/6/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.162.table b/definitions/grib2/tables/6/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.163.table b/definitions/grib2/tables/6/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.164.table b/definitions/grib2/tables/6/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.165.table b/definitions/grib2/tables/6/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.166.table b/definitions/grib2/tables/6/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.167.table b/definitions/grib2/tables/6/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.168.table b/definitions/grib2/tables/6/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.169.table b/definitions/grib2/tables/6/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.17.table b/definitions/grib2/tables/6/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.170.table b/definitions/grib2/tables/6/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.171.table b/definitions/grib2/tables/6/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.172.table b/definitions/grib2/tables/6/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.173.table b/definitions/grib2/tables/6/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.174.table b/definitions/grib2/tables/6/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.175.table b/definitions/grib2/tables/6/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.176.table b/definitions/grib2/tables/6/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.177.table b/definitions/grib2/tables/6/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.178.table b/definitions/grib2/tables/6/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.179.table b/definitions/grib2/tables/6/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.18.table b/definitions/grib2/tables/6/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.180.table b/definitions/grib2/tables/6/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.181.table b/definitions/grib2/tables/6/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.182.table b/definitions/grib2/tables/6/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.183.table b/definitions/grib2/tables/6/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.184.table b/definitions/grib2/tables/6/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.185.table b/definitions/grib2/tables/6/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.186.table b/definitions/grib2/tables/6/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.187.table b/definitions/grib2/tables/6/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.188.table b/definitions/grib2/tables/6/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.189.table b/definitions/grib2/tables/6/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.19.table b/definitions/grib2/tables/6/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.190.table b/definitions/grib2/tables/6/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.191.table b/definitions/grib2/tables/6/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.192.table b/definitions/grib2/tables/6/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.193.table b/definitions/grib2/tables/6/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.194.table b/definitions/grib2/tables/6/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.195.table b/definitions/grib2/tables/6/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.196.table b/definitions/grib2/tables/6/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.197.table b/definitions/grib2/tables/6/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.198.table b/definitions/grib2/tables/6/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.199.table b/definitions/grib2/tables/6/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.2.table b/definitions/grib2/tables/6/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.20.table b/definitions/grib2/tables/6/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.200.table b/definitions/grib2/tables/6/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.201.table b/definitions/grib2/tables/6/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.202.table b/definitions/grib2/tables/6/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.203.table b/definitions/grib2/tables/6/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.204.table b/definitions/grib2/tables/6/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.205.table b/definitions/grib2/tables/6/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.206.table b/definitions/grib2/tables/6/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.207.table b/definitions/grib2/tables/6/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.208.table b/definitions/grib2/tables/6/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.209.table b/definitions/grib2/tables/6/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.21.table b/definitions/grib2/tables/6/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.210.table b/definitions/grib2/tables/6/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.211.table b/definitions/grib2/tables/6/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.212.table b/definitions/grib2/tables/6/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.213.table b/definitions/grib2/tables/6/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.214.table b/definitions/grib2/tables/6/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.215.table b/definitions/grib2/tables/6/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.216.table b/definitions/grib2/tables/6/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.217.table b/definitions/grib2/tables/6/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.218.table b/definitions/grib2/tables/6/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.219.table b/definitions/grib2/tables/6/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.22.table b/definitions/grib2/tables/6/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.220.table b/definitions/grib2/tables/6/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.221.table b/definitions/grib2/tables/6/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.222.table b/definitions/grib2/tables/6/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.223.table b/definitions/grib2/tables/6/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.224.table b/definitions/grib2/tables/6/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.225.table b/definitions/grib2/tables/6/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.226.table b/definitions/grib2/tables/6/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.227.table b/definitions/grib2/tables/6/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.228.table b/definitions/grib2/tables/6/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.229.table b/definitions/grib2/tables/6/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.23.table b/definitions/grib2/tables/6/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.230.table b/definitions/grib2/tables/6/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.231.table b/definitions/grib2/tables/6/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.232.table b/definitions/grib2/tables/6/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.233.table b/definitions/grib2/tables/6/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.234.table b/definitions/grib2/tables/6/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.235.table b/definitions/grib2/tables/6/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.236.table b/definitions/grib2/tables/6/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.237.table b/definitions/grib2/tables/6/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.238.table b/definitions/grib2/tables/6/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.239.table b/definitions/grib2/tables/6/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.24.table b/definitions/grib2/tables/6/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.240.table b/definitions/grib2/tables/6/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.241.table b/definitions/grib2/tables/6/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.242.table b/definitions/grib2/tables/6/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.243.table b/definitions/grib2/tables/6/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.244.table b/definitions/grib2/tables/6/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.245.table b/definitions/grib2/tables/6/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.246.table b/definitions/grib2/tables/6/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.247.table b/definitions/grib2/tables/6/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.248.table b/definitions/grib2/tables/6/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.249.table b/definitions/grib2/tables/6/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.25.table b/definitions/grib2/tables/6/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.250.table b/definitions/grib2/tables/6/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.251.table b/definitions/grib2/tables/6/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.252.table b/definitions/grib2/tables/6/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.253.table b/definitions/grib2/tables/6/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.254.table b/definitions/grib2/tables/6/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.255.table b/definitions/grib2/tables/6/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.26.table b/definitions/grib2/tables/6/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.27.table b/definitions/grib2/tables/6/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.28.table b/definitions/grib2/tables/6/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.29.table b/definitions/grib2/tables/6/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.3.table b/definitions/grib2/tables/6/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.30.table b/definitions/grib2/tables/6/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.31.table b/definitions/grib2/tables/6/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.32.table b/definitions/grib2/tables/6/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.33.table b/definitions/grib2/tables/6/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.34.table b/definitions/grib2/tables/6/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.35.table b/definitions/grib2/tables/6/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.36.table b/definitions/grib2/tables/6/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.37.table b/definitions/grib2/tables/6/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.38.table b/definitions/grib2/tables/6/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.39.table b/definitions/grib2/tables/6/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.4.table b/definitions/grib2/tables/6/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.40.table b/definitions/grib2/tables/6/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.41.table b/definitions/grib2/tables/6/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.42.table b/definitions/grib2/tables/6/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.43.table b/definitions/grib2/tables/6/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.44.table b/definitions/grib2/tables/6/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.45.table b/definitions/grib2/tables/6/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.46.table b/definitions/grib2/tables/6/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.47.table b/definitions/grib2/tables/6/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.48.table b/definitions/grib2/tables/6/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.49.table b/definitions/grib2/tables/6/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.5.table b/definitions/grib2/tables/6/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.50.table b/definitions/grib2/tables/6/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.51.table b/definitions/grib2/tables/6/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.52.table b/definitions/grib2/tables/6/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.53.table b/definitions/grib2/tables/6/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.54.table b/definitions/grib2/tables/6/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.55.table b/definitions/grib2/tables/6/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.56.table b/definitions/grib2/tables/6/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.57.table b/definitions/grib2/tables/6/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.58.table b/definitions/grib2/tables/6/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.59.table b/definitions/grib2/tables/6/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.6.table b/definitions/grib2/tables/6/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.60.table b/definitions/grib2/tables/6/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.61.table b/definitions/grib2/tables/6/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.62.table b/definitions/grib2/tables/6/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.63.table b/definitions/grib2/tables/6/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.64.table b/definitions/grib2/tables/6/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.65.table b/definitions/grib2/tables/6/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.66.table b/definitions/grib2/tables/6/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.67.table b/definitions/grib2/tables/6/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.68.table b/definitions/grib2/tables/6/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.69.table b/definitions/grib2/tables/6/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.7.table b/definitions/grib2/tables/6/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.70.table b/definitions/grib2/tables/6/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.71.table b/definitions/grib2/tables/6/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.72.table b/definitions/grib2/tables/6/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.73.table b/definitions/grib2/tables/6/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.74.table b/definitions/grib2/tables/6/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.75.table b/definitions/grib2/tables/6/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.76.table b/definitions/grib2/tables/6/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.77.table b/definitions/grib2/tables/6/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.78.table b/definitions/grib2/tables/6/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.79.table b/definitions/grib2/tables/6/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.8.table b/definitions/grib2/tables/6/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.80.table b/definitions/grib2/tables/6/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.81.table b/definitions/grib2/tables/6/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.82.table b/definitions/grib2/tables/6/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.83.table b/definitions/grib2/tables/6/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.84.table b/definitions/grib2/tables/6/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.85.table b/definitions/grib2/tables/6/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.86.table b/definitions/grib2/tables/6/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.87.table b/definitions/grib2/tables/6/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.88.table b/definitions/grib2/tables/6/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.89.table b/definitions/grib2/tables/6/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.9.table b/definitions/grib2/tables/6/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.90.table b/definitions/grib2/tables/6/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.91.table b/definitions/grib2/tables/6/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.92.table b/definitions/grib2/tables/6/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.93.table b/definitions/grib2/tables/6/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.94.table b/definitions/grib2/tables/6/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.95.table b/definitions/grib2/tables/6/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.96.table b/definitions/grib2/tables/6/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.97.table b/definitions/grib2/tables/6/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.98.table b/definitions/grib2/tables/6/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.2.192.99.table b/definitions/grib2/tables/6/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/6/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/6/4.5.table b/definitions/grib2/tables/6/4.5.table
index 9be96e9da..5b80a90fc 100644
--- a/definitions/grib2/tables/6/4.5.table
+++ b/definitions/grib2/tables/6/4.5.table
@@ -1,13 +1,13 @@
#Code table 4.5: Fixed surface types and units
0 0 Reserved
-1 sfc Ground or water surface
-2 2 Cloud base level
-3 3 Level of cloud tops
-4 4 Level of 0 degree C isotherm
+1 sfc Ground or water surface
+2 2 Cloud base level
+3 3 Level of cloud tops
+4 4 Level of 0 degree C isotherm
5 5 Level of adiabatic condensation lifted from the surface
-6 6 Maximum wind level
-7 sfc Tropopause
-8 sfc Nominal top of the atmosphere
+6 6 Maximum wind level
+7 sfc Tropopause
+8 sfc Nominal top of the atmosphere
9 9 Sea bottom
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
diff --git a/definitions/grib2/tables/7/1.1.table b/definitions/grib2/tables/7/1.1.table
index 6c5a60361..6ccac21de 100644
--- a/definitions/grib2/tables/7/1.1.table
+++ b/definitions/grib2/tables/7/1.1.table
@@ -1,5 +1,5 @@
# Code Table 1.1 GRIB Local Tables Version Number
-0 0 Local tables not used
+0 0 Local tables not used
# . Only table entries and templates from the current Master table are valid.
# 1-254 Number of local tables version used
255 255 Missing
diff --git a/definitions/grib2/tables/7/3.10.table b/definitions/grib2/tables/7/3.10.table
index e4a446b9a..04686d32e 100644
--- a/definitions/grib2/tables/7/3.10.table
+++ b/definitions/grib2/tables/7/3.10.table
@@ -5,4 +5,4 @@
2 1 Points scan in -j direction, i.e. from east to west
3 0 Adjacent points in i direction are consecutive
3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/7/3.4.table b/definitions/grib2/tables/7/3.4.table
index 72e3343b7..d3cad225c 100644
--- a/definitions/grib2/tables/7/3.4.table
+++ b/definitions/grib2/tables/7/3.4.table
@@ -7,4 +7,4 @@
3 1 Adjacent points in j (y) direction is consecutive
4 0 All rows scan in the same direction
4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/7/3.9.table b/definitions/grib2/tables/7/3.9.table
index 5edac03a5..cc2e6104b 100644
--- a/definitions/grib2/tables/7/3.9.table
+++ b/definitions/grib2/tables/7/3.9.table
@@ -1,4 +1,4 @@
# FLAG TABLE 3.9, Numbering order of diamonds as seen from the corresponding pole
1 0 Clockwise orientation
1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/7/4.1.192.table b/definitions/grib2/tables/7/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/7/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/7/4.2.192.0.table b/definitions/grib2/tables/7/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.1.table b/definitions/grib2/tables/7/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.10.table b/definitions/grib2/tables/7/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.100.table b/definitions/grib2/tables/7/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.101.table b/definitions/grib2/tables/7/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.102.table b/definitions/grib2/tables/7/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.103.table b/definitions/grib2/tables/7/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.104.table b/definitions/grib2/tables/7/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.105.table b/definitions/grib2/tables/7/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.106.table b/definitions/grib2/tables/7/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.107.table b/definitions/grib2/tables/7/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.108.table b/definitions/grib2/tables/7/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.109.table b/definitions/grib2/tables/7/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.11.table b/definitions/grib2/tables/7/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.110.table b/definitions/grib2/tables/7/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.111.table b/definitions/grib2/tables/7/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.112.table b/definitions/grib2/tables/7/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.113.table b/definitions/grib2/tables/7/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.114.table b/definitions/grib2/tables/7/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.115.table b/definitions/grib2/tables/7/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.116.table b/definitions/grib2/tables/7/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.117.table b/definitions/grib2/tables/7/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.118.table b/definitions/grib2/tables/7/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.119.table b/definitions/grib2/tables/7/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.12.table b/definitions/grib2/tables/7/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.120.table b/definitions/grib2/tables/7/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.121.table b/definitions/grib2/tables/7/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.122.table b/definitions/grib2/tables/7/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.123.table b/definitions/grib2/tables/7/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.124.table b/definitions/grib2/tables/7/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.125.table b/definitions/grib2/tables/7/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.126.table b/definitions/grib2/tables/7/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.127.table b/definitions/grib2/tables/7/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.128.table b/definitions/grib2/tables/7/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.129.table b/definitions/grib2/tables/7/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.13.table b/definitions/grib2/tables/7/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.130.table b/definitions/grib2/tables/7/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.131.table b/definitions/grib2/tables/7/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.132.table b/definitions/grib2/tables/7/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.133.table b/definitions/grib2/tables/7/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.134.table b/definitions/grib2/tables/7/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.135.table b/definitions/grib2/tables/7/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.136.table b/definitions/grib2/tables/7/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.137.table b/definitions/grib2/tables/7/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.138.table b/definitions/grib2/tables/7/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.139.table b/definitions/grib2/tables/7/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.14.table b/definitions/grib2/tables/7/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.140.table b/definitions/grib2/tables/7/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.141.table b/definitions/grib2/tables/7/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.142.table b/definitions/grib2/tables/7/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.143.table b/definitions/grib2/tables/7/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.144.table b/definitions/grib2/tables/7/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.145.table b/definitions/grib2/tables/7/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.146.table b/definitions/grib2/tables/7/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.147.table b/definitions/grib2/tables/7/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.148.table b/definitions/grib2/tables/7/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.149.table b/definitions/grib2/tables/7/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.15.table b/definitions/grib2/tables/7/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.150.table b/definitions/grib2/tables/7/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.151.table b/definitions/grib2/tables/7/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.152.table b/definitions/grib2/tables/7/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.153.table b/definitions/grib2/tables/7/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.154.table b/definitions/grib2/tables/7/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.155.table b/definitions/grib2/tables/7/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.156.table b/definitions/grib2/tables/7/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.157.table b/definitions/grib2/tables/7/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.158.table b/definitions/grib2/tables/7/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.159.table b/definitions/grib2/tables/7/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.16.table b/definitions/grib2/tables/7/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.160.table b/definitions/grib2/tables/7/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.161.table b/definitions/grib2/tables/7/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.162.table b/definitions/grib2/tables/7/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.163.table b/definitions/grib2/tables/7/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.164.table b/definitions/grib2/tables/7/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.165.table b/definitions/grib2/tables/7/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.166.table b/definitions/grib2/tables/7/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.167.table b/definitions/grib2/tables/7/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.168.table b/definitions/grib2/tables/7/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.169.table b/definitions/grib2/tables/7/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.17.table b/definitions/grib2/tables/7/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.170.table b/definitions/grib2/tables/7/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.171.table b/definitions/grib2/tables/7/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.172.table b/definitions/grib2/tables/7/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.173.table b/definitions/grib2/tables/7/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.174.table b/definitions/grib2/tables/7/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.175.table b/definitions/grib2/tables/7/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.176.table b/definitions/grib2/tables/7/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.177.table b/definitions/grib2/tables/7/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.178.table b/definitions/grib2/tables/7/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.179.table b/definitions/grib2/tables/7/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.18.table b/definitions/grib2/tables/7/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.180.table b/definitions/grib2/tables/7/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.181.table b/definitions/grib2/tables/7/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.182.table b/definitions/grib2/tables/7/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.183.table b/definitions/grib2/tables/7/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.184.table b/definitions/grib2/tables/7/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.185.table b/definitions/grib2/tables/7/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.186.table b/definitions/grib2/tables/7/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.187.table b/definitions/grib2/tables/7/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.188.table b/definitions/grib2/tables/7/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.189.table b/definitions/grib2/tables/7/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.19.table b/definitions/grib2/tables/7/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.190.table b/definitions/grib2/tables/7/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.191.table b/definitions/grib2/tables/7/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.192.table b/definitions/grib2/tables/7/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.193.table b/definitions/grib2/tables/7/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.194.table b/definitions/grib2/tables/7/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.195.table b/definitions/grib2/tables/7/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.196.table b/definitions/grib2/tables/7/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.197.table b/definitions/grib2/tables/7/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.198.table b/definitions/grib2/tables/7/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.199.table b/definitions/grib2/tables/7/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.2.table b/definitions/grib2/tables/7/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.20.table b/definitions/grib2/tables/7/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.200.table b/definitions/grib2/tables/7/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.201.table b/definitions/grib2/tables/7/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.202.table b/definitions/grib2/tables/7/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.203.table b/definitions/grib2/tables/7/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.204.table b/definitions/grib2/tables/7/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.205.table b/definitions/grib2/tables/7/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.206.table b/definitions/grib2/tables/7/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.207.table b/definitions/grib2/tables/7/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.208.table b/definitions/grib2/tables/7/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.209.table b/definitions/grib2/tables/7/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.21.table b/definitions/grib2/tables/7/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.210.table b/definitions/grib2/tables/7/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.211.table b/definitions/grib2/tables/7/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.212.table b/definitions/grib2/tables/7/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.213.table b/definitions/grib2/tables/7/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.214.table b/definitions/grib2/tables/7/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.215.table b/definitions/grib2/tables/7/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.216.table b/definitions/grib2/tables/7/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.217.table b/definitions/grib2/tables/7/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.218.table b/definitions/grib2/tables/7/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.219.table b/definitions/grib2/tables/7/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.22.table b/definitions/grib2/tables/7/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.220.table b/definitions/grib2/tables/7/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.221.table b/definitions/grib2/tables/7/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.222.table b/definitions/grib2/tables/7/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.223.table b/definitions/grib2/tables/7/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.224.table b/definitions/grib2/tables/7/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.225.table b/definitions/grib2/tables/7/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.226.table b/definitions/grib2/tables/7/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.227.table b/definitions/grib2/tables/7/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.228.table b/definitions/grib2/tables/7/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.229.table b/definitions/grib2/tables/7/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.23.table b/definitions/grib2/tables/7/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.230.table b/definitions/grib2/tables/7/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.231.table b/definitions/grib2/tables/7/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.232.table b/definitions/grib2/tables/7/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.233.table b/definitions/grib2/tables/7/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.234.table b/definitions/grib2/tables/7/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.235.table b/definitions/grib2/tables/7/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.236.table b/definitions/grib2/tables/7/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.237.table b/definitions/grib2/tables/7/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.238.table b/definitions/grib2/tables/7/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.239.table b/definitions/grib2/tables/7/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.24.table b/definitions/grib2/tables/7/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.240.table b/definitions/grib2/tables/7/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.241.table b/definitions/grib2/tables/7/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.242.table b/definitions/grib2/tables/7/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.243.table b/definitions/grib2/tables/7/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.244.table b/definitions/grib2/tables/7/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.245.table b/definitions/grib2/tables/7/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.246.table b/definitions/grib2/tables/7/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.247.table b/definitions/grib2/tables/7/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.248.table b/definitions/grib2/tables/7/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.249.table b/definitions/grib2/tables/7/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.25.table b/definitions/grib2/tables/7/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.250.table b/definitions/grib2/tables/7/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.251.table b/definitions/grib2/tables/7/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.252.table b/definitions/grib2/tables/7/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.253.table b/definitions/grib2/tables/7/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.254.table b/definitions/grib2/tables/7/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.255.table b/definitions/grib2/tables/7/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.26.table b/definitions/grib2/tables/7/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.27.table b/definitions/grib2/tables/7/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.28.table b/definitions/grib2/tables/7/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.29.table b/definitions/grib2/tables/7/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.3.table b/definitions/grib2/tables/7/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.30.table b/definitions/grib2/tables/7/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.31.table b/definitions/grib2/tables/7/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.32.table b/definitions/grib2/tables/7/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.33.table b/definitions/grib2/tables/7/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.34.table b/definitions/grib2/tables/7/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.35.table b/definitions/grib2/tables/7/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.36.table b/definitions/grib2/tables/7/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.37.table b/definitions/grib2/tables/7/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.38.table b/definitions/grib2/tables/7/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.39.table b/definitions/grib2/tables/7/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.4.table b/definitions/grib2/tables/7/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.40.table b/definitions/grib2/tables/7/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.41.table b/definitions/grib2/tables/7/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.42.table b/definitions/grib2/tables/7/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.43.table b/definitions/grib2/tables/7/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.44.table b/definitions/grib2/tables/7/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.45.table b/definitions/grib2/tables/7/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.46.table b/definitions/grib2/tables/7/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.47.table b/definitions/grib2/tables/7/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.48.table b/definitions/grib2/tables/7/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.49.table b/definitions/grib2/tables/7/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.5.table b/definitions/grib2/tables/7/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.50.table b/definitions/grib2/tables/7/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.51.table b/definitions/grib2/tables/7/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.52.table b/definitions/grib2/tables/7/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.53.table b/definitions/grib2/tables/7/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.54.table b/definitions/grib2/tables/7/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.55.table b/definitions/grib2/tables/7/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.56.table b/definitions/grib2/tables/7/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.57.table b/definitions/grib2/tables/7/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.58.table b/definitions/grib2/tables/7/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.59.table b/definitions/grib2/tables/7/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.6.table b/definitions/grib2/tables/7/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.60.table b/definitions/grib2/tables/7/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.61.table b/definitions/grib2/tables/7/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.62.table b/definitions/grib2/tables/7/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.63.table b/definitions/grib2/tables/7/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.64.table b/definitions/grib2/tables/7/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.65.table b/definitions/grib2/tables/7/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.66.table b/definitions/grib2/tables/7/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.67.table b/definitions/grib2/tables/7/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.68.table b/definitions/grib2/tables/7/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.69.table b/definitions/grib2/tables/7/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.7.table b/definitions/grib2/tables/7/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.70.table b/definitions/grib2/tables/7/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.71.table b/definitions/grib2/tables/7/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.72.table b/definitions/grib2/tables/7/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.73.table b/definitions/grib2/tables/7/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.74.table b/definitions/grib2/tables/7/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.75.table b/definitions/grib2/tables/7/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.76.table b/definitions/grib2/tables/7/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.77.table b/definitions/grib2/tables/7/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.78.table b/definitions/grib2/tables/7/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.79.table b/definitions/grib2/tables/7/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.8.table b/definitions/grib2/tables/7/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.80.table b/definitions/grib2/tables/7/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.81.table b/definitions/grib2/tables/7/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.82.table b/definitions/grib2/tables/7/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.83.table b/definitions/grib2/tables/7/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.84.table b/definitions/grib2/tables/7/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.85.table b/definitions/grib2/tables/7/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.86.table b/definitions/grib2/tables/7/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.87.table b/definitions/grib2/tables/7/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.88.table b/definitions/grib2/tables/7/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.89.table b/definitions/grib2/tables/7/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.9.table b/definitions/grib2/tables/7/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.90.table b/definitions/grib2/tables/7/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.91.table b/definitions/grib2/tables/7/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.92.table b/definitions/grib2/tables/7/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.93.table b/definitions/grib2/tables/7/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.94.table b/definitions/grib2/tables/7/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.95.table b/definitions/grib2/tables/7/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.96.table b/definitions/grib2/tables/7/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.97.table b/definitions/grib2/tables/7/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.98.table b/definitions/grib2/tables/7/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.2.192.99.table b/definitions/grib2/tables/7/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/7/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/7/4.5.table b/definitions/grib2/tables/7/4.5.table
index 9be96e9da..5b80a90fc 100644
--- a/definitions/grib2/tables/7/4.5.table
+++ b/definitions/grib2/tables/7/4.5.table
@@ -1,13 +1,13 @@
#Code table 4.5: Fixed surface types and units
0 0 Reserved
-1 sfc Ground or water surface
-2 2 Cloud base level
-3 3 Level of cloud tops
-4 4 Level of 0 degree C isotherm
+1 sfc Ground or water surface
+2 2 Cloud base level
+3 3 Level of cloud tops
+4 4 Level of 0 degree C isotherm
5 5 Level of adiabatic condensation lifted from the surface
-6 6 Maximum wind level
-7 sfc Tropopause
-8 sfc Nominal top of the atmosphere
+6 6 Maximum wind level
+7 sfc Tropopause
+8 sfc Nominal top of the atmosphere
9 9 Sea bottom
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
diff --git a/definitions/grib2/tables/8/0.0.table b/definitions/grib2/tables/8/0.0.table
index 1d3a90b49..88d8b2cb3 100644
--- a/definitions/grib2/tables/8/0.0.table
+++ b/definitions/grib2/tables/8/0.0.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/1.0.table b/definitions/grib2/tables/8/1.0.table
index dc3fcebf0..9f43a852b 100644
--- a/definitions/grib2/tables/8/1.0.table
+++ b/definitions/grib2/tables/8/1.0.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
-6 6 Version implemented on 15 September 2010
-7 7 Version implemented on 4 May 2011
-8 8 Version implemented on 2 November 2011
-9 9 Pre-operational to be implemented by next amendment
-# 10-254 Future versions
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
+6 6 Version implemented on 15 September 2010
+7 7 Version implemented on 4 May 2011
+8 8 Version implemented on 2 November 2011
+9 9 Pre-operational to be implemented by next amendment
+# 10-254 Future versions
255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used.
diff --git a/definitions/grib2/tables/8/1.1.table b/definitions/grib2/tables/8/1.1.table
index 91ef66244..55fa1eb63 100644
--- a/definitions/grib2/tables/8/1.1.table
+++ b/definitions/grib2/tables/8/1.1.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/8/1.2.table b/definitions/grib2/tables/8/1.2.table
index d90ad0109..606bf8300 100644
--- a/definitions/grib2/tables/8/1.2.table
+++ b/definitions/grib2/tables/8/1.2.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/1.3.table b/definitions/grib2/tables/8/1.3.table
index 35cd6a636..712bb2ba8 100644
--- a/definitions/grib2/tables/8/1.3.table
+++ b/definitions/grib2/tables/8/1.3.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
-5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/1.4.table b/definitions/grib2/tables/8/1.4.table
index d11a335a7..7f47afd96 100644
--- a/definitions/grib2/tables/8/1.4.table
+++ b/definitions/grib2/tables/8/1.4.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/8/3.0.table b/definitions/grib2/tables/8/3.0.table
index 4baed0aab..4269b25ad 100644
--- a/definitions/grib2/tables/8/3.0.table
+++ b/definitions/grib2/tables/8/3.0.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/8/3.10.table b/definitions/grib2/tables/8/3.10.table
index 23c1cdd36..da36dc664 100644
--- a/definitions/grib2/tables/8/3.10.table
+++ b/definitions/grib2/tables/8/3.10.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/8/3.11.table b/definitions/grib2/tables/8/3.11.table
index 560318d1b..0a299af98 100644
--- a/definitions/grib2/tables/8/3.11.table
+++ b/definitions/grib2/tables/8/3.11.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 There is no appended list
+0 0 There is no appended list
1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
diff --git a/definitions/grib2/tables/8/3.15.table b/definitions/grib2/tables/8/3.15.table
index 55ca1688a..976862747 100644
--- a/definitions/grib2/tables/8/3.15.table
+++ b/definitions/grib2/tables/8/3.15.table
@@ -1,22 +1,22 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
-# 113-159 Reserved
+# 113-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/3.2.table b/definitions/grib2/tables/8/3.2.table
index 3d7a4f1fc..563efbdb5 100644
--- a/definitions/grib2/tables/8/3.2.table
+++ b/definitions/grib2/tables/8/3.2.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/3.20.table b/definitions/grib2/tables/8/3.20.table
index 3f7ab4cc4..63de6b1a9 100644
--- a/definitions/grib2/tables/8/3.20.table
+++ b/definitions/grib2/tables/8/3.20.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/3.21.table b/definitions/grib2/tables/8/3.21.table
index b0c77d135..2bc46aae9 100644
--- a/definitions/grib2/tables/8/3.21.table
+++ b/definitions/grib2/tables/8/3.21.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/3.3.table b/definitions/grib2/tables/8/3.3.table
index 5167ed6b7..bd47e2509 100644
--- a/definitions/grib2/tables/8/3.3.table
+++ b/definitions/grib2/tables/8/3.3.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/8/3.4.table b/definitions/grib2/tables/8/3.4.table
index 6253896b1..752c70757 100644
--- a/definitions/grib2/tables/8/3.4.table
+++ b/definitions/grib2/tables/8/3.4.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/8/3.5.table b/definitions/grib2/tables/8/3.5.table
index 8ccf0f13b..6d3ec036e 100644
--- a/definitions/grib2/tables/8/3.5.table
+++ b/definitions/grib2/tables/8/3.5.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/8/3.7.table b/definitions/grib2/tables/8/3.7.table
index 41bba8329..4b2e684d3 100644
--- a/definitions/grib2/tables/8/3.7.table
+++ b/definitions/grib2/tables/8/3.7.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Reserved
1 1 The complex numbers Fnm (see code figure 1 in Code Table 3.6 above) are stored for m>=0 as pairs of real numbers Re(Fnm), Im(Fnm) ordered with n increasing from m to N(m), first for m=0 and then for m=1, 2, ... M. (see Note 1)
-# 2-254 Reserved
+# 2-254 Reserved
255 255 Missing
diff --git a/definitions/grib2/tables/8/3.8.table b/definitions/grib2/tables/8/3.8.table
index 4e811917b..6df554ae9 100644
--- a/definitions/grib2/tables/8/3.8.table
+++ b/definitions/grib2/tables/8/3.8.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/3.9.table b/definitions/grib2/tables/8/3.9.table
index f35b7ca53..530d1dee0 100644
--- a/definitions/grib2/tables/8/3.9.table
+++ b/definitions/grib2/tables/8/3.9.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/8/4.0.table b/definitions/grib2/tables/8/4.0.table
index faa4f59df..0852d9f0d 100644
--- a/definitions/grib2/tables/8/4.0.table
+++ b/definitions/grib2/tables/8/4.0.table
@@ -1,52 +1,52 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
# 33-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non continuous time interval for aerosol
48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of atmospheric aerosol
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-# 52-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+# 52-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
+# 1102-32767 Reserved
# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
diff --git a/definitions/grib2/tables/8/4.1.0.table b/definitions/grib2/tables/8/4.1.0.table
index 361108860..3413dbad5 100644
--- a/definitions/grib2/tables/8/4.1.0.table
+++ b/definitions/grib2/tables/8/4.1.0.table
@@ -1,27 +1,27 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.1.1.table b/definitions/grib2/tables/8/4.1.1.table
index 29f1dec79..dea5bc49e 100644
--- a/definitions/grib2/tables/8/4.1.1.table
+++ b/definitions/grib2/tables/8/4.1.1.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.1.10.table b/definitions/grib2/tables/8/4.1.10.table
index 9c8c92b12..e6ce6faf7 100644
--- a/definitions/grib2/tables/8/4.1.10.table
+++ b/definitions/grib2/tables/8/4.1.10.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.1.192.table b/definitions/grib2/tables/8/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/8/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/8/4.1.2.table b/definitions/grib2/tables/8/4.1.2.table
index b90201c63..805836998 100644
--- a/definitions/grib2/tables/8/4.1.2.table
+++ b/definitions/grib2/tables/8/4.1.2.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.1.3.table b/definitions/grib2/tables/8/4.1.3.table
index 3c947b136..c96617665 100644
--- a/definitions/grib2/tables/8/4.1.3.table
+++ b/definitions/grib2/tables/8/4.1.3.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.10.table b/definitions/grib2/tables/8/4.10.table
index 0e5170876..a13fb00b4 100644
--- a/definitions/grib2/tables/8/4.10.table
+++ b/definitions/grib2/tables/8/4.10.table
@@ -1,15 +1,15 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/8/4.11.table b/definitions/grib2/tables/8/4.11.table
index 1257d1b09..af9ff29ad 100644
--- a/definitions/grib2/tables/8/4.11.table
+++ b/definitions/grib2/tables/8/4.11.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.12.table b/definitions/grib2/tables/8/4.12.table
index e06a3be5b..6cab67bf5 100644
--- a/definitions/grib2/tables/8/4.12.table
+++ b/definitions/grib2/tables/8/4.12.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.13.table b/definitions/grib2/tables/8/4.13.table
index 107ace60c..f090fb9ae 100644
--- a/definitions/grib2/tables/8/4.13.table
+++ b/definitions/grib2/tables/8/4.13.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No quality control applied
-1 1 Quality control applied
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No quality control applied
+1 1 Quality control applied
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.14.table b/definitions/grib2/tables/8/4.14.table
index 9ed9078a8..bcb04f328 100644
--- a/definitions/grib2/tables/8/4.14.table
+++ b/definitions/grib2/tables/8/4.14.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No clutter filter used
-1 1 Clutter filter used
+0 0 No clutter filter used
+1 1 Clutter filter used
# 2-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.15.table b/definitions/grib2/tables/8/4.15.table
index 97cdcd2ee..6e1ef5745 100644
--- a/definitions/grib2/tables/8/4.15.table
+++ b/definitions/grib2/tables/8/4.15.table
@@ -1,11 +1,11 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.0.table b/definitions/grib2/tables/8/4.2.0.0.table
index debc0a6f4..8656f8974 100644
--- a/definitions/grib2/tables/8/4.2.0.0.table
+++ b/definitions/grib2/tables/8/4.2.0.0.table
@@ -20,6 +20,6 @@
18 18 Snow temperature (top of snow) (K)
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
-# 21-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.1.table b/definitions/grib2/tables/8/4.2.0.1.table
index 1922792a6..8ee93e99b 100644
--- a/definitions/grib2/tables/8/4.2.0.1.table
+++ b/definitions/grib2/tables/8/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rain water content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.13.table b/definitions/grib2/tables/8/4.2.0.13.table
index b9979f0d3..90ab7d1b9 100644
--- a/definitions/grib2/tables/8/4.2.0.13.table
+++ b/definitions/grib2/tables/8/4.2.0.13.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.14.table b/definitions/grib2/tables/8/4.2.0.14.table
index 4a2a4e128..fca42ccc7 100644
--- a/definitions/grib2/tables/8/4.2.0.14.table
+++ b/definitions/grib2/tables/8/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.15.table b/definitions/grib2/tables/8/4.2.0.15.table
index a7fa034b0..c89ecd203 100644
--- a/definitions/grib2/tables/8/4.2.0.15.table
+++ b/definitions/grib2/tables/8/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.16.table b/definitions/grib2/tables/8/4.2.0.16.table
index 39215ab20..18dedb7c0 100644
--- a/definitions/grib2/tables/8/4.2.0.16.table
+++ b/definitions/grib2/tables/8/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.18.table b/definitions/grib2/tables/8/4.2.0.18.table
index 30060fd2d..165aa6008 100644
--- a/definitions/grib2/tables/8/4.2.0.18.table
+++ b/definitions/grib2/tables/8/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.19.table b/definitions/grib2/tables/8/4.2.0.19.table
index 1bbbd4243..1a2f91974 100644
--- a/definitions/grib2/tables/8/4.2.0.19.table
+++ b/definitions/grib2/tables/8/4.2.0.19.table
@@ -26,6 +26,6 @@
24 24 Convective turbulent kinetic energy (J/kg)
25 25 Weather Interpretation ww (WMO) (-)
26 26 Convective outlook (Code table 4.224)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.190.table b/definitions/grib2/tables/8/4.2.0.190.table
index 39fb55746..3d9d5ff85 100644
--- a/definitions/grib2/tables/8/4.2.0.190.table
+++ b/definitions/grib2/tables/8/4.2.0.190.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.191.table b/definitions/grib2/tables/8/4.2.0.191.table
index 81230c0e0..4ff12e532 100644
--- a/definitions/grib2/tables/8/4.2.0.191.table
+++ b/definitions/grib2/tables/8/4.2.0.191.table
@@ -2,6 +2,6 @@
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/8/4.2.0.2.table b/definitions/grib2/tables/8/4.2.0.2.table
index 58428f66a..f93074e5e 100644
--- a/definitions/grib2/tables/8/4.2.0.2.table
+++ b/definitions/grib2/tables/8/4.2.0.2.table
@@ -33,6 +33,6 @@
31 31 Turbulent diffusion coefficient for momentum (m2/s)
32 32 Eta coordinate vertical velocity (/s)
33 33 Wind fetch (m)
-# 34-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 34-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.20.table b/definitions/grib2/tables/8/4.2.0.20.table
index d0ef4b3a0..2bee70352 100644
--- a/definitions/grib2/tables/8/4.2.0.20.table
+++ b/definitions/grib2/tables/8/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (Sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Atmosphere optical thickness (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.3.table b/definitions/grib2/tables/8/4.2.0.3.table
index b337cbd06..18c33fdf8 100644
--- a/definitions/grib2/tables/8/4.2.0.3.table
+++ b/definitions/grib2/tables/8/4.2.0.3.table
@@ -25,6 +25,6 @@
23 23 Gravity wave dissipation (W m-2)
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
-# 26-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 26-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.4.table b/definitions/grib2/tables/8/4.2.0.4.table
index fea4cafc3..336fdb421 100644
--- a/definitions/grib2/tables/8/4.2.0.4.table
+++ b/definitions/grib2/tables/8/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.5.table b/definitions/grib2/tables/8/4.2.0.5.table
index aae853bf9..607235064 100644
--- a/definitions/grib2/tables/8/4.2.0.5.table
+++ b/definitions/grib2/tables/8/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.6.table b/definitions/grib2/tables/8/4.2.0.6.table
index 462727d0b..747fd8088 100644
--- a/definitions/grib2/tables/8/4.2.0.6.table
+++ b/definitions/grib2/tables/8/4.2.0.6.table
@@ -33,6 +33,6 @@
31 31 Number density of cloud ice (m-3)
32 32 Fraction of cloud cover (Numeric)
33 33 Sunshine duration (s)
-# 34-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 34-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.0.7.table b/definitions/grib2/tables/8/4.2.0.7.table
index 7a7d2008b..6c1794c73 100644
--- a/definitions/grib2/tables/8/4.2.0.7.table
+++ b/definitions/grib2/tables/8/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.1.0.table b/definitions/grib2/tables/8/4.2.1.0.table
index bf1e3e93f..9c4d129da 100644
--- a/definitions/grib2/tables/8/4.2.1.0.table
+++ b/definitions/grib2/tables/8/4.2.1.0.table
@@ -6,6 +6,6 @@
4 4 Snow water equivalent per cent of normal (%)
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.1.1.table b/definitions/grib2/tables/8/4.2.1.1.table
index cb5117dc8..aa560e479 100644
--- a/definitions/grib2/tables/8/4.2.1.1.table
+++ b/definitions/grib2/tables/8/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.0.table b/definitions/grib2/tables/8/4.2.10.0.table
index eb9d1fa65..c00ce058f 100644
--- a/definitions/grib2/tables/8/4.2.10.0.table
+++ b/definitions/grib2/tables/8/4.2.10.0.table
@@ -48,6 +48,6 @@
46 46 2-dim spectral energy density (m2 s)
47 47 Frequency spectral energy density (m2 s)
48 48 Directional spectral energy density
-# 49-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 49-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.1.table b/definitions/grib2/tables/8/4.2.10.1.table
index 5a33bac5d..a076fb07c 100644
--- a/definitions/grib2/tables/8/4.2.10.1.table
+++ b/definitions/grib2/tables/8/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.191.table b/definitions/grib2/tables/8/4.2.10.191.table
index 14085ac9a..6cafbd3d4 100644
--- a/definitions/grib2/tables/8/4.2.10.191.table
+++ b/definitions/grib2/tables/8/4.2.10.191.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.2.table b/definitions/grib2/tables/8/4.2.10.2.table
index a69b2622c..80fe973be 100644
--- a/definitions/grib2/tables/8/4.2.10.2.table
+++ b/definitions/grib2/tables/8/4.2.10.2.table
@@ -9,6 +9,6 @@
7 7 Ice divergence (/s)
8 8 Ice temperature (K)
9 9 Ice internal pressure (Pa m)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.3.table b/definitions/grib2/tables/8/4.2.10.3.table
index 112af09d5..3b9a2df46 100644
--- a/definitions/grib2/tables/8/4.2.10.3.table
+++ b/definitions/grib2/tables/8/4.2.10.3.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.10.4.table b/definitions/grib2/tables/8/4.2.10.4.table
index d80a32780..91ffb2b29 100644
--- a/definitions/grib2/tables/8/4.2.10.4.table
+++ b/definitions/grib2/tables/8/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2 s-1)
6 6 Ocean vertical momentum diffusivity (m2 s-1)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (m-1)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.192.0.table b/definitions/grib2/tables/8/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.1.table b/definitions/grib2/tables/8/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.10.table b/definitions/grib2/tables/8/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.100.table b/definitions/grib2/tables/8/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.101.table b/definitions/grib2/tables/8/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.102.table b/definitions/grib2/tables/8/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.103.table b/definitions/grib2/tables/8/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.104.table b/definitions/grib2/tables/8/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.105.table b/definitions/grib2/tables/8/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.106.table b/definitions/grib2/tables/8/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.107.table b/definitions/grib2/tables/8/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.108.table b/definitions/grib2/tables/8/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.109.table b/definitions/grib2/tables/8/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.11.table b/definitions/grib2/tables/8/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.110.table b/definitions/grib2/tables/8/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.111.table b/definitions/grib2/tables/8/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.112.table b/definitions/grib2/tables/8/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.113.table b/definitions/grib2/tables/8/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.114.table b/definitions/grib2/tables/8/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.115.table b/definitions/grib2/tables/8/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.116.table b/definitions/grib2/tables/8/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.117.table b/definitions/grib2/tables/8/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.118.table b/definitions/grib2/tables/8/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.119.table b/definitions/grib2/tables/8/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.12.table b/definitions/grib2/tables/8/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.120.table b/definitions/grib2/tables/8/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.121.table b/definitions/grib2/tables/8/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.122.table b/definitions/grib2/tables/8/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.123.table b/definitions/grib2/tables/8/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.124.table b/definitions/grib2/tables/8/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.125.table b/definitions/grib2/tables/8/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.126.table b/definitions/grib2/tables/8/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.127.table b/definitions/grib2/tables/8/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.128.table b/definitions/grib2/tables/8/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.129.table b/definitions/grib2/tables/8/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.13.table b/definitions/grib2/tables/8/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.130.table b/definitions/grib2/tables/8/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.131.table b/definitions/grib2/tables/8/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.132.table b/definitions/grib2/tables/8/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.133.table b/definitions/grib2/tables/8/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.134.table b/definitions/grib2/tables/8/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.135.table b/definitions/grib2/tables/8/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.136.table b/definitions/grib2/tables/8/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.137.table b/definitions/grib2/tables/8/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.138.table b/definitions/grib2/tables/8/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.139.table b/definitions/grib2/tables/8/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.14.table b/definitions/grib2/tables/8/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.140.table b/definitions/grib2/tables/8/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.141.table b/definitions/grib2/tables/8/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.142.table b/definitions/grib2/tables/8/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.143.table b/definitions/grib2/tables/8/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.144.table b/definitions/grib2/tables/8/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.145.table b/definitions/grib2/tables/8/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.146.table b/definitions/grib2/tables/8/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.147.table b/definitions/grib2/tables/8/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.148.table b/definitions/grib2/tables/8/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.149.table b/definitions/grib2/tables/8/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.15.table b/definitions/grib2/tables/8/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.150.table b/definitions/grib2/tables/8/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.151.table b/definitions/grib2/tables/8/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.152.table b/definitions/grib2/tables/8/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.153.table b/definitions/grib2/tables/8/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.154.table b/definitions/grib2/tables/8/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.155.table b/definitions/grib2/tables/8/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.156.table b/definitions/grib2/tables/8/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.157.table b/definitions/grib2/tables/8/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.158.table b/definitions/grib2/tables/8/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.159.table b/definitions/grib2/tables/8/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.16.table b/definitions/grib2/tables/8/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.160.table b/definitions/grib2/tables/8/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.161.table b/definitions/grib2/tables/8/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.162.table b/definitions/grib2/tables/8/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.163.table b/definitions/grib2/tables/8/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.164.table b/definitions/grib2/tables/8/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.165.table b/definitions/grib2/tables/8/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.166.table b/definitions/grib2/tables/8/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.167.table b/definitions/grib2/tables/8/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.168.table b/definitions/grib2/tables/8/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.169.table b/definitions/grib2/tables/8/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.17.table b/definitions/grib2/tables/8/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.170.table b/definitions/grib2/tables/8/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.171.table b/definitions/grib2/tables/8/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.172.table b/definitions/grib2/tables/8/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.173.table b/definitions/grib2/tables/8/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.174.table b/definitions/grib2/tables/8/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.175.table b/definitions/grib2/tables/8/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.176.table b/definitions/grib2/tables/8/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.177.table b/definitions/grib2/tables/8/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.178.table b/definitions/grib2/tables/8/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.179.table b/definitions/grib2/tables/8/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.18.table b/definitions/grib2/tables/8/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.180.table b/definitions/grib2/tables/8/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.181.table b/definitions/grib2/tables/8/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.182.table b/definitions/grib2/tables/8/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.183.table b/definitions/grib2/tables/8/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.184.table b/definitions/grib2/tables/8/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.185.table b/definitions/grib2/tables/8/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.186.table b/definitions/grib2/tables/8/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.187.table b/definitions/grib2/tables/8/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.188.table b/definitions/grib2/tables/8/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.189.table b/definitions/grib2/tables/8/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.19.table b/definitions/grib2/tables/8/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.190.table b/definitions/grib2/tables/8/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.191.table b/definitions/grib2/tables/8/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.192.table b/definitions/grib2/tables/8/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.193.table b/definitions/grib2/tables/8/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.194.table b/definitions/grib2/tables/8/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.195.table b/definitions/grib2/tables/8/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.196.table b/definitions/grib2/tables/8/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.197.table b/definitions/grib2/tables/8/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.198.table b/definitions/grib2/tables/8/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.199.table b/definitions/grib2/tables/8/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.2.table b/definitions/grib2/tables/8/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.20.table b/definitions/grib2/tables/8/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.200.table b/definitions/grib2/tables/8/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.201.table b/definitions/grib2/tables/8/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.202.table b/definitions/grib2/tables/8/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.203.table b/definitions/grib2/tables/8/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.204.table b/definitions/grib2/tables/8/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.205.table b/definitions/grib2/tables/8/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.206.table b/definitions/grib2/tables/8/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.207.table b/definitions/grib2/tables/8/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.208.table b/definitions/grib2/tables/8/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.209.table b/definitions/grib2/tables/8/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.21.table b/definitions/grib2/tables/8/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.210.table b/definitions/grib2/tables/8/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.211.table b/definitions/grib2/tables/8/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.212.table b/definitions/grib2/tables/8/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.213.table b/definitions/grib2/tables/8/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.214.table b/definitions/grib2/tables/8/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.215.table b/definitions/grib2/tables/8/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.216.table b/definitions/grib2/tables/8/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.217.table b/definitions/grib2/tables/8/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.218.table b/definitions/grib2/tables/8/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.219.table b/definitions/grib2/tables/8/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.22.table b/definitions/grib2/tables/8/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.220.table b/definitions/grib2/tables/8/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.221.table b/definitions/grib2/tables/8/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.222.table b/definitions/grib2/tables/8/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.223.table b/definitions/grib2/tables/8/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.224.table b/definitions/grib2/tables/8/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.225.table b/definitions/grib2/tables/8/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.226.table b/definitions/grib2/tables/8/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.227.table b/definitions/grib2/tables/8/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.228.table b/definitions/grib2/tables/8/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.229.table b/definitions/grib2/tables/8/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.23.table b/definitions/grib2/tables/8/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.230.table b/definitions/grib2/tables/8/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.231.table b/definitions/grib2/tables/8/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.232.table b/definitions/grib2/tables/8/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.233.table b/definitions/grib2/tables/8/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.234.table b/definitions/grib2/tables/8/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.235.table b/definitions/grib2/tables/8/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.236.table b/definitions/grib2/tables/8/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.237.table b/definitions/grib2/tables/8/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.238.table b/definitions/grib2/tables/8/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.239.table b/definitions/grib2/tables/8/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.24.table b/definitions/grib2/tables/8/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.240.table b/definitions/grib2/tables/8/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.241.table b/definitions/grib2/tables/8/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.242.table b/definitions/grib2/tables/8/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.243.table b/definitions/grib2/tables/8/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.244.table b/definitions/grib2/tables/8/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.245.table b/definitions/grib2/tables/8/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.246.table b/definitions/grib2/tables/8/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.247.table b/definitions/grib2/tables/8/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.248.table b/definitions/grib2/tables/8/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.249.table b/definitions/grib2/tables/8/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.25.table b/definitions/grib2/tables/8/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.250.table b/definitions/grib2/tables/8/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.251.table b/definitions/grib2/tables/8/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.252.table b/definitions/grib2/tables/8/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.253.table b/definitions/grib2/tables/8/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.254.table b/definitions/grib2/tables/8/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.255.table b/definitions/grib2/tables/8/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.26.table b/definitions/grib2/tables/8/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.27.table b/definitions/grib2/tables/8/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.28.table b/definitions/grib2/tables/8/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.29.table b/definitions/grib2/tables/8/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.3.table b/definitions/grib2/tables/8/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.30.table b/definitions/grib2/tables/8/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.31.table b/definitions/grib2/tables/8/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.32.table b/definitions/grib2/tables/8/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.33.table b/definitions/grib2/tables/8/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.34.table b/definitions/grib2/tables/8/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.35.table b/definitions/grib2/tables/8/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.36.table b/definitions/grib2/tables/8/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.37.table b/definitions/grib2/tables/8/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.38.table b/definitions/grib2/tables/8/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.39.table b/definitions/grib2/tables/8/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.4.table b/definitions/grib2/tables/8/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.40.table b/definitions/grib2/tables/8/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.41.table b/definitions/grib2/tables/8/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.42.table b/definitions/grib2/tables/8/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.43.table b/definitions/grib2/tables/8/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.44.table b/definitions/grib2/tables/8/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.45.table b/definitions/grib2/tables/8/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.46.table b/definitions/grib2/tables/8/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.47.table b/definitions/grib2/tables/8/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.48.table b/definitions/grib2/tables/8/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.49.table b/definitions/grib2/tables/8/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.5.table b/definitions/grib2/tables/8/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.50.table b/definitions/grib2/tables/8/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.51.table b/definitions/grib2/tables/8/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.52.table b/definitions/grib2/tables/8/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.53.table b/definitions/grib2/tables/8/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.54.table b/definitions/grib2/tables/8/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.55.table b/definitions/grib2/tables/8/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.56.table b/definitions/grib2/tables/8/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.57.table b/definitions/grib2/tables/8/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.58.table b/definitions/grib2/tables/8/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.59.table b/definitions/grib2/tables/8/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.6.table b/definitions/grib2/tables/8/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.60.table b/definitions/grib2/tables/8/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.61.table b/definitions/grib2/tables/8/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.62.table b/definitions/grib2/tables/8/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.63.table b/definitions/grib2/tables/8/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.64.table b/definitions/grib2/tables/8/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.65.table b/definitions/grib2/tables/8/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.66.table b/definitions/grib2/tables/8/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.67.table b/definitions/grib2/tables/8/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.68.table b/definitions/grib2/tables/8/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.69.table b/definitions/grib2/tables/8/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.7.table b/definitions/grib2/tables/8/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.70.table b/definitions/grib2/tables/8/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.71.table b/definitions/grib2/tables/8/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.72.table b/definitions/grib2/tables/8/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.73.table b/definitions/grib2/tables/8/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.74.table b/definitions/grib2/tables/8/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.75.table b/definitions/grib2/tables/8/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.76.table b/definitions/grib2/tables/8/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.77.table b/definitions/grib2/tables/8/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.78.table b/definitions/grib2/tables/8/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.79.table b/definitions/grib2/tables/8/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.8.table b/definitions/grib2/tables/8/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.80.table b/definitions/grib2/tables/8/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.81.table b/definitions/grib2/tables/8/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.82.table b/definitions/grib2/tables/8/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.83.table b/definitions/grib2/tables/8/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.84.table b/definitions/grib2/tables/8/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.85.table b/definitions/grib2/tables/8/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.86.table b/definitions/grib2/tables/8/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.87.table b/definitions/grib2/tables/8/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.88.table b/definitions/grib2/tables/8/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.89.table b/definitions/grib2/tables/8/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.9.table b/definitions/grib2/tables/8/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.90.table b/definitions/grib2/tables/8/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.91.table b/definitions/grib2/tables/8/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.92.table b/definitions/grib2/tables/8/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.93.table b/definitions/grib2/tables/8/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.94.table b/definitions/grib2/tables/8/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.95.table b/definitions/grib2/tables/8/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.96.table b/definitions/grib2/tables/8/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.97.table b/definitions/grib2/tables/8/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.98.table b/definitions/grib2/tables/8/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.192.99.table b/definitions/grib2/tables/8/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/8/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/8/4.2.2.0.table b/definitions/grib2/tables/8/4.2.2.0.table
index b440b9426..083fc5913 100644
--- a/definitions/grib2/tables/8/4.2.2.0.table
+++ b/definitions/grib2/tables/8/4.2.2.0.table
@@ -32,6 +32,6 @@
30 30 Deciduous forest (Numeric)
31 31 Normalized differential vegetation index (NDVI) (Numeric)
32 32 Root depth of vegetation (m)
-# 33-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.2.3.table b/definitions/grib2/tables/8/4.2.2.3.table
index 80113a4bd..a9ec602e6 100644
--- a/definitions/grib2/tables/8/4.2.2.3.table
+++ b/definitions/grib2/tables/8/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.3.0.table b/definitions/grib2/tables/8/4.2.3.0.table
index 254e56bc8..8c19d43b2 100644
--- a/definitions/grib2/tables/8/4.2.3.0.table
+++ b/definitions/grib2/tables/8/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.2.3.1.table b/definitions/grib2/tables/8/4.2.3.1.table
index 16eee69c4..d199aff60 100644
--- a/definitions/grib2/tables/8/4.2.3.1.table
+++ b/definitions/grib2/tables/8/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.201.table b/definitions/grib2/tables/8/4.201.table
index ebb698b38..e16d5d808 100644
--- a/definitions/grib2/tables/8/4.201.table
+++ b/definitions/grib2/tables/8/4.201.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.202.table b/definitions/grib2/tables/8/4.202.table
index 943c03f6f..aa93458f1 100644
--- a/definitions/grib2/tables/8/4.202.table
+++ b/definitions/grib2/tables/8/4.202.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 0-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.203.table b/definitions/grib2/tables/8/4.203.table
index fce5a15b1..9a8d29e01 100644
--- a/definitions/grib2/tables/8/4.203.table
+++ b/definitions/grib2/tables/8/4.203.table
@@ -1,25 +1,25 @@
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.205.table b/definitions/grib2/tables/8/4.205.table
index 8d425ab9d..3fadf7d80 100644
--- a/definitions/grib2/tables/8/4.205.table
+++ b/definitions/grib2/tables/8/4.205.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.206.table b/definitions/grib2/tables/8/4.206.table
index 0be7fd4f8..43b0ba137 100644
--- a/definitions/grib2/tables/8/4.206.table
+++ b/definitions/grib2/tables/8/4.206.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.207.table b/definitions/grib2/tables/8/4.207.table
index fde9eb477..815a5777e 100644
--- a/definitions/grib2/tables/8/4.207.table
+++ b/definitions/grib2/tables/8/4.207.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.208.table b/definitions/grib2/tables/8/4.208.table
index 196becaaf..23ea97317 100644
--- a/definitions/grib2/tables/8/4.208.table
+++ b/definitions/grib2/tables/8/4.208.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.209.table b/definitions/grib2/tables/8/4.209.table
index 351c0f431..53c6c5eba 100644
--- a/definitions/grib2/tables/8/4.209.table
+++ b/definitions/grib2/tables/8/4.209.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically-driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically-driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.210.table b/definitions/grib2/tables/8/4.210.table
index 1c00b8c6f..149b2ba06 100644
--- a/definitions/grib2/tables/8/4.210.table
+++ b/definitions/grib2/tables/8/4.210.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.211.table b/definitions/grib2/tables/8/4.211.table
index 66ef656f6..b5753f19f 100644
--- a/definitions/grib2/tables/8/4.211.table
+++ b/definitions/grib2/tables/8/4.211.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.212.table b/definitions/grib2/tables/8/4.212.table
index c59bd24e8..738c45d2c 100644
--- a/definitions/grib2/tables/8/4.212.table
+++ b/definitions/grib2/tables/8/4.212.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.213.table b/definitions/grib2/tables/8/4.213.table
index 0f5de0104..5cee0b798 100644
--- a/definitions/grib2/tables/8/4.213.table
+++ b/definitions/grib2/tables/8/4.213.table
@@ -1,21 +1,21 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-12 12 Loam
-13 13 Peat
-14 14 Rock
-15 15 Ice
-16 16 Water
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+12 12 Loam
+13 13 Peat
+14 14 Rock
+15 15 Ice
+16 16 Water
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.215.table b/definitions/grib2/tables/8/4.215.table
index 460888217..5ed37c034 100644
--- a/definitions/grib2/tables/8/4.215.table
+++ b/definitions/grib2/tables/8/4.215.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.216.table b/definitions/grib2/tables/8/4.216.table
index cc62ca5e3..2fd143724 100644
--- a/definitions/grib2/tables/8/4.216.table
+++ b/definitions/grib2/tables/8/4.216.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.217.table b/definitions/grib2/tables/8/4.217.table
index 51a263a99..6a014c9c3 100644
--- a/definitions/grib2/tables/8/4.217.table
+++ b/definitions/grib2/tables/8/4.217.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.218.table b/definitions/grib2/tables/8/4.218.table
index d4b2ab843..b6087448f 100644
--- a/definitions/grib2/tables/8/4.218.table
+++ b/definitions/grib2/tables/8/4.218.table
@@ -1,38 +1,38 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.219.table b/definitions/grib2/tables/8/4.219.table
index f10ce468e..a02452fc4 100644
--- a/definitions/grib2/tables/8/4.219.table
+++ b/definitions/grib2/tables/8/4.219.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.220.table b/definitions/grib2/tables/8/4.220.table
index 9c957eb01..7a18fa1fd 100644
--- a/definitions/grib2/tables/8/4.220.table
+++ b/definitions/grib2/tables/8/4.220.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.221.table b/definitions/grib2/tables/8/4.221.table
index 5466929c7..eb0b64502 100644
--- a/definitions/grib2/tables/8/4.221.table
+++ b/definitions/grib2/tables/8/4.221.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.222.table b/definitions/grib2/tables/8/4.222.table
index c54194e29..f554a7f3d 100644
--- a/definitions/grib2/tables/8/4.222.table
+++ b/definitions/grib2/tables/8/4.222.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.223.table b/definitions/grib2/tables/8/4.223.table
index b6a9be136..706abab78 100644
--- a/definitions/grib2/tables/8/4.223.table
+++ b/definitions/grib2/tables/8/4.223.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing value
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing value
diff --git a/definitions/grib2/tables/8/4.224.table b/definitions/grib2/tables/8/4.224.table
index af846f841..cf67496b8 100644
--- a/definitions/grib2/tables/8/4.224.table
+++ b/definitions/grib2/tables/8/4.224.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.3.table b/definitions/grib2/tables/8/4.3.table
index 68e2cc83f..8a4e919c9 100644
--- a/definitions/grib2/tables/8/4.3.table
+++ b/definitions/grib2/tables/8/4.3.table
@@ -1,16 +1,16 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.4.table b/definitions/grib2/tables/8/4.4.table
index df5272d2f..511c76aa9 100644
--- a/definitions/grib2/tables/8/4.4.table
+++ b/definitions/grib2/tables/8/4.4.table
@@ -1,17 +1,17 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.5.table b/definitions/grib2/tables/8/4.5.table
index 4f36494e9..dfba82870 100644
--- a/definitions/grib2/tables/8/4.5.table
+++ b/definitions/grib2/tables/8/4.5.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid coordinate
@@ -35,14 +35,14 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
-160 160 Depth below sea level m
+# 151-159 Reserved
+160 160 Depth below sea level m
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
163 163 Bottom of sediment layer
164 164 Bottom of thermally active sediment layer
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
-# 167-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 167-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.6.table b/definitions/grib2/tables/8/4.6.table
index 54f2993c3..eaa5c4362 100644
--- a/definitions/grib2/tables/8/4.6.table
+++ b/definitions/grib2/tables/8/4.6.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.7.table b/definitions/grib2/tables/8/4.7.table
index 23e0d457e..e6d887bdb 100644
--- a/definitions/grib2/tables/8/4.7.table
+++ b/definitions/grib2/tables/8/4.7.table
@@ -1,14 +1,14 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.8.table b/definitions/grib2/tables/8/4.8.table
index 37a6cf767..d06153079 100644
--- a/definitions/grib2/tables/8/4.8.table
+++ b/definitions/grib2/tables/8/4.8.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.9.table b/definitions/grib2/tables/8/4.9.table
index 19e64a3d2..5243e58dd 100644
--- a/definitions/grib2/tables/8/4.9.table
+++ b/definitions/grib2/tables/8/4.9.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/4.91.table b/definitions/grib2/tables/8/4.91.table
index 05c4579bd..cea421695 100644
--- a/definitions/grib2/tables/8/4.91.table
+++ b/definitions/grib2/tables/8/4.91.table
@@ -1,16 +1,16 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit.
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit.
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/8/5.1.table b/definitions/grib2/tables/8/5.1.table
index 100d4106d..158a35850 100644
--- a/definitions/grib2/tables/8/5.1.table
+++ b/definitions/grib2/tables/8/5.1.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.2.table b/definitions/grib2/tables/8/5.2.table
index 4d0808be6..d9896e11f 100644
--- a/definitions/grib2/tables/8/5.2.table
+++ b/definitions/grib2/tables/8/5.2.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/8/5.3.table b/definitions/grib2/tables/8/5.3.table
index 705fa6524..6f228aeec 100644
--- a/definitions/grib2/tables/8/5.3.table
+++ b/definitions/grib2/tables/8/5.3.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.4.table b/definitions/grib2/tables/8/5.4.table
index 8133367a5..f844f557e 100644
--- a/definitions/grib2/tables/8/5.4.table
+++ b/definitions/grib2/tables/8/5.4.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.40.table b/definitions/grib2/tables/8/5.40.table
index 0d56ad0e0..2431eb547 100644
--- a/definitions/grib2/tables/8/5.40.table
+++ b/definitions/grib2/tables/8/5.40.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.5.table b/definitions/grib2/tables/8/5.5.table
index 5d625dbda..f2216e273 100644
--- a/definitions/grib2/tables/8/5.5.table
+++ b/definitions/grib2/tables/8/5.5.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.6.table b/definitions/grib2/tables/8/5.6.table
index 5838e994d..3b0892d37 100644
--- a/definitions/grib2/tables/8/5.6.table
+++ b/definitions/grib2/tables/8/5.6.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/8/5.7.table b/definitions/grib2/tables/8/5.7.table
index b93aa8130..f056d3059 100644
--- a/definitions/grib2/tables/8/5.7.table
+++ b/definitions/grib2/tables/8/5.7.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/8/6.0.table b/definitions/grib2/tables/8/6.0.table
index aecdc6e5e..9c9dba372 100644
--- a/definitions/grib2/tables/8/6.0.table
+++ b/definitions/grib2/tables/8/6.0.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating Centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating Centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating Centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/9/0.0.table b/definitions/grib2/tables/9/0.0.table
index 1d3a90b49..88d8b2cb3 100644
--- a/definitions/grib2/tables/9/0.0.table
+++ b/definitions/grib2/tables/9/0.0.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Meteorological products
-1 1 Hydrological products
-2 2 Land surface products
-3 3 Space products
-# 4-9 Reserved
-10 10 Oceanographic products
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Meteorological products
+1 1 Hydrological products
+2 2 Land surface products
+3 3 Space products
+# 4-9 Reserved
+10 10 Oceanographic products
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/1.0.table b/definitions/grib2/tables/9/1.0.table
index 045af30c3..4b1406c7e 100644
--- a/definitions/grib2/tables/9/1.0.table
+++ b/definitions/grib2/tables/9/1.0.table
@@ -1,14 +1,14 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Experimental
-1 1 Version implemented on 7 November 2001
-2 2 Version implemented on 4 November 2003
-3 3 Version implemented on 2 November 2005
-4 4 Version implemented on 7 November 2007
-5 5 Version implemented on 4 November 2009
+0 0 Experimental
+1 1 Version implemented on 7 November 2001
+2 2 Version implemented on 4 November 2003
+3 3 Version implemented on 2 November 2005
+4 4 Version implemented on 7 November 2007
+5 5 Version implemented on 4 November 2009
6 6 Version implemented on 15 September 2010
7 7 Version implemented on 4 May 2011
8 8 Version implemented on 2 November 2011
9 9 Version implemented on 2 May 2012
10 10 Pre-operational to be implemented by next amendment
-# 11-254 Future versions
+# 11-254 Future versions
255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used.
diff --git a/definitions/grib2/tables/9/1.1.table b/definitions/grib2/tables/9/1.1.table
index 91ef66244..55fa1eb63 100644
--- a/definitions/grib2/tables/9/1.1.table
+++ b/definitions/grib2/tables/9/1.1.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Local tables not used. Only table entries and templates from the current master table are valid
-# 1-254 Number of local tables version used
-255 255 Missing
+0 0 Local tables not used. Only table entries and templates from the current master table are valid
+# 1-254 Number of local tables version used
+255 255 Missing
diff --git a/definitions/grib2/tables/9/1.2.table b/definitions/grib2/tables/9/1.2.table
index d90ad0109..606bf8300 100644
--- a/definitions/grib2/tables/9/1.2.table
+++ b/definitions/grib2/tables/9/1.2.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Start of forecast
-2 2 Verifying time of forecast
-3 3 Observation time
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Start of forecast
+2 2 Verifying time of forecast
+3 3 Observation time
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/1.3.table b/definitions/grib2/tables/9/1.3.table
index 35cd6a636..712bb2ba8 100644
--- a/definitions/grib2/tables/9/1.3.table
+++ b/definitions/grib2/tables/9/1.3.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Operational products
-1 1 Operational test products
-2 2 Research products
-3 3 Re-analysis products
-4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
-5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Operational products
+1 1 Operational test products
+2 2 Research products
+3 3 Re-analysis products
+4 4 THORPEX Interactive Grand Global Ensemble (TIGGE)
+5 5 THORPEX Interactive Grand Global Ensemble (TIGGE) test
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/1.4.table b/definitions/grib2/tables/9/1.4.table
index d11a335a7..7f47afd96 100644
--- a/definitions/grib2/tables/9/1.4.table
+++ b/definitions/grib2/tables/9/1.4.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 an Analysis products
-1 fc Forecast products
-2 af Analysis and forecast products
-3 cf Control forecast products
-4 pf Perturbed forecast products
-5 cp Control and perturbed forecast products
-6 sa Processed satellite observations
-7 ra Processed radar observations
-8 ep Event probability
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 an Analysis products
+1 fc Forecast products
+2 af Analysis and forecast products
+3 cf Control forecast products
+4 pf Perturbed forecast products
+5 cp Control and perturbed forecast products
+6 sa Processed satellite observations
+7 ra Processed radar observations
+8 ep Event probability
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/9/3.0.table b/definitions/grib2/tables/9/3.0.table
index 4baed0aab..4269b25ad 100644
--- a/definitions/grib2/tables/9/3.0.table
+++ b/definitions/grib2/tables/9/3.0.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Specified in Code table 3.1
+0 0 Specified in Code table 3.1
1 1 Predetermined grid definition (Defined by originating centre)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 A grid definition does not apply to this product
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 A grid definition does not apply to this product
diff --git a/definitions/grib2/tables/9/3.10.table b/definitions/grib2/tables/9/3.10.table
index 23c1cdd36..da36dc664 100644
--- a/definitions/grib2/tables/9/3.10.table
+++ b/definitions/grib2/tables/9/3.10.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Points scan in +i direction, i.e. from pole to Equator
-1 1 Points scan in -i direction, i.e. from Equator to pole
-2 0 Points scan in +j direction, i.e. from west to east
-2 1 Points scan in -j direction, i.e. from east to west
-3 0 Adjacent points in i direction are consecutive
-3 1 Adjacent points in j direction are consecutive
-# 4-8 Reserved
+1 0 Points scan in +i direction, i.e. from pole to Equator
+1 1 Points scan in -i direction, i.e. from Equator to pole
+2 0 Points scan in +j direction, i.e. from west to east
+2 1 Points scan in -j direction, i.e. from east to west
+3 0 Adjacent points in i direction are consecutive
+3 1 Adjacent points in j direction are consecutive
+# 4-8 Reserved
diff --git a/definitions/grib2/tables/9/3.11.table b/definitions/grib2/tables/9/3.11.table
index 560318d1b..0a299af98 100644
--- a/definitions/grib2/tables/9/3.11.table
+++ b/definitions/grib2/tables/9/3.11.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 There is no appended list
+0 0 There is no appended list
1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows
2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row
3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2)
diff --git a/definitions/grib2/tables/9/3.15.table b/definitions/grib2/tables/9/3.15.table
index 94f6c8e04..44e7a0983 100644
--- a/definitions/grib2/tables/9/3.15.table
+++ b/definitions/grib2/tables/9/3.15.table
@@ -1,23 +1,23 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-19 Reserved
+# 0-19 Reserved
20 20 Temperature (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 100 Pressure (Pa)
101 101 Pressure deviation from mean sea level (Pa)
102 102 Altitude above mean sea level (m)
103 103 Height above ground (m)
-104 104 Sigma coordinate
-105 105 Hybrid coordinate
+104 104 Sigma coordinate
+105 105 Hybrid coordinate
106 106 Depth below land surface (m)
107 pt Potential temperature (theta) (K)
108 108 Pressure deviation from ground to level (Pa)
109 pv Potential vorticity (K m-2 kg-1 s-1)
110 110 Geometrical height (m)
-111 111 Eta coordinate
+111 111 Eta coordinate
112 112 Geopotential height (gpm)
113 113 Logarithmic hybrid coordinate
-# 114-159 Reserved
+# 114-159 Reserved
160 160 Depth below sea level (m)
-# 161-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 161-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/3.2.table b/definitions/grib2/tables/9/3.2.table
index 3d7a4f1fc..563efbdb5 100644
--- a/definitions/grib2/tables/9/3.2.table
+++ b/definitions/grib2/tables/9/3.2.table
@@ -1,13 +1,13 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Earth assumed spherical with radius = 6 367 470.0 m
-1 1 Earth assumed spherical with radius specified (in m) by data producer
-2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
-3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
-4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
-5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
-6 6 Earth assumed spherical with radius of 6 371 229.0 m
-7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
-8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
-# 9-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Earth assumed spherical with radius = 6 367 470.0 m
+1 1 Earth assumed spherical with radius specified (in m) by data producer
+2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0)
+3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer
+4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101)
+5 5 Earth assumed represented by WGS84 (as used by ICAO since 1998)
+6 6 Earth assumed spherical with radius of 6 371 229.0 m
+7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer
+8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS84 reference frame
+# 9-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/3.20.table b/definitions/grib2/tables/9/3.20.table
index 3f7ab4cc4..63de6b1a9 100644
--- a/definitions/grib2/tables/9/3.20.table
+++ b/definitions/grib2/tables/9/3.20.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Rhumb
-1 1 Great circle
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Rhumb
+1 1 Great circle
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/3.21.table b/definitions/grib2/tables/9/3.21.table
index b0c77d135..2bc46aae9 100644
--- a/definitions/grib2/tables/9/3.21.table
+++ b/definitions/grib2/tables/9/3.21.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
-# 2-10 Reserved
-11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2
+# 2-10 Reserved
+11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1)
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/3.3.table b/definitions/grib2/tables/9/3.3.table
index 5167ed6b7..bd47e2509 100644
--- a/definitions/grib2/tables/9/3.3.table
+++ b/definitions/grib2/tables/9/3.3.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 1-2 Reserved
-3 0 i direction increments not given
-3 1 i direction increments given
-4 0 j direction increments not given
-4 1 j direction increments given
-5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
-5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
-# 6-8 Reserved - set to zero
+# 1-2 Reserved
+3 0 i direction increments not given
+3 1 i direction increments given
+4 0 j direction increments not given
+4 1 j direction increments given
+5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions
+5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively
+# 6-8 Reserved - set to zero
diff --git a/definitions/grib2/tables/9/3.4.table b/definitions/grib2/tables/9/3.4.table
index 6253896b1..752c70757 100644
--- a/definitions/grib2/tables/9/3.4.table
+++ b/definitions/grib2/tables/9/3.4.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Points of first row or column scan in the +i (+x) direction
-1 1 Points of first row or column scan in the -i (-x) direction
-2 0 Points of first row or column scan in the -j (-y) direction
-2 1 Points of first row or column scan in the +j (+y) direction
-3 0 Adjacent points in i (x) direction are consecutive
-3 1 Adjacent points in j (y) direction is consecutive
-4 0 All rows scan in the same direction
-4 1 Adjacent rows scans in the opposite direction
-# 5-8 Reserved
+1 0 Points of first row or column scan in the +i (+x) direction
+1 1 Points of first row or column scan in the -i (-x) direction
+2 0 Points of first row or column scan in the -j (-y) direction
+2 1 Points of first row or column scan in the +j (+y) direction
+3 0 Adjacent points in i (x) direction are consecutive
+3 1 Adjacent points in j (y) direction is consecutive
+4 0 All rows scan in the same direction
+4 1 Adjacent rows scans in the opposite direction
+# 5-8 Reserved
diff --git a/definitions/grib2/tables/9/3.5.table b/definitions/grib2/tables/9/3.5.table
index 8ccf0f13b..6d3ec036e 100644
--- a/definitions/grib2/tables/9/3.5.table
+++ b/definitions/grib2/tables/9/3.5.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 North Pole is on the projection plane
-1 1 South Pole is on the projection plane
-2 0 Only one projection centre is used
-2 1 Projection is bipolar and symmetric
+1 0 North Pole is on the projection plane
+1 1 South Pole is on the projection plane
+2 0 Only one projection centre is used
+2 1 Projection is bipolar and symmetric
diff --git a/definitions/grib2/tables/9/3.7.table b/definitions/grib2/tables/9/3.7.table
index 65693989a..4b2e684d3 100644
--- a/definitions/grib2/tables/9/3.7.table
+++ b/definitions/grib2/tables/9/3.7.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
+0 0 Reserved
1 1 The complex numbers Fnm (see code figure 1 in Code Table 3.6 above) are stored for m>=0 as pairs of real numbers Re(Fnm), Im(Fnm) ordered with n increasing from m to N(m), first for m=0 and then for m=1, 2, ... M. (see Note 1)
-# 2-254 Reserved
+# 2-254 Reserved
255 255 Missing
diff --git a/definitions/grib2/tables/9/3.8.table b/definitions/grib2/tables/9/3.8.table
index 4e811917b..6df554ae9 100644
--- a/definitions/grib2/tables/9/3.8.table
+++ b/definitions/grib2/tables/9/3.8.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Grid points at triangle vertices
-1 1 Grid points at centres of triangles
-2 2 Grid points at midpoints of triangle sides
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Grid points at triangle vertices
+1 1 Grid points at centres of triangles
+2 2 Grid points at midpoints of triangle sides
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/3.9.table b/definitions/grib2/tables/9/3.9.table
index f35b7ca53..530d1dee0 100644
--- a/definitions/grib2/tables/9/3.9.table
+++ b/definitions/grib2/tables/9/3.9.table
@@ -1,4 +1,4 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 0 Clockwise orientation
-1 1 Anti-clockwise (i.e. counter-clockwise) orientation
-# 2-8 Reserved
+1 0 Clockwise orientation
+1 1 Anti-clockwise (i.e. counter-clockwise) orientation
+# 2-8 Reserved
diff --git a/definitions/grib2/tables/9/4.0.table b/definitions/grib2/tables/9/4.0.table
index faa4f59df..0852d9f0d 100644
--- a/definitions/grib2/tables/9/4.0.table
+++ b/definitions/grib2/tables/9/4.0.table
@@ -1,52 +1,52 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
-1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
-2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
-3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
-4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
-5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
-6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
-7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
+0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time
+1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time
+3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time
+4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time
+5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time
+6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time
+7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time
8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
-15 15 Average, accumulation, extreme values, or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
-# 16-19 Reserved
-20 20 Radar product
-# 21-29 Reserved
-30 30 Satellite product (deprecated)
-31 31 Satellite product
-32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
+9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval
+15 15 Average, accumulation, extreme values, or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time
+# 16-19 Reserved
+20 20 Radar product
+# 21-29 Reserved
+30 30 Satellite product (deprecated)
+31 31 Satellite product
+32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
# 33-39 Reserved
311 311 Satellite product auxiliary information
-40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
-41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
+41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents
42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents
43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents
-44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
-45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
+44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
+45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol
46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol
47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non continuous time interval for aerosol
48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of atmospheric aerosol
-51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
-# 52-90 Reserved
-91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
-# 92-253 Reserved
-254 254 CCITT IA5 character string
-# 255-999 Reserved
-1000 1000 Cross-section of analysis and forecast at a point in time
-1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
-1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
-# 1003-1099 Reserved
-1100 1100 Hovmoller-type grid with no averaging or other statistical processing
-1101 1101 Hovmoller-type grid with averaging or other statistical processing
+51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time
+# 52-90 Reserved
+91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# 92-253 Reserved
+254 254 CCITT IA5 character string
+# 255-999 Reserved
+1000 1000 Cross-section of analysis and forecast at a point in time
+1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time
+1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude
+# 1003-1099 Reserved
+1100 1100 Hovmoller-type grid with no averaging or other statistical processing
+1101 1101 Hovmoller-type grid with averaging or other statistical processing
50001 50001 Forecasting Systems with Variable Resolution in a point in time
50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval
-# 1102-32767 Reserved
+# 1102-32767 Reserved
# 32768-65534 Reserved for local use
40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data
40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data
diff --git a/definitions/grib2/tables/9/4.1.0.table b/definitions/grib2/tables/9/4.1.0.table
index 361108860..3413dbad5 100644
--- a/definitions/grib2/tables/9/4.1.0.table
+++ b/definitions/grib2/tables/9/4.1.0.table
@@ -1,27 +1,27 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Temperature
-1 1 Moisture
-2 2 Momentum
-3 3 Mass
-4 4 Short-wave radiation
-5 5 Long-wave radiation
-6 6 Cloud
-7 7 Thermodynamic stability indices
-8 8 Kinematic stability indices
-9 9 Temperature probabilities
-10 10 Moisture probabilities
-11 11 Momentum probabilities
-12 12 Mass probabilities
-13 13 Aerosols
-14 14 Trace gases (e.g. ozone, CO2)
-15 15 Radar
-16 16 Forecast radar imagery
-17 17 Electrodynamics
-18 18 Nuclear/radiology
-19 19 Physical atmospheric properties
-20 20 Atmospheric chemical constituents
-# 21-189 Reserved
-190 190 CCITT IA5 string
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Temperature
+1 1 Moisture
+2 2 Momentum
+3 3 Mass
+4 4 Short-wave radiation
+5 5 Long-wave radiation
+6 6 Cloud
+7 7 Thermodynamic stability indices
+8 8 Kinematic stability indices
+9 9 Temperature probabilities
+10 10 Moisture probabilities
+11 11 Momentum probabilities
+12 12 Mass probabilities
+13 13 Aerosols
+14 14 Trace gases (e.g. ozone, CO2)
+15 15 Radar
+16 16 Forecast radar imagery
+17 17 Electrodynamics
+18 18 Nuclear/radiology
+19 19 Physical atmospheric properties
+20 20 Atmospheric chemical constituents
+# 21-189 Reserved
+190 190 CCITT IA5 string
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.1.1.table b/definitions/grib2/tables/9/4.1.1.table
index 29f1dec79..dea5bc49e 100644
--- a/definitions/grib2/tables/9/4.1.1.table
+++ b/definitions/grib2/tables/9/4.1.1.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Hydrology basic products
-1 1 Hydrology probabilities
-2 2 Inland water and sediment properties
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Hydrology basic products
+1 1 Hydrology probabilities
+2 2 Inland water and sediment properties
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.1.10.table b/definitions/grib2/tables/9/4.1.10.table
index 9c8c92b12..e6ce6faf7 100644
--- a/definitions/grib2/tables/9/4.1.10.table
+++ b/definitions/grib2/tables/9/4.1.10.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Waves
-1 1 Currents
-2 2 Ice
-3 3 Surface properties
-4 4 Sub-surface properties
-# 5-190 Reserved
-191 191 Miscellaneous
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Waves
+1 1 Currents
+2 2 Ice
+3 3 Surface properties
+4 4 Sub-surface properties
+# 5-190 Reserved
+191 191 Miscellaneous
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.1.192.table b/definitions/grib2/tables/9/4.1.192.table
deleted file mode 100644
index 67b962652..000000000
--- a/definitions/grib2/tables/9/4.1.192.table
+++ /dev/null
@@ -1,3 +0,0 @@
-#Discipline 192: ECMWF local parameters
-255 255 Missing
-
diff --git a/definitions/grib2/tables/9/4.1.2.table b/definitions/grib2/tables/9/4.1.2.table
index b90201c63..805836998 100644
--- a/definitions/grib2/tables/9/4.1.2.table
+++ b/definitions/grib2/tables/9/4.1.2.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Vegetation/biomass
-1 1 Agri-/aquacultural special products
-2 2 Transportation-related products
-3 3 Soil products
-4 4 Fire weather products
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Vegetation/biomass
+1 1 Agri-/aquacultural special products
+2 2 Transportation-related products
+3 3 Soil products
+4 4 Fire weather products
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.1.3.table b/definitions/grib2/tables/9/4.1.3.table
index 3c947b136..c96617665 100644
--- a/definitions/grib2/tables/9/4.1.3.table
+++ b/definitions/grib2/tables/9/4.1.3.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Image format products
-1 1 Quantitative products
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Image format products
+1 1 Quantitative products
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.10.table b/definitions/grib2/tables/9/4.10.table
index 0e5170876..a13fb00b4 100644
--- a/definitions/grib2/tables/9/4.10.table
+++ b/definitions/grib2/tables/9/4.10.table
@@ -1,15 +1,15 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 avg Average
-1 accum Accumulation
-2 max Maximum
-3 min Minimum
-4 diff Difference (value at the end of time range minus value at the beginning)
-5 rms Root mean square
-6 sd Standard deviation
-7 cov Covariance (temporal variance)
-8 8 Difference (value at the start of time range minus value at the end)
-9 ratio Ratio
-10 10 Standardized anomaly
-# 11-191 Reserved
-# 192-254 Reserved for local use
-255 missing Missing
+0 avg Average
+1 accum Accumulation
+2 max Maximum
+3 min Minimum
+4 diff Difference (value at the end of time range minus value at the beginning)
+5 rms Root mean square
+6 sd Standard deviation
+7 cov Covariance (temporal variance)
+8 8 Difference (value at the start of time range minus value at the end)
+9 ratio Ratio
+10 10 Standardized anomaly
+# 11-191 Reserved
+# 192-254 Reserved for local use
+255 missing Missing
diff --git a/definitions/grib2/tables/9/4.11.table b/definitions/grib2/tables/9/4.11.table
index 1257d1b09..af9ff29ad 100644
--- a/definitions/grib2/tables/9/4.11.table
+++ b/definitions/grib2/tables/9/4.11.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Successive times processed have same forecast time, start time of forecast is incremented
-2 2 Successive times processed have same start time of forecast, forecast time is incremented
-3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
-4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
-5 5 Floating subinterval of time between forecast time and end of overall time interval
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Successive times processed have same forecast time, start time of forecast is incremented
+2 2 Successive times processed have same start time of forecast, forecast time is incremented
+3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant
+4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant
+5 5 Floating subinterval of time between forecast time and end of overall time interval
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.12.table b/definitions/grib2/tables/9/4.12.table
index 680b6456d..6cab67bf5 100644
--- a/definitions/grib2/tables/9/4.12.table
+++ b/definitions/grib2/tables/9/4.12.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Maintenance mode
-1 1 Clear air
-2 2 Precipitation
+0 0 Maintenance mode
+1 1 Clear air
+2 2 Precipitation
# 3-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.13.table b/definitions/grib2/tables/9/4.13.table
index 0d0474d69..f090fb9ae 100644
--- a/definitions/grib2/tables/9/4.13.table
+++ b/definitions/grib2/tables/9/4.13.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No quality control applied
-1 1 Quality control applied
+0 0 No quality control applied
+1 1 Quality control applied
# 2-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.14.table b/definitions/grib2/tables/9/4.14.table
index 9ed9078a8..bcb04f328 100644
--- a/definitions/grib2/tables/9/4.14.table
+++ b/definitions/grib2/tables/9/4.14.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No clutter filter used
-1 1 Clutter filter used
+0 0 No clutter filter used
+1 1 Clutter filter used
# 2-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.15.table b/definitions/grib2/tables/9/4.15.table
index 4c8a88401..6e1ef5745 100644
--- a/definitions/grib2/tables/9/4.15.table
+++ b/definitions/grib2/tables/9/4.15.table
@@ -1,11 +1,11 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Data is calculated directly from the source grid with no interpolation
-1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
-4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
-6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+0 0 Data is calculated directly from the source grid with no interpolation
+1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point
+4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
+6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point
# 7-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.0.table b/definitions/grib2/tables/9/4.2.0.0.table
index debc0a6f4..8656f8974 100644
--- a/definitions/grib2/tables/9/4.2.0.0.table
+++ b/definitions/grib2/tables/9/4.2.0.0.table
@@ -20,6 +20,6 @@
18 18 Snow temperature (top of snow) (K)
19 19 Turbulent transfer coefficient for heat (Numeric)
20 20 Turbulent diffusion coefficient for heat (m2/s)
-# 21-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 21-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.1.table b/definitions/grib2/tables/9/4.2.0.1.table
index 1922792a6..8ee93e99b 100644
--- a/definitions/grib2/tables/9/4.2.0.1.table
+++ b/definitions/grib2/tables/9/4.2.0.1.table
@@ -62,7 +62,7 @@
60 60 Snow depth water equivalent (kg m-2)
61 61 Snow density (kg m-3)
62 62 Snow evaporation (kg m-2)
-63 63 Reserved
+63 63 Reserved
64 64 Total column integrated water vapour (kg m-2)
65 65 Rain precipitation rate (kg m-2 s-1)
66 66 Snow precipitation rate (kg m-2 s-1)
@@ -86,10 +86,10 @@
84 84 Specific cloud ice water content (kg/kg)
85 85 Specific rain water content (kg/kg)
86 86 Specific snow water content (kg/kg)
-# 87-89 Reserved
+# 87-89 Reserved
90 90 Total kinematic moisture flux (kg kg-1 m s-1)
91 91 u-component (zonal) kinematic moisture flux (kg kg-1 m s-1)
92 92 v-component (meridional) kinematic moisture flux (kg kg-1 m s-1)
-# 93-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 93-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.13.table b/definitions/grib2/tables/9/4.2.0.13.table
index b9979f0d3..90ab7d1b9 100644
--- a/definitions/grib2/tables/9/4.2.0.13.table
+++ b/definitions/grib2/tables/9/4.2.0.13.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Aerosol type (Code table 4.205)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.14.table b/definitions/grib2/tables/9/4.2.0.14.table
index 4a2a4e128..fca42ccc7 100644
--- a/definitions/grib2/tables/9/4.2.0.14.table
+++ b/definitions/grib2/tables/9/4.2.0.14.table
@@ -2,6 +2,6 @@
0 0 Total ozone (DU)
1 1 Ozone mixing ratio (kg/kg)
2 2 Total column integrated ozone (DU)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.15.table b/definitions/grib2/tables/9/4.2.0.15.table
index 895892f86..66ccff19d 100644
--- a/definitions/grib2/tables/9/4.2.0.15.table
+++ b/definitions/grib2/tables/9/4.2.0.15.table
@@ -14,6 +14,6 @@
12 12 Reflectivity of rain (dB)
13 13 Reflectivity of graupel (dB)
14 14 Reflectivity of hail (dB)
-# 15-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 15-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.16.table b/definitions/grib2/tables/9/4.2.0.16.table
index 39215ab20..18dedb7c0 100644
--- a/definitions/grib2/tables/9/4.2.0.16.table
+++ b/definitions/grib2/tables/9/4.2.0.16.table
@@ -5,6 +5,6 @@
3 3 Echo top (m)
4 4 Reflectivity (dB)
5 5 Composite reflectivity (dB)
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.18.table b/definitions/grib2/tables/9/4.2.0.18.table
index 30060fd2d..165aa6008 100644
--- a/definitions/grib2/tables/9/4.2.0.18.table
+++ b/definitions/grib2/tables/9/4.2.0.18.table
@@ -8,11 +8,11 @@
6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3)
7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3)
8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3)
-9 9 Reserved
+9 9 Reserved
10 10 Air concentration (Bq m-3)
11 11 Wet deposition (Bq m-2)
12 12 Dry deposition (Bq m-2)
13 13 Total deposition (wet + dry) (Bq m-2)
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.19.table b/definitions/grib2/tables/9/4.2.0.19.table
index 5831b567c..cbce2f76c 100644
--- a/definitions/grib2/tables/9/4.2.0.19.table
+++ b/definitions/grib2/tables/9/4.2.0.19.table
@@ -27,6 +27,6 @@
25 25 Weather (Code table 4.225)
26 26 Convective outlook (Code table 4.224)
27 27 Icing scenario (Code table 4.227)
-# 28-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 28-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.190.table b/definitions/grib2/tables/9/4.2.0.190.table
index 39fb55746..3d9d5ff85 100644
--- a/definitions/grib2/tables/9/4.2.0.190.table
+++ b/definitions/grib2/tables/9/4.2.0.190.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Arbitrary text string (CCITT IA5)
-# 1-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 1-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.191.table b/definitions/grib2/tables/9/4.2.0.191.table
index 81230c0e0..4ff12e532 100644
--- a/definitions/grib2/tables/9/4.2.0.191.table
+++ b/definitions/grib2/tables/9/4.2.0.191.table
@@ -2,6 +2,6 @@
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Geographical latitude (deg N)
2 2 Geographical longitude (deg E)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing value
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing value
diff --git a/definitions/grib2/tables/9/4.2.0.2.table b/definitions/grib2/tables/9/4.2.0.2.table
index e8b59a998..68aa47ba6 100644
--- a/definitions/grib2/tables/9/4.2.0.2.table
+++ b/definitions/grib2/tables/9/4.2.0.2.table
@@ -35,6 +35,6 @@
33 33 Wind fetch (m)
34 34 Normal wind component (m/s)
35 35 Tangential wind component (m/s)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.20.table b/definitions/grib2/tables/9/4.2.0.20.table
index cc2dbcc52..898a774eb 100644
--- a/definitions/grib2/tables/9/4.2.0.20.table
+++ b/definitions/grib2/tables/9/4.2.0.20.table
@@ -14,7 +14,7 @@
12 12 Dry deposition mass flux (kg m-2 s-1)
13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1)
14 14 Transfer from SO2 (Sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1)
-# 15-49 Reserved
+# 15-49 Reserved
50 50 Amount in atmosphere (mol)
51 51 Concentration in air (mol m-3)
52 52 Volume mixing ratio (fraction in air) (mol/mol)
@@ -25,7 +25,7 @@
57 57 Total yearly average burden of the atmosphere (mol)
58 58 Total yearly averaged atmospheric loss (mol/s)
59 59 Aerosol number concentration (m-3)
-# 60-99 Reserved
+# 60-99 Reserved
100 100 Surface area density (aerosol) (/m)
101 101 Vertical visual range (m)
102 102 Aerosol optical thickness (Numeric)
@@ -37,6 +37,6 @@
108 108 Aerosol lidar backscatter from the ground (m-1 sr-1)
109 109 Aerosol lidar extinction from satellite (m-1)
110 110 Aerosol lidar extinction from the ground (m-1)
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.3.table b/definitions/grib2/tables/9/4.2.0.3.table
index f718c6ea9..08c1c7bc3 100644
--- a/definitions/grib2/tables/9/4.2.0.3.table
+++ b/definitions/grib2/tables/9/4.2.0.3.table
@@ -26,6 +26,6 @@
24 24 Anisotropy of sub-gridscale orography (Numeric)
25 25 Natural logarithm of pressure in Pa (Numeric)
26 26 Exner pressure (Numeric)
-# 27-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 27-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.4.table b/definitions/grib2/tables/9/4.2.0.4.table
index fea4cafc3..336fdb421 100644
--- a/definitions/grib2/tables/9/4.2.0.4.table
+++ b/definitions/grib2/tables/9/4.2.0.4.table
@@ -12,9 +12,9 @@
10 10 Photosynthetically active radiation (W m-2)
11 11 Net short-wave radiation flux, clear sky (W m-2)
12 12 Downward UV radiation (W m-2)
-# 13-49 Reserved
+# 13-49 Reserved
50 50 UV index (under clear sky) (Numeric)
51 51 UV index (Numeric)
-# 52-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 52-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.5.table b/definitions/grib2/tables/9/4.2.0.5.table
index aae853bf9..607235064 100644
--- a/definitions/grib2/tables/9/4.2.0.5.table
+++ b/definitions/grib2/tables/9/4.2.0.5.table
@@ -6,6 +6,6 @@
4 4 Upward long-wave radiation flux (W m-2)
5 5 Net long wave radiation flux (W m-2)
6 6 Net long-wave radiation flux, clear sky (W m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.6.table b/definitions/grib2/tables/9/4.2.0.6.table
index fd4b23014..fb935344e 100644
--- a/definitions/grib2/tables/9/4.2.0.6.table
+++ b/definitions/grib2/tables/9/4.2.0.6.table
@@ -35,6 +35,6 @@
33 33 Sunshine duration (s)
34 34 Surface long wave effective total cloudiness (Numeric)
35 35 Surface short wave effective total cloudiness (Numeric)
-# 36-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 36-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.0.7.table b/definitions/grib2/tables/9/4.2.0.7.table
index 7a7d2008b..6c1794c73 100644
--- a/definitions/grib2/tables/9/4.2.0.7.table
+++ b/definitions/grib2/tables/9/4.2.0.7.table
@@ -13,8 +13,8 @@
11 11 Best (4-layer) lifted index (K)
12 12 Richardson number (Numeric)
13 13 Showalter index (K)
-14 14 Reserved
+14 14 Reserved
15 15 Updraft helicity (m2 s-2)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.1.0.table b/definitions/grib2/tables/9/4.2.1.0.table
index bf1e3e93f..9c4d129da 100644
--- a/definitions/grib2/tables/9/4.2.1.0.table
+++ b/definitions/grib2/tables/9/4.2.1.0.table
@@ -6,6 +6,6 @@
4 4 Snow water equivalent per cent of normal (%)
5 5 Baseflow-groundwater runoff (kg m-2)
6 6 Storm surface runoff (kg m-2)
-# 7-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 7-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.1.1.table b/definitions/grib2/tables/9/4.2.1.1.table
index cb5117dc8..aa560e479 100644
--- a/definitions/grib2/tables/9/4.2.1.1.table
+++ b/definitions/grib2/tables/9/4.2.1.1.table
@@ -2,6 +2,6 @@
0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2)
1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%)
2 2 Probability of 0.01 inch of precipitation (POP) (%)
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.0.table b/definitions/grib2/tables/9/4.2.10.0.table
index d4321d955..8bba32cf5 100644
--- a/definitions/grib2/tables/9/4.2.10.0.table
+++ b/definitions/grib2/tables/9/4.2.10.0.table
@@ -45,6 +45,6 @@
43 43 Kurtosis of the sea surface elevation due to waves (-)
44 44 Benjamin-Feir index (-)
45 45 Spectral peakedness factor (s-1)
-# 46-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 46-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.1.table b/definitions/grib2/tables/9/4.2.10.1.table
index 5a33bac5d..a076fb07c 100644
--- a/definitions/grib2/tables/9/4.2.10.1.table
+++ b/definitions/grib2/tables/9/4.2.10.1.table
@@ -3,6 +3,6 @@
1 1 Current speed (m/s)
2 2 u-component of current (m/s)
3 3 v-component of current (m/s)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.191.table b/definitions/grib2/tables/9/4.2.10.191.table
index 14085ac9a..6cafbd3d4 100644
--- a/definitions/grib2/tables/9/4.2.10.191.table
+++ b/definitions/grib2/tables/9/4.2.10.191.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Seconds prior to initial reference time (defined in Section 1) (s)
1 1 Meridional overturning stream function (m3/s)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.2.table b/definitions/grib2/tables/9/4.2.10.2.table
index a69b2622c..80fe973be 100644
--- a/definitions/grib2/tables/9/4.2.10.2.table
+++ b/definitions/grib2/tables/9/4.2.10.2.table
@@ -9,6 +9,6 @@
7 7 Ice divergence (/s)
8 8 Ice temperature (K)
9 9 Ice internal pressure (Pa m)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.3.table b/definitions/grib2/tables/9/4.2.10.3.table
index 112af09d5..3b9a2df46 100644
--- a/definitions/grib2/tables/9/4.2.10.3.table
+++ b/definitions/grib2/tables/9/4.2.10.3.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 Water temperature (K)
1 1 Deviation of sea level from mean (m)
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.10.4.table b/definitions/grib2/tables/9/4.2.10.4.table
index d80a32780..91ffb2b29 100644
--- a/definitions/grib2/tables/9/4.2.10.4.table
+++ b/definitions/grib2/tables/9/4.2.10.4.table
@@ -7,12 +7,12 @@
5 5 Ocean vertical salt diffusivity (m2 s-1)
6 6 Ocean vertical momentum diffusivity (m2 s-1)
7 7 Bathymetry (m)
-# 8-10 Reserved
+# 8-10 Reserved
11 11 Shape factor with respect to salinity profile (-)
12 12 Shape factor with respect to temperature profile in thermocline (-)
13 13 Attenuation coefficient of water with respect to solar radiation (m-1)
14 14 Water depth (m)
15 15 Water temperature (K)
-# 16-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 16-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.192.0.table b/definitions/grib2/tables/9/4.2.192.0.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.0.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.1.table b/definitions/grib2/tables/9/4.2.192.1.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.1.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.10.table b/definitions/grib2/tables/9/4.2.192.10.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.10.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.100.table b/definitions/grib2/tables/9/4.2.192.100.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.100.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.101.table b/definitions/grib2/tables/9/4.2.192.101.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.101.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.102.table b/definitions/grib2/tables/9/4.2.192.102.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.102.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.103.table b/definitions/grib2/tables/9/4.2.192.103.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.103.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.104.table b/definitions/grib2/tables/9/4.2.192.104.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.104.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.105.table b/definitions/grib2/tables/9/4.2.192.105.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.105.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.106.table b/definitions/grib2/tables/9/4.2.192.106.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.106.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.107.table b/definitions/grib2/tables/9/4.2.192.107.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.107.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.108.table b/definitions/grib2/tables/9/4.2.192.108.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.108.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.109.table b/definitions/grib2/tables/9/4.2.192.109.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.109.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.11.table b/definitions/grib2/tables/9/4.2.192.11.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.11.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.110.table b/definitions/grib2/tables/9/4.2.192.110.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.110.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.111.table b/definitions/grib2/tables/9/4.2.192.111.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.111.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.112.table b/definitions/grib2/tables/9/4.2.192.112.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.112.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.113.table b/definitions/grib2/tables/9/4.2.192.113.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.113.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.114.table b/definitions/grib2/tables/9/4.2.192.114.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.114.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.115.table b/definitions/grib2/tables/9/4.2.192.115.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.115.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.116.table b/definitions/grib2/tables/9/4.2.192.116.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.116.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.117.table b/definitions/grib2/tables/9/4.2.192.117.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.117.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.118.table b/definitions/grib2/tables/9/4.2.192.118.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.118.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.119.table b/definitions/grib2/tables/9/4.2.192.119.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.119.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.12.table b/definitions/grib2/tables/9/4.2.192.12.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.12.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.120.table b/definitions/grib2/tables/9/4.2.192.120.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.120.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.121.table b/definitions/grib2/tables/9/4.2.192.121.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.121.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.122.table b/definitions/grib2/tables/9/4.2.192.122.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.122.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.123.table b/definitions/grib2/tables/9/4.2.192.123.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.123.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.124.table b/definitions/grib2/tables/9/4.2.192.124.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.124.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.125.table b/definitions/grib2/tables/9/4.2.192.125.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.125.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.126.table b/definitions/grib2/tables/9/4.2.192.126.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.126.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.127.table b/definitions/grib2/tables/9/4.2.192.127.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.127.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.128.table b/definitions/grib2/tables/9/4.2.192.128.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.128.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.129.table b/definitions/grib2/tables/9/4.2.192.129.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.129.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.13.table b/definitions/grib2/tables/9/4.2.192.13.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.13.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.130.table b/definitions/grib2/tables/9/4.2.192.130.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.130.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.131.table b/definitions/grib2/tables/9/4.2.192.131.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.131.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.132.table b/definitions/grib2/tables/9/4.2.192.132.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.132.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.133.table b/definitions/grib2/tables/9/4.2.192.133.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.133.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.134.table b/definitions/grib2/tables/9/4.2.192.134.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.134.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.135.table b/definitions/grib2/tables/9/4.2.192.135.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.135.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.136.table b/definitions/grib2/tables/9/4.2.192.136.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.136.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.137.table b/definitions/grib2/tables/9/4.2.192.137.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.137.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.138.table b/definitions/grib2/tables/9/4.2.192.138.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.138.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.139.table b/definitions/grib2/tables/9/4.2.192.139.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.139.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.14.table b/definitions/grib2/tables/9/4.2.192.14.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.14.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.140.table b/definitions/grib2/tables/9/4.2.192.140.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.140.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.141.table b/definitions/grib2/tables/9/4.2.192.141.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.141.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.142.table b/definitions/grib2/tables/9/4.2.192.142.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.142.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.143.table b/definitions/grib2/tables/9/4.2.192.143.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.143.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.144.table b/definitions/grib2/tables/9/4.2.192.144.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.144.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.145.table b/definitions/grib2/tables/9/4.2.192.145.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.145.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.146.table b/definitions/grib2/tables/9/4.2.192.146.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.146.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.147.table b/definitions/grib2/tables/9/4.2.192.147.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.147.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.148.table b/definitions/grib2/tables/9/4.2.192.148.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.148.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.149.table b/definitions/grib2/tables/9/4.2.192.149.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.149.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.15.table b/definitions/grib2/tables/9/4.2.192.15.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.15.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.150.table b/definitions/grib2/tables/9/4.2.192.150.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.150.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.151.table b/definitions/grib2/tables/9/4.2.192.151.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.151.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.152.table b/definitions/grib2/tables/9/4.2.192.152.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.152.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.153.table b/definitions/grib2/tables/9/4.2.192.153.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.153.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.154.table b/definitions/grib2/tables/9/4.2.192.154.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.154.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.155.table b/definitions/grib2/tables/9/4.2.192.155.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.155.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.156.table b/definitions/grib2/tables/9/4.2.192.156.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.156.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.157.table b/definitions/grib2/tables/9/4.2.192.157.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.157.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.158.table b/definitions/grib2/tables/9/4.2.192.158.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.158.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.159.table b/definitions/grib2/tables/9/4.2.192.159.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.159.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.16.table b/definitions/grib2/tables/9/4.2.192.16.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.16.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.160.table b/definitions/grib2/tables/9/4.2.192.160.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.160.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.161.table b/definitions/grib2/tables/9/4.2.192.161.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.161.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.162.table b/definitions/grib2/tables/9/4.2.192.162.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.162.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.163.table b/definitions/grib2/tables/9/4.2.192.163.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.163.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.164.table b/definitions/grib2/tables/9/4.2.192.164.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.164.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.165.table b/definitions/grib2/tables/9/4.2.192.165.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.165.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.166.table b/definitions/grib2/tables/9/4.2.192.166.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.166.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.167.table b/definitions/grib2/tables/9/4.2.192.167.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.167.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.168.table b/definitions/grib2/tables/9/4.2.192.168.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.168.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.169.table b/definitions/grib2/tables/9/4.2.192.169.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.169.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.17.table b/definitions/grib2/tables/9/4.2.192.17.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.17.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.170.table b/definitions/grib2/tables/9/4.2.192.170.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.170.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.171.table b/definitions/grib2/tables/9/4.2.192.171.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.171.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.172.table b/definitions/grib2/tables/9/4.2.192.172.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.172.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.173.table b/definitions/grib2/tables/9/4.2.192.173.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.173.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.174.table b/definitions/grib2/tables/9/4.2.192.174.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.174.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.175.table b/definitions/grib2/tables/9/4.2.192.175.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.175.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.176.table b/definitions/grib2/tables/9/4.2.192.176.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.176.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.177.table b/definitions/grib2/tables/9/4.2.192.177.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.177.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.178.table b/definitions/grib2/tables/9/4.2.192.178.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.178.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.179.table b/definitions/grib2/tables/9/4.2.192.179.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.179.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.18.table b/definitions/grib2/tables/9/4.2.192.18.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.18.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.180.table b/definitions/grib2/tables/9/4.2.192.180.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.180.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.181.table b/definitions/grib2/tables/9/4.2.192.181.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.181.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.182.table b/definitions/grib2/tables/9/4.2.192.182.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.182.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.183.table b/definitions/grib2/tables/9/4.2.192.183.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.183.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.184.table b/definitions/grib2/tables/9/4.2.192.184.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.184.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.185.table b/definitions/grib2/tables/9/4.2.192.185.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.185.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.186.table b/definitions/grib2/tables/9/4.2.192.186.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.186.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.187.table b/definitions/grib2/tables/9/4.2.192.187.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.187.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.188.table b/definitions/grib2/tables/9/4.2.192.188.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.188.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.189.table b/definitions/grib2/tables/9/4.2.192.189.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.189.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.19.table b/definitions/grib2/tables/9/4.2.192.19.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.19.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.190.table b/definitions/grib2/tables/9/4.2.192.190.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.190.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.191.table b/definitions/grib2/tables/9/4.2.192.191.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.191.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.192.table b/definitions/grib2/tables/9/4.2.192.192.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.192.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.193.table b/definitions/grib2/tables/9/4.2.192.193.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.193.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.194.table b/definitions/grib2/tables/9/4.2.192.194.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.194.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.195.table b/definitions/grib2/tables/9/4.2.192.195.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.195.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.196.table b/definitions/grib2/tables/9/4.2.192.196.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.196.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.197.table b/definitions/grib2/tables/9/4.2.192.197.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.197.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.198.table b/definitions/grib2/tables/9/4.2.192.198.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.198.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.199.table b/definitions/grib2/tables/9/4.2.192.199.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.199.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.2.table b/definitions/grib2/tables/9/4.2.192.2.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.2.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.20.table b/definitions/grib2/tables/9/4.2.192.20.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.20.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.200.table b/definitions/grib2/tables/9/4.2.192.200.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.200.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.201.table b/definitions/grib2/tables/9/4.2.192.201.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.201.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.202.table b/definitions/grib2/tables/9/4.2.192.202.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.202.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.203.table b/definitions/grib2/tables/9/4.2.192.203.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.203.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.204.table b/definitions/grib2/tables/9/4.2.192.204.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.204.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.205.table b/definitions/grib2/tables/9/4.2.192.205.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.205.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.206.table b/definitions/grib2/tables/9/4.2.192.206.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.206.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.207.table b/definitions/grib2/tables/9/4.2.192.207.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.207.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.208.table b/definitions/grib2/tables/9/4.2.192.208.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.208.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.209.table b/definitions/grib2/tables/9/4.2.192.209.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.209.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.21.table b/definitions/grib2/tables/9/4.2.192.21.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.21.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.210.table b/definitions/grib2/tables/9/4.2.192.210.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.210.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.211.table b/definitions/grib2/tables/9/4.2.192.211.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.211.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.212.table b/definitions/grib2/tables/9/4.2.192.212.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.212.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.213.table b/definitions/grib2/tables/9/4.2.192.213.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.213.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.214.table b/definitions/grib2/tables/9/4.2.192.214.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.214.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.215.table b/definitions/grib2/tables/9/4.2.192.215.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.215.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.216.table b/definitions/grib2/tables/9/4.2.192.216.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.216.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.217.table b/definitions/grib2/tables/9/4.2.192.217.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.217.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.218.table b/definitions/grib2/tables/9/4.2.192.218.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.218.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.219.table b/definitions/grib2/tables/9/4.2.192.219.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.219.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.22.table b/definitions/grib2/tables/9/4.2.192.22.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.22.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.220.table b/definitions/grib2/tables/9/4.2.192.220.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.220.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.221.table b/definitions/grib2/tables/9/4.2.192.221.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.221.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.222.table b/definitions/grib2/tables/9/4.2.192.222.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.222.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.223.table b/definitions/grib2/tables/9/4.2.192.223.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.223.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.224.table b/definitions/grib2/tables/9/4.2.192.224.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.224.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.225.table b/definitions/grib2/tables/9/4.2.192.225.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.225.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.226.table b/definitions/grib2/tables/9/4.2.192.226.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.226.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.227.table b/definitions/grib2/tables/9/4.2.192.227.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.227.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.228.table b/definitions/grib2/tables/9/4.2.192.228.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.228.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.229.table b/definitions/grib2/tables/9/4.2.192.229.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.229.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.23.table b/definitions/grib2/tables/9/4.2.192.23.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.23.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.230.table b/definitions/grib2/tables/9/4.2.192.230.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.230.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.231.table b/definitions/grib2/tables/9/4.2.192.231.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.231.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.232.table b/definitions/grib2/tables/9/4.2.192.232.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.232.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.233.table b/definitions/grib2/tables/9/4.2.192.233.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.233.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.234.table b/definitions/grib2/tables/9/4.2.192.234.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.234.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.235.table b/definitions/grib2/tables/9/4.2.192.235.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.235.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.236.table b/definitions/grib2/tables/9/4.2.192.236.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.236.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.237.table b/definitions/grib2/tables/9/4.2.192.237.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.237.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.238.table b/definitions/grib2/tables/9/4.2.192.238.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.238.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.239.table b/definitions/grib2/tables/9/4.2.192.239.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.239.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.24.table b/definitions/grib2/tables/9/4.2.192.24.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.24.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.240.table b/definitions/grib2/tables/9/4.2.192.240.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.240.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.241.table b/definitions/grib2/tables/9/4.2.192.241.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.241.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.242.table b/definitions/grib2/tables/9/4.2.192.242.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.242.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.243.table b/definitions/grib2/tables/9/4.2.192.243.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.243.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.244.table b/definitions/grib2/tables/9/4.2.192.244.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.244.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.245.table b/definitions/grib2/tables/9/4.2.192.245.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.245.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.246.table b/definitions/grib2/tables/9/4.2.192.246.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.246.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.247.table b/definitions/grib2/tables/9/4.2.192.247.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.247.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.248.table b/definitions/grib2/tables/9/4.2.192.248.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.248.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.249.table b/definitions/grib2/tables/9/4.2.192.249.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.249.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.25.table b/definitions/grib2/tables/9/4.2.192.25.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.25.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.250.table b/definitions/grib2/tables/9/4.2.192.250.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.250.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.251.table b/definitions/grib2/tables/9/4.2.192.251.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.251.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.252.table b/definitions/grib2/tables/9/4.2.192.252.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.252.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.253.table b/definitions/grib2/tables/9/4.2.192.253.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.253.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.254.table b/definitions/grib2/tables/9/4.2.192.254.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.254.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.255.table b/definitions/grib2/tables/9/4.2.192.255.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.255.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.26.table b/definitions/grib2/tables/9/4.2.192.26.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.26.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.27.table b/definitions/grib2/tables/9/4.2.192.27.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.27.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.28.table b/definitions/grib2/tables/9/4.2.192.28.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.28.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.29.table b/definitions/grib2/tables/9/4.2.192.29.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.29.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.3.table b/definitions/grib2/tables/9/4.2.192.3.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.3.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.30.table b/definitions/grib2/tables/9/4.2.192.30.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.30.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.31.table b/definitions/grib2/tables/9/4.2.192.31.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.31.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.32.table b/definitions/grib2/tables/9/4.2.192.32.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.32.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.33.table b/definitions/grib2/tables/9/4.2.192.33.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.33.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.34.table b/definitions/grib2/tables/9/4.2.192.34.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.34.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.35.table b/definitions/grib2/tables/9/4.2.192.35.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.35.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.36.table b/definitions/grib2/tables/9/4.2.192.36.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.36.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.37.table b/definitions/grib2/tables/9/4.2.192.37.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.37.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.38.table b/definitions/grib2/tables/9/4.2.192.38.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.38.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.39.table b/definitions/grib2/tables/9/4.2.192.39.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.39.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.4.table b/definitions/grib2/tables/9/4.2.192.4.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.4.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.40.table b/definitions/grib2/tables/9/4.2.192.40.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.40.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.41.table b/definitions/grib2/tables/9/4.2.192.41.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.41.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.42.table b/definitions/grib2/tables/9/4.2.192.42.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.42.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.43.table b/definitions/grib2/tables/9/4.2.192.43.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.43.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.44.table b/definitions/grib2/tables/9/4.2.192.44.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.44.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.45.table b/definitions/grib2/tables/9/4.2.192.45.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.45.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.46.table b/definitions/grib2/tables/9/4.2.192.46.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.46.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.47.table b/definitions/grib2/tables/9/4.2.192.47.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.47.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.48.table b/definitions/grib2/tables/9/4.2.192.48.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.48.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.49.table b/definitions/grib2/tables/9/4.2.192.49.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.49.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.5.table b/definitions/grib2/tables/9/4.2.192.5.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.5.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.50.table b/definitions/grib2/tables/9/4.2.192.50.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.50.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.51.table b/definitions/grib2/tables/9/4.2.192.51.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.51.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.52.table b/definitions/grib2/tables/9/4.2.192.52.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.52.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.53.table b/definitions/grib2/tables/9/4.2.192.53.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.53.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.54.table b/definitions/grib2/tables/9/4.2.192.54.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.54.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.55.table b/definitions/grib2/tables/9/4.2.192.55.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.55.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.56.table b/definitions/grib2/tables/9/4.2.192.56.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.56.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.57.table b/definitions/grib2/tables/9/4.2.192.57.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.57.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.58.table b/definitions/grib2/tables/9/4.2.192.58.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.58.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.59.table b/definitions/grib2/tables/9/4.2.192.59.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.59.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.6.table b/definitions/grib2/tables/9/4.2.192.6.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.6.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.60.table b/definitions/grib2/tables/9/4.2.192.60.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.60.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.61.table b/definitions/grib2/tables/9/4.2.192.61.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.61.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.62.table b/definitions/grib2/tables/9/4.2.192.62.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.62.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.63.table b/definitions/grib2/tables/9/4.2.192.63.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.63.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.64.table b/definitions/grib2/tables/9/4.2.192.64.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.64.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.65.table b/definitions/grib2/tables/9/4.2.192.65.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.65.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.66.table b/definitions/grib2/tables/9/4.2.192.66.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.66.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.67.table b/definitions/grib2/tables/9/4.2.192.67.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.67.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.68.table b/definitions/grib2/tables/9/4.2.192.68.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.68.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.69.table b/definitions/grib2/tables/9/4.2.192.69.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.69.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.7.table b/definitions/grib2/tables/9/4.2.192.7.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.7.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.70.table b/definitions/grib2/tables/9/4.2.192.70.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.70.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.71.table b/definitions/grib2/tables/9/4.2.192.71.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.71.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.72.table b/definitions/grib2/tables/9/4.2.192.72.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.72.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.73.table b/definitions/grib2/tables/9/4.2.192.73.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.73.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.74.table b/definitions/grib2/tables/9/4.2.192.74.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.74.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.75.table b/definitions/grib2/tables/9/4.2.192.75.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.75.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.76.table b/definitions/grib2/tables/9/4.2.192.76.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.76.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.77.table b/definitions/grib2/tables/9/4.2.192.77.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.77.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.78.table b/definitions/grib2/tables/9/4.2.192.78.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.78.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.79.table b/definitions/grib2/tables/9/4.2.192.79.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.79.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.8.table b/definitions/grib2/tables/9/4.2.192.8.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.8.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.80.table b/definitions/grib2/tables/9/4.2.192.80.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.80.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.81.table b/definitions/grib2/tables/9/4.2.192.81.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.81.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.82.table b/definitions/grib2/tables/9/4.2.192.82.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.82.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.83.table b/definitions/grib2/tables/9/4.2.192.83.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.83.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.84.table b/definitions/grib2/tables/9/4.2.192.84.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.84.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.85.table b/definitions/grib2/tables/9/4.2.192.85.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.85.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.86.table b/definitions/grib2/tables/9/4.2.192.86.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.86.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.87.table b/definitions/grib2/tables/9/4.2.192.87.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.87.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.88.table b/definitions/grib2/tables/9/4.2.192.88.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.88.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.89.table b/definitions/grib2/tables/9/4.2.192.89.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.89.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.9.table b/definitions/grib2/tables/9/4.2.192.9.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.9.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.90.table b/definitions/grib2/tables/9/4.2.192.90.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.90.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.91.table b/definitions/grib2/tables/9/4.2.192.91.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.91.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.92.table b/definitions/grib2/tables/9/4.2.192.92.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.92.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.93.table b/definitions/grib2/tables/9/4.2.192.93.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.93.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.94.table b/definitions/grib2/tables/9/4.2.192.94.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.94.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.95.table b/definitions/grib2/tables/9/4.2.192.95.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.95.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.96.table b/definitions/grib2/tables/9/4.2.192.96.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.96.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.97.table b/definitions/grib2/tables/9/4.2.192.97.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.97.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.98.table b/definitions/grib2/tables/9/4.2.192.98.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.98.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.192.99.table b/definitions/grib2/tables/9/4.2.192.99.table
deleted file mode 100644
index c37fd8f74..000000000
--- a/definitions/grib2/tables/9/4.2.192.99.table
+++ /dev/null
@@ -1,2 +0,0 @@
-# ECMWF local parameters
-255 255 Missing (-)
diff --git a/definitions/grib2/tables/9/4.2.2.0.table b/definitions/grib2/tables/9/4.2.2.0.table
index ed4a85093..bbd328f0a 100644
--- a/definitions/grib2/tables/9/4.2.2.0.table
+++ b/definitions/grib2/tables/9/4.2.2.0.table
@@ -32,6 +32,6 @@
30 30 Deciduous forest cover (Proportion)
31 31 Normalized differential vegetation index (NDVI) (Numeric)
32 32 Root depth of vegetation (m)
-# 33-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 33-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.2.3.table b/definitions/grib2/tables/9/4.2.2.3.table
index 80113a4bd..a9ec602e6 100644
--- a/definitions/grib2/tables/9/4.2.2.3.table
+++ b/definitions/grib2/tables/9/4.2.2.3.table
@@ -22,6 +22,6 @@
20 20 Column-integrated soil moisture (kg m-2)
21 21 Soil ice (kg m-3)
22 22 Column-integrated soil ice (kg m-2)
-# 23-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 23-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.3.0.table b/definitions/grib2/tables/9/4.2.3.0.table
index 254e56bc8..8c19d43b2 100644
--- a/definitions/grib2/tables/9/4.2.3.0.table
+++ b/definitions/grib2/tables/9/4.2.3.0.table
@@ -9,6 +9,6 @@
7 7 Cloud mask (Code table 4.217)
8 8 Pixel scene type (Code table 4.218)
9 9 Fire detection indicator (Code table 4.223)
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.2.3.1.table b/definitions/grib2/tables/9/4.2.3.1.table
index 16eee69c4..d199aff60 100644
--- a/definitions/grib2/tables/9/4.2.3.1.table
+++ b/definitions/grib2/tables/9/4.2.3.1.table
@@ -17,12 +17,12 @@
15 15 Clear-sky brightness temperature (K)
16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1)
17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1)
-18 18 Reserved
+18 18 Reserved
19 19 Wind speed (m/s)
20 20 Aerosol optical thickness at 0.635 um
21 21 Aerosol optical thickness at 0.810 um
22 22 Aerosol optical thickness at 1.640 um
-23 23 Angstrom coefficient
-# 24-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+23 23 Angstrom coefficient
+# 24-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.201.table b/definitions/grib2/tables/9/4.201.table
index d1aa3491d..e16d5d808 100644
--- a/definitions/grib2/tables/9/4.201.table
+++ b/definitions/grib2/tables/9/4.201.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Rain
-2 2 Thunderstorm
-3 3 Freezing rain
-4 4 Mixed/ice
-5 5 Snow
+0 0 Reserved
+1 1 Rain
+2 2 Thunderstorm
+3 3 Freezing rain
+4 4 Mixed/ice
+5 5 Snow
# 6-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.203.table b/definitions/grib2/tables/9/4.203.table
index fce5a15b1..9a8d29e01 100644
--- a/definitions/grib2/tables/9/4.203.table
+++ b/definitions/grib2/tables/9/4.203.table
@@ -1,25 +1,25 @@
-0 0 Clear
-1 1 Cumulonimbus
-2 2 Stratus
-3 3 Stratocumulus
-4 4 Cumulus
-5 5 Altostratus
-6 6 Nimbostratus
-7 7 Altocumulus
-8 8 Cirrostratus
-9 9 Cirrocumulus
-10 10 Cirrus
-11 11 Cumulonimbus - ground-based fog beneath the lowest layer
-12 12 Stratus - ground-based fog beneath the lowest layer
-13 13 Stratocumulus - ground-based fog beneath the lowest layer
-14 14 Cumulus - ground-based fog beneath the lowest layer
-15 15 Altostratus - ground-based fog beneath the lowest layer
-16 16 Nimbostratus - ground-based fog beneath the lowest layer
-17 17 Altocumulus - ground-based fog beneath the lowest layer
-18 18 Cirrostratus - ground-based fog beneath the lowest layer
-19 19 Cirrocumulus - ground-based fog beneath the lowest layer
-20 20 Cirrus - ground-based fog beneath the lowest layer
-# 21-190 Reserved
-191 191 Unknown
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear
+1 1 Cumulonimbus
+2 2 Stratus
+3 3 Stratocumulus
+4 4 Cumulus
+5 5 Altostratus
+6 6 Nimbostratus
+7 7 Altocumulus
+8 8 Cirrostratus
+9 9 Cirrocumulus
+10 10 Cirrus
+11 11 Cumulonimbus - ground-based fog beneath the lowest layer
+12 12 Stratus - ground-based fog beneath the lowest layer
+13 13 Stratocumulus - ground-based fog beneath the lowest layer
+14 14 Cumulus - ground-based fog beneath the lowest layer
+15 15 Altostratus - ground-based fog beneath the lowest layer
+16 16 Nimbostratus - ground-based fog beneath the lowest layer
+17 17 Altocumulus - ground-based fog beneath the lowest layer
+18 18 Cirrostratus - ground-based fog beneath the lowest layer
+19 19 Cirrocumulus - ground-based fog beneath the lowest layer
+20 20 Cirrus - ground-based fog beneath the lowest layer
+# 21-190 Reserved
+191 191 Unknown
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.204.table b/definitions/grib2/tables/9/4.204.table
index a1bdcdf05..8d8bca9b2 100644
--- a/definitions/grib2/tables/9/4.204.table
+++ b/definitions/grib2/tables/9/4.204.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None
-1 1 Isolated (1-2%)
-2 2 Few (3-5%)
-3 3 Scattered (16-45%)
-4 4 Numerous (> 45%)
+0 0 None
+1 1 Isolated (1-2%)
+2 2 Few (3-5%)
+3 3 Scattered (16-45%)
+4 4 Numerous (> 45%)
# 5-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/9/4.205.table b/definitions/grib2/tables/9/4.205.table
index 8d425ab9d..3fadf7d80 100644
--- a/definitions/grib2/tables/9/4.205.table
+++ b/definitions/grib2/tables/9/4.205.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Aerosol not present
-1 1 Aerosol present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Aerosol not present
+1 1 Aerosol present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.206.table b/definitions/grib2/tables/9/4.206.table
index 0be7fd4f8..43b0ba137 100644
--- a/definitions/grib2/tables/9/4.206.table
+++ b/definitions/grib2/tables/9/4.206.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not present
-1 1 Present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not present
+1 1 Present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.207.table b/definitions/grib2/tables/9/4.207.table
index fde9eb477..815a5777e 100644
--- a/definitions/grib2/tables/9/4.207.table
+++ b/definitions/grib2/tables/9/4.207.table
@@ -1,10 +1,10 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Trace
-5 5 Heavy
-# 6-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Trace
+5 5 Heavy
+# 6-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.208.table b/definitions/grib2/tables/9/4.208.table
index 196becaaf..23ea97317 100644
--- a/definitions/grib2/tables/9/4.208.table
+++ b/definitions/grib2/tables/9/4.208.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 None (smooth)
-1 1 Light
-2 2 Moderate
-3 3 Severe
-4 4 Extreme
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 None (smooth)
+1 1 Light
+2 2 Moderate
+3 3 Severe
+4 4 Extreme
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.209.table b/definitions/grib2/tables/9/4.209.table
index 351c0f431..53c6c5eba 100644
--- a/definitions/grib2/tables/9/4.209.table
+++ b/definitions/grib2/tables/9/4.209.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Stable
-2 2 Mechanically-driven turbulence
-3 3 Forced convection
-4 4 Free convection
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Stable
+2 2 Mechanically-driven turbulence
+3 3 Forced convection
+4 4 Free convection
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.210.table b/definitions/grib2/tables/9/4.210.table
index 1c00b8c6f..149b2ba06 100644
--- a/definitions/grib2/tables/9/4.210.table
+++ b/definitions/grib2/tables/9/4.210.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Contrail not present
-1 1 Contrail present
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Contrail not present
+1 1 Contrail present
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.211.table b/definitions/grib2/tables/9/4.211.table
index 66ef656f6..b5753f19f 100644
--- a/definitions/grib2/tables/9/4.211.table
+++ b/definitions/grib2/tables/9/4.211.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Low bypass
-1 1 High bypass
-2 2 Non-bypass
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Low bypass
+1 1 High bypass
+2 2 Non-bypass
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.212.table b/definitions/grib2/tables/9/4.212.table
index c59bd24e8..738c45d2c 100644
--- a/definitions/grib2/tables/9/4.212.table
+++ b/definitions/grib2/tables/9/4.212.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Urban land
-2 2 Agriculture
-3 3 Range land
-4 4 Deciduous forest
-5 5 Coniferous forest
-6 6 Forest/wetland
-7 7 Water
-8 8 Wetlands
-9 9 Desert
-10 10 Tundra
-11 11 Ice
-12 12 Tropical forest
-13 13 Savannah
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Urban land
+2 2 Agriculture
+3 3 Range land
+4 4 Deciduous forest
+5 5 Coniferous forest
+6 6 Forest/wetland
+7 7 Water
+8 8 Wetlands
+9 9 Desert
+10 10 Tundra
+11 11 Ice
+12 12 Tropical forest
+13 13 Savannah
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.213.table b/definitions/grib2/tables/9/4.213.table
index 0f5de0104..5cee0b798 100644
--- a/definitions/grib2/tables/9/4.213.table
+++ b/definitions/grib2/tables/9/4.213.table
@@ -1,21 +1,21 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 Sand
-2 2 Loamy sand
-3 3 Sandy loam
-4 4 Silt loam
-5 5 Organic (redefined)
-6 6 Sandy clay loam
-7 7 Silt clay loam
-8 8 Clay loam
-9 9 Sandy clay
-10 10 Silty clay
-11 11 Clay
-12 12 Loam
-13 13 Peat
-14 14 Rock
-15 15 Ice
-16 16 Water
-# 17-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Reserved
+1 1 Sand
+2 2 Loamy sand
+3 3 Sandy loam
+4 4 Silt loam
+5 5 Organic (redefined)
+6 6 Sandy clay loam
+7 7 Silt clay loam
+8 8 Clay loam
+9 9 Sandy clay
+10 10 Silty clay
+11 11 Clay
+12 12 Loam
+13 13 Peat
+14 14 Rock
+15 15 Ice
+16 16 Water
+# 17-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.215.table b/definitions/grib2/tables/9/4.215.table
index 460888217..5ed37c034 100644
--- a/definitions/grib2/tables/9/4.215.table
+++ b/definitions/grib2/tables/9/4.215.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-# 0-49 Reserved
-50 50 No-snow/no-cloud
-# 51-99 Reserved
-100 100 Clouds
-# 101-249 Reserved
-250 250 Snow
-# 251-254 Reserved for local use
-255 255 Missing
+# 0-49 Reserved
+50 50 No-snow/no-cloud
+# 51-99 Reserved
+100 100 Clouds
+# 101-249 Reserved
+250 250 Snow
+# 251-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.216.table b/definitions/grib2/tables/9/4.216.table
index cc62ca5e3..2fd143724 100644
--- a/definitions/grib2/tables/9/4.216.table
+++ b/definitions/grib2/tables/9/4.216.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
# 0-90 Elevation in increments of 100 m
-# 91-253 Reserved
-254 254 Clouds
-255 255 Missing
+# 91-253 Reserved
+254 254 Clouds
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.217.table b/definitions/grib2/tables/9/4.217.table
index 51a263a99..6a014c9c3 100644
--- a/definitions/grib2/tables/9/4.217.table
+++ b/definitions/grib2/tables/9/4.217.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Clear over water
-1 1 Clear over land
-2 2 Cloud
-3 3 No data
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Clear over water
+1 1 Clear over land
+2 2 Cloud
+3 3 No data
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.218.table b/definitions/grib2/tables/9/4.218.table
index d4b2ab843..b6087448f 100644
--- a/definitions/grib2/tables/9/4.218.table
+++ b/definitions/grib2/tables/9/4.218.table
@@ -1,38 +1,38 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No scene identified
-1 1 Green needle-leafed forest
-2 2 Green broad-leafed forest
-3 3 Deciduous needle-leafed forest
-4 4 Deciduous broad-leafed forest
-5 5 Deciduous mixed forest
-6 6 Closed shrub-land
-7 7 Open shrub-land
-8 8 Woody savannah
-9 9 Savannah
-10 10 Grassland
-11 11 Permanent wetland
-12 12 Cropland
-13 13 Urban
-14 14 Vegetation / crops
-15 15 Permanent snow / ice
-16 16 Barren desert
-17 17 Water bodies
-18 18 Tundra
-# 19-96 Reserved
-97 97 Snow / ice on land
-98 98 Snow / ice on water
-99 99 Sun-glint
-100 100 General cloud
-101 101 Low cloud / fog / Stratus
-102 102 Low cloud / Stratocumulus
-103 103 Low cloud / unknown type
-104 104 Medium cloud / Nimbostratus
-105 105 Medium cloud / Altostratus
-106 106 Medium cloud / unknown type
-107 107 High cloud / Cumulus
-108 108 High cloud / Cirrus
-109 109 High cloud / unknown
-110 110 Unknown cloud type
-# 111-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No scene identified
+1 1 Green needle-leafed forest
+2 2 Green broad-leafed forest
+3 3 Deciduous needle-leafed forest
+4 4 Deciduous broad-leafed forest
+5 5 Deciduous mixed forest
+6 6 Closed shrub-land
+7 7 Open shrub-land
+8 8 Woody savannah
+9 9 Savannah
+10 10 Grassland
+11 11 Permanent wetland
+12 12 Cropland
+13 13 Urban
+14 14 Vegetation / crops
+15 15 Permanent snow / ice
+16 16 Barren desert
+17 17 Water bodies
+18 18 Tundra
+# 19-96 Reserved
+97 97 Snow / ice on land
+98 98 Snow / ice on water
+99 99 Sun-glint
+100 100 General cloud
+101 101 Low cloud / fog / Stratus
+102 102 Low cloud / Stratocumulus
+103 103 Low cloud / unknown type
+104 104 Medium cloud / Nimbostratus
+105 105 Medium cloud / Altostratus
+106 106 Medium cloud / unknown type
+107 107 High cloud / Cumulus
+108 108 High cloud / Cirrus
+109 109 High cloud / unknown
+110 110 Unknown cloud type
+# 111-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.219.table b/definitions/grib2/tables/9/4.219.table
index f10ce468e..a02452fc4 100644
--- a/definitions/grib2/tables/9/4.219.table
+++ b/definitions/grib2/tables/9/4.219.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Nominal cloud top height quality
-1 1 Fog in segment
-2 2 Poor quality height estimation
-3 3 Fog in segment and poor quality height estimation
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Nominal cloud top height quality
+1 1 Fog in segment
+2 2 Poor quality height estimation
+3 3 Fog in segment and poor quality height estimation
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.220.table b/definitions/grib2/tables/9/4.220.table
index 9c957eb01..7a18fa1fd 100644
--- a/definitions/grib2/tables/9/4.220.table
+++ b/definitions/grib2/tables/9/4.220.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Latitude
-1 1 Longitude
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Latitude
+1 1 Longitude
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.221.table b/definitions/grib2/tables/9/4.221.table
index 5466929c7..eb0b64502 100644
--- a/definitions/grib2/tables/9/4.221.table
+++ b/definitions/grib2/tables/9/4.221.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Not included
-1 1 Extrapolated
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Not included
+1 1 Extrapolated
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.222.table b/definitions/grib2/tables/9/4.222.table
index c54194e29..f554a7f3d 100644
--- a/definitions/grib2/tables/9/4.222.table
+++ b/definitions/grib2/tables/9/4.222.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No
-1 1 Yes
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No
+1 1 Yes
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.223.table b/definitions/grib2/tables/9/4.223.table
index b6a9be136..706abab78 100644
--- a/definitions/grib2/tables/9/4.223.table
+++ b/definitions/grib2/tables/9/4.223.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No fire detected
-1 1 Possible fire detected
-2 2 Probable fire detected
-3 3 Missing value
+0 0 No fire detected
+1 1 Possible fire detected
+2 2 Probable fire detected
+3 3 Missing value
diff --git a/definitions/grib2/tables/9/4.224.table b/definitions/grib2/tables/9/4.224.table
index af846f841..cf67496b8 100644
--- a/definitions/grib2/tables/9/4.224.table
+++ b/definitions/grib2/tables/9/4.224.table
@@ -1,18 +1,18 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No risk area
-1 1 Reserved
-2 2 General thunderstorm risk area
-3 3 Reserved
-4 4 Slight risk area
-5 5 Reserved
-6 6 Moderate risk area
-7 7 Reserved
-8 8 High risk area
-# 9-10 Reserved
-11 11 Dry thunderstorm (dry lightning) risk area
-# 12-13 Reserved
-14 14 Critical risk area
-# 15-17 Reserved
-18 18 Extremely critical risk area
-# 19-254 Reserved
-255 255 Missing
+0 0 No risk area
+1 1 Reserved
+2 2 General thunderstorm risk area
+3 3 Reserved
+4 4 Slight risk area
+5 5 Reserved
+6 6 Moderate risk area
+7 7 Reserved
+8 8 High risk area
+# 9-10 Reserved
+11 11 Dry thunderstorm (dry lightning) risk area
+# 12-13 Reserved
+14 14 Critical risk area
+# 15-17 Reserved
+18 18 Extremely critical risk area
+# 19-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.227.table b/definitions/grib2/tables/9/4.227.table
index 56fa0e752..5a0771c0f 100644
--- a/definitions/grib2/tables/9/4.227.table
+++ b/definitions/grib2/tables/9/4.227.table
@@ -5,6 +5,6 @@
2 2 Convective
3 3 Stratiform
4 4 Freezing
-# 5-191 Reserved
+# 5-191 Reserved
# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/9/4.3.table b/definitions/grib2/tables/9/4.3.table
index 68e2cc83f..8a4e919c9 100644
--- a/definitions/grib2/tables/9/4.3.table
+++ b/definitions/grib2/tables/9/4.3.table
@@ -1,16 +1,16 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Analysis
-1 1 Initialization
-2 2 Forecast
-3 3 Bias corrected forecast
-4 4 Ensemble forecast
-5 5 Probability forecast
-6 6 Forecast error
-7 7 Analysis error
-8 8 Observation
-9 9 Climatological
-10 10 Probability-weighted forecast
-11 11 Bias-corrected ensemble forecast
-# 12-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Analysis
+1 1 Initialization
+2 2 Forecast
+3 3 Bias corrected forecast
+4 4 Ensemble forecast
+5 5 Probability forecast
+6 6 Forecast error
+7 7 Analysis error
+8 8 Observation
+9 9 Climatological
+10 10 Probability-weighted forecast
+11 11 Bias-corrected ensemble forecast
+# 12-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.4.table b/definitions/grib2/tables/9/4.4.table
index df5272d2f..511c76aa9 100644
--- a/definitions/grib2/tables/9/4.4.table
+++ b/definitions/grib2/tables/9/4.4.table
@@ -1,17 +1,17 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 m Minute
-1 h Hour
-2 D Day
-3 M Month
-4 Y Year
-5 10Y Decade (10 years)
-6 30Y Normal (30 years)
-7 C Century (100 years)
-# 8-9 Reserved
-10 3h 3 hours
-11 6h 6 hours
-12 12h 12 hours
-13 s Second
-# 14-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 m Minute
+1 h Hour
+2 D Day
+3 M Month
+4 Y Year
+5 10Y Decade (10 years)
+6 30Y Normal (30 years)
+7 C Century (100 years)
+# 8-9 Reserved
+10 3h 3 hours
+11 6h 6 hours
+12 12h 12 hours
+13 s Second
+# 14-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.5.table b/definitions/grib2/tables/9/4.5.table
index 9a46a3aa0..d07c799a8 100644
--- a/definitions/grib2/tables/9/4.5.table
+++ b/definitions/grib2/tables/9/4.5.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface
2 2 Cloud base level
3 3 Level of cloud tops
@@ -12,11 +12,11 @@
10 10 Entire atmosphere
11 11 Cumulonimbus (CB) base (m)
12 12 Cumulonimbus (CB) top (m)
-# 13-19 Reserved
+# 13-19 Reserved
20 20 Isothermal level (K)
-# 21-99 Reserved
+# 21-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -25,7 +25,7 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level
112 112 Reserved
113 113 Logarithmic hybrid level
@@ -35,14 +35,14 @@
119 hpl Hybrid pressure level
# 120-149 Reserved
150 150 Generalized vertical height coordinate
-# 151-159 Reserved
-160 160 Depth below sea level m
+# 151-159 Reserved
+160 160 Depth below sea level m
161 161 Depth below water surface (m)
162 sfc Lake or river bottom
163 163 Bottom of sediment layer
164 164 Bottom of thermally active sediment layer
165 165 Bottom of sediment layer penetrated by thermal wave
166 sfc Mixing layer
-# 167-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+# 167-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.6.table b/definitions/grib2/tables/9/4.6.table
index 54f2993c3..eaa5c4362 100644
--- a/definitions/grib2/tables/9/4.6.table
+++ b/definitions/grib2/tables/9/4.6.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unperturbed high-resolution control forecast
-1 1 Unperturbed low-resolution control forecast
-2 2 Negatively perturbed forecast
-3 3 Positively perturbed forecast
-4 4 Multi-model forecast
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unperturbed high-resolution control forecast
+1 1 Unperturbed low-resolution control forecast
+2 2 Negatively perturbed forecast
+3 3 Positively perturbed forecast
+4 4 Multi-model forecast
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.7.table b/definitions/grib2/tables/9/4.7.table
index 23e0d457e..e6d887bdb 100644
--- a/definitions/grib2/tables/9/4.7.table
+++ b/definitions/grib2/tables/9/4.7.table
@@ -1,14 +1,14 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Unweighted mean of all members
-1 1 Weighted mean of all members
-2 2 Standard deviation with respect to cluster mean
-3 3 Standard deviation with respect to cluster mean, normalized
-4 4 Spread of all members
-5 5 Large anomaly index of all members
-6 6 Unweighted mean of the cluster members
-7 7 Interquartile range (range between the 25th and 75th quantile)
-8 8 Minimum of all ensemble members
-9 9 Maximum of all ensemble members
-# 10-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Unweighted mean of all members
+1 1 Weighted mean of all members
+2 2 Standard deviation with respect to cluster mean
+3 3 Standard deviation with respect to cluster mean, normalized
+4 4 Spread of all members
+5 5 Large anomaly index of all members
+6 6 Unweighted mean of the cluster members
+7 7 Interquartile range (range between the 25th and 75th quantile)
+8 8 Minimum of all ensemble members
+9 9 Maximum of all ensemble members
+# 10-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.8.table b/definitions/grib2/tables/9/4.8.table
index 37a6cf767..d06153079 100644
--- a/definitions/grib2/tables/9/4.8.table
+++ b/definitions/grib2/tables/9/4.8.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Anomaly correlation
-1 1 Root mean square
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Anomaly correlation
+1 1 Root mean square
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.9.table b/definitions/grib2/tables/9/4.9.table
index 19e64a3d2..5243e58dd 100644
--- a/definitions/grib2/tables/9/4.9.table
+++ b/definitions/grib2/tables/9/4.9.table
@@ -1,9 +1,9 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Probability of event below lower limit
-1 1 Probability of event above upper limit
-2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
-3 3 Probability of event above lower limit
-4 4 Probability of event below upper limit
-# 5-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Probability of event below lower limit
+1 1 Probability of event above upper limit
+2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit)
+3 3 Probability of event above lower limit
+4 4 Probability of event below upper limit
+# 5-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/4.91.table b/definitions/grib2/tables/9/4.91.table
index 5d975ad8e..cea421695 100644
--- a/definitions/grib2/tables/9/4.91.table
+++ b/definitions/grib2/tables/9/4.91.table
@@ -1,16 +1,16 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Smaller than first limit
-1 1 Greater than second limit
-2 2 Between first and second limit. The range includes the first limit but not the second limit
-3 3 Greater than first limit
-4 4 Smaller than second limit
-5 5 Smaller or equal first limit
-6 6 Greater or equal second limit
-7 7 Between first and second. The range includes the first limit and the second limit
-8 8 Greater or equal first limit
-9 9 Smaller or equal second limit
-10 10 Between first and second limit. The range includes the second limit but not the first limit
-11 11 Equal to first limit.
+0 0 Smaller than first limit
+1 1 Greater than second limit
+2 2 Between first and second limit. The range includes the first limit but not the second limit
+3 3 Greater than first limit
+4 4 Smaller than second limit
+5 5 Smaller or equal first limit
+6 6 Greater or equal second limit
+7 7 Between first and second. The range includes the first limit and the second limit
+8 8 Greater or equal first limit
+9 9 Smaller or equal second limit
+10 10 Between first and second limit. The range includes the second limit but not the first limit
+11 11 Equal to first limit.
# 12-191 Reserved
# 192-254 Reserved for local use
-255 missing Missing
+255 missing Missing
diff --git a/definitions/grib2/tables/9/5.1.table b/definitions/grib2/tables/9/5.1.table
index 100d4106d..158a35850 100644
--- a/definitions/grib2/tables/9/5.1.table
+++ b/definitions/grib2/tables/9/5.1.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Floating point
-1 1 Integer
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Floating point
+1 1 Integer
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.2.table b/definitions/grib2/tables/9/5.2.table
index 4d0808be6..d9896e11f 100644
--- a/definitions/grib2/tables/9/5.2.table
+++ b/definitions/grib2/tables/9/5.2.table
@@ -1,8 +1,8 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Explicit coordinate values set
-1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
-# 2-10 Reserved
+0 0 Explicit coordinate values set
+1 1 Linear coordinates f(1)=C1, f(n)=f(n-1)+C2
+# 2-10 Reserved
11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1)
-# 12-191 Reserved
-# 192-254 Reserved for local use
+# 12-191 Reserved
+# 192-254 Reserved for local use
255 255 Missing
diff --git a/definitions/grib2/tables/9/5.3.table b/definitions/grib2/tables/9/5.3.table
index 705fa6524..6f228aeec 100644
--- a/definitions/grib2/tables/9/5.3.table
+++ b/definitions/grib2/tables/9/5.3.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-1 1 Direction degrees true
-2 2 Frequency (s-1)
-3 3 Radial number (2pi/lambda) (m-1)
-# 4-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+1 1 Direction degrees true
+2 2 Frequency (s-1)
+3 3 Radial number (2pi/lambda) (m-1)
+# 4-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.4.table b/definitions/grib2/tables/9/5.4.table
index 8133367a5..f844f557e 100644
--- a/definitions/grib2/tables/9/5.4.table
+++ b/definitions/grib2/tables/9/5.4.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Row by row splitting
-1 1 General group splitting
-# 2-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 Row by row splitting
+1 1 General group splitting
+# 2-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.40.table b/definitions/grib2/tables/9/5.40.table
index 0d56ad0e0..2431eb547 100644
--- a/definitions/grib2/tables/9/5.40.table
+++ b/definitions/grib2/tables/9/5.40.table
@@ -1,5 +1,5 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Lossless
-1 1 Lossy
-# 2-254 Reserved
-255 255 Missing
+0 0 Lossless
+1 1 Lossy
+# 2-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.5.table b/definitions/grib2/tables/9/5.5.table
index 5d625dbda..f2216e273 100644
--- a/definitions/grib2/tables/9/5.5.table
+++ b/definitions/grib2/tables/9/5.5.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 No explicit missing values included within data values
-1 1 Primary missing values included within data values
-2 2 Primary and secondary missing values included within data values
-# 3-191 Reserved
-# 192-254 Reserved for local use
-255 255 Missing
+0 0 No explicit missing values included within data values
+1 1 Primary missing values included within data values
+2 2 Primary and secondary missing values included within data values
+# 3-191 Reserved
+# 192-254 Reserved for local use
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.6.table b/definitions/grib2/tables/9/5.6.table
index 16f4c25f3..3b0892d37 100644
--- a/definitions/grib2/tables/9/5.6.table
+++ b/definitions/grib2/tables/9/5.6.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 First-order spatial differencing
-2 2 Second-order spatial differencing
-# 3-191 Reserved
+0 0 Reserved
+1 1 First-order spatial differencing
+2 2 Second-order spatial differencing
+# 3-191 Reserved
# 192-254 Reserved for local use
-255 255 Missing
+255 255 Missing
diff --git a/definitions/grib2/tables/9/5.7.table b/definitions/grib2/tables/9/5.7.table
index b93aa8130..f056d3059 100644
--- a/definitions/grib2/tables/9/5.7.table
+++ b/definitions/grib2/tables/9/5.7.table
@@ -1,7 +1,7 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
-0 0 Reserved
-1 1 IEEE 32-bit (I=4 in section 7)
-2 2 IEEE 64-bit (I=8 in section 7)
-3 3 IEEE 128-bit (I=16 in section 7)
-# 4-254 Reserved
-255 255 Missing
+0 0 Reserved
+1 1 IEEE 32-bit (I=4 in section 7)
+2 2 IEEE 64-bit (I=8 in section 7)
+3 3 IEEE 128-bit (I=16 in section 7)
+# 4-254 Reserved
+255 255 Missing
diff --git a/definitions/grib2/tables/9/6.0.table b/definitions/grib2/tables/9/6.0.table
index aecdc6e5e..9c9dba372 100644
--- a/definitions/grib2/tables/9/6.0.table
+++ b/definitions/grib2/tables/9/6.0.table
@@ -1,6 +1,6 @@
# Automatically generated by ./create_tables.pl from database fm92_grib2@grib-param-db-prod.ecmwf.int, do not edit
0 0 A bit map applies to this product and is specified in this Section
1 1 A bit map pre-determined by the originating/generating Centre applies to this product and is not specified in this Section
-# 1-253 A bit map predetermined by the originating/generating Centre applies to this product and is not specified in this Section
-254 254 A bit map defined previously in the same GRIB message applies to this product
-255 255 A bit map does not apply to this product
+# 1-253 A bit map predetermined by the originating/generating Centre applies to this product and is not specified in this Section
+254 254 A bit map defined previously in the same GRIB message applies to this product
+255 255 A bit map does not apply to this product
diff --git a/definitions/grib2/tables/local/ecmf/1/0.0.table b/definitions/grib2/tables/local/ecmf/1/0.0.table
new file mode 100644
index 000000000..a48f89506
--- /dev/null
+++ b/definitions/grib2/tables/local/ecmf/1/0.0.table
@@ -0,0 +1,2 @@
+# Code table 0.0 for ECMWF - Discipline of processed data in the GRIB message, number of GRIB Master table
+254 254 Model internal fields
diff --git a/definitions/grib2/tables/local/ecmf/1/4.1.254.table b/definitions/grib2/tables/local/ecmf/1/4.1.254.table
new file mode 100644
index 000000000..39abd06a3
--- /dev/null
+++ b/definitions/grib2/tables/local/ecmf/1/4.1.254.table
@@ -0,0 +1,2 @@
+# Product discipline 254 for ECMWF - Model internal fields
+254 254 Covariances
diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table b/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table
index 5e02901a1..1ee04a741 100644
--- a/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table
+++ b/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table
@@ -1,7 +1,7 @@
# Code table 4.2 - discipline=0 category=1 for ECMWF
192 192 Snow evaporation rate (kg m-2 s-1)
193 193 Total precipitation rate (m s-1)
-194 194 Accumulated freezing rain (m)
+194 194 Freezing rain precipitation rate (m s-1)
195 195 Convective precipitation rate (m s-1)
196 196 Large-scale precipitation rate (m s-1)
197 197 Snow evaporation rate (m of water equivalent s-1)
diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.254.254.table b/definitions/grib2/tables/local/ecmf/1/4.2.254.254.table
new file mode 100644
index 000000000..170a12cab
--- /dev/null
+++ b/definitions/grib2/tables/local/ecmf/1/4.2.254.254.table
@@ -0,0 +1,22 @@
+# Code table 4.2 - discipline=254 category=254 for ECMWF
+192 192 Covariance between 2-metre temperature and volumetric soil water layer 1 [K m**3 m**-3]
+193 193 Covariance between 2-metre relative humidity and volumetric soil water layer 1 [% m**3 m**-3]
+194 194 Covariance between surface soil moisture and volumetric soil water layer 1 [m**3 m**-3 m**3 m**-3]
+195 195 Covariance between 2-metre temperature and volumetric soil water layer 2 [K m**3 m**-3]
+196 196 Covariance between 2-metre relative humidity and volumetric soil water layer 2 [% m**3 m**-3]
+197 197 Covariance between surface soil moisture and volumetric soil water layer 2 [m**3 m**-3 m**3 m**-3]
+198 198 Covariance between 2-metre temperature and volumetric soil water layer 3 [K m**3 m**-3]
+199 199 Covariance between 2-metre relative humidity and volumetric soil water layer 3 [% m**3 m**-3]
+200 200 Covariance between surface soil moisture and volumetric soil water layer 3 [m**3 m**-3 m**3 m**-3]
+201 201 Covariance between 2-metre temperature and soil temperature layer 1 [K K]
+202 202 Covariance between 2-metre relative humidity and soil temperature layer 1 [% K]
+203 203 Covariance between 2-metre temperature and soil temperature layer 2 [K K]
+204 204 Covariance between 2-metre relative humidity and soil temperature layer 2 [% K]
+205 205 Covariance between 2-metre temperature and soil temperature layer 3 [K K]
+206 206 Covariance between 2-metre relative humidity and soil temperature layer 3 [% K]
+207 207 Covariance between 2-metre temperature and temperature of snow layer 1 [K K]
+208 208 Covariance between 2-metre relative humidity and temperature of snow layer 1 [% K]
+209 209 Covariance between 2-metre temperature and temperature of snow layer 2 [K K]
+210 210 Covariance between 2-metre relative humidity and temperature of snow layer 2 [% K]
+211 211 Covariance between 2-metre temperature and temperature of snow layer 3 [K K]
+212 212 Covariance between 2-metre relative humidity and temperature of snow layer 3 [% K]
diff --git a/definitions/grib2/tables/local/ecmf/1/4.5.table b/definitions/grib2/tables/local/ecmf/1/4.5.table
index d479c0944..573e9d12f 100644
--- a/definitions/grib2/tables/local/ecmf/1/4.5.table
+++ b/definitions/grib2/tables/local/ecmf/1/4.5.table
@@ -1 +1,2 @@
173 173 Top surface of snow, over ice, on sea, lake or river
+254 254 Abstract level with no vertical localization or meaning
diff --git a/definitions/grib2/tables/local/ecmf/obstat.5.0.table b/definitions/grib2/tables/local/ecmf/obstat.5.0.table
index 71a9a0e8c..ef4ea724d 100644
--- a/definitions/grib2/tables/local/ecmf/obstat.5.0.table
+++ b/definitions/grib2/tables/local/ecmf/obstat.5.0.table
@@ -1,13 +1,13 @@
#Code Table obstat.5.0: List of satellite instruments
-0 HIRS HIRS
+0 HIRS HIRS
1 MSU MSU
2 SSU SSU
3 AMSUA AMSUA
4 AMSUB AMSUB
6 SSM/I SSM/I
9 TMI TMI
-10 SSMI/S SSMI/S
-11 AIRS AIRS
+10 SSMI/S SSMI/S
+11 AIRS AIRS
15 MHS MHS
16 IASI IASI
17 AMSRE AMSR-E
@@ -33,20 +33,20 @@
516 TANSO TANSO
624 SBUV-2 SBUV-2
2000 AMV_WV_CLOUDY AMV WV cloudy
-2001 AMV_IR AMV IR
+2001 AMV_IR AMV IR
2002 AMV_VIS AMV VIS
2003 AMV_WVMIX AMV WVMIX
2005 AMV_WV_Clear AMV Water Vapor clear
2100 AMV_WV_6.2_cloudy AMV WV 6.2 cloudy
-2101 AMV_IR_ch1 AMV IR ch1
+2101 AMV_IR_ch1 AMV IR ch1
2102 AMV_VIS_ch1 AMV VIS ch1
-2105 AMV_WV_6.2_clear AMV WV_6.2 clear
+2105 AMV_WV_6.2_clear AMV WV_6.2 clear
2200 AMV_WV_7.3_cloudy AMV WV 7.3 cloudy
2201 AMV_IR_ch2 AMV IR ch2
2202 AMV_VIS-2 AMV VIS-2
2205 AMV_WV_7.3_clear AMV WV 7.3 clear
2300 AMV_WV_cloudy_ch3 AMV WV cloudy ch 3
-2301 AMV_IR-10 AMV IR-10
+2301 AMV_IR-10 AMV IR-10
2305 AMV_WV_clear_Ch3 AMV WV clear Ch3
2350 QUIKSCAT QUIKSCAT
2150 SCAT SCAT
diff --git a/definitions/grib2/tables/local/ecmf/obstat.7.0.table b/definitions/grib2/tables/local/ecmf/obstat.7.0.table
index fcd1c2e02..688485882 100644
--- a/definitions/grib2/tables/local/ecmf/obstat.7.0.table
+++ b/definitions/grib2/tables/local/ecmf/obstat.7.0.table
@@ -1,5 +1,5 @@
#Code Table obstat.7.0: Vertical coordinate types
-1 1 Channel
+1 1 Channel
2 2 Pressure level
3 3 Pressure layer
4 4 Surface
diff --git a/definitions/grib2/tables/local/ecmf/obstat.8.0.table b/definitions/grib2/tables/local/ecmf/obstat.8.0.table
index 382402473..0e167b7dd 100644
--- a/definitions/grib2/tables/local/ecmf/obstat.8.0.table
+++ b/definitions/grib2/tables/local/ecmf/obstat.8.0.table
@@ -2,5 +2,5 @@
1 Land Land
2 Sea Sea
3 Sea-ice Sea-ice
-4 All_surfaces All surface types combined
+4 All_surfaces All surface types combined
#5-255 Reserved
diff --git a/definitions/grib2/tables/local/ecmf/obstat.9.0.table b/definitions/grib2/tables/local/ecmf/obstat.9.0.table
index 8520066bd..38be1bfe3 100644
--- a/definitions/grib2/tables/local/ecmf/obstat.9.0.table
+++ b/definitions/grib2/tables/local/ecmf/obstat.9.0.table
@@ -1,14 +1,14 @@
-#Code Table obstat.9.0: Observation diagnostics
-1 count data count
+# Code Table obstat.9.0: Observation diagnostics
+1 count data count
2 obs Average of observed values
-3 obs_stdv Standard deviation of observed values
-4 fgdep Average of first guess departure
+3 obs_stdv Standard deviation of observed values
+4 fgdep Average of first guess departure
5 fgdep_stdv Standard deviation of first guess departure
6 andep Average of analysis departure
7 andep_stdv Standard deviation of analysis departure
8 obs_error Average of observation standard error
9 obs_error_stdv Standard deviation of observation standard error
-10 bkg_error Average of background standard error
+10 bkg_error Average of background standard error
11 bkg_error_stdv Standard deviation of background standard error
12 lr_andep1 Average of low resolution analysis departure update 1
13 lr_andep1_stdv Standard deviation of low resolution analysis departure update 1
@@ -19,7 +19,7 @@
18 bcor Average of Bias correction
19 bcor_stdv Standard deviation of bias correction
20 vbcor average of Variational bias correction
-21 vbcor_stdv Standard deviation of variational bias correction
+21 vbcor_stdv Standard deviation of variational bias correction
22 fgdep_nbcor Average of background departure without bias correction
23 fgdep_nbcor_stdv Standard deviation of background departure without bias correction
24 windspeed Average of wind speed
@@ -45,8 +45,7 @@
60 far_rate False alarm rate
62 miss_rate Miss rate
64 hit_rate hit rate
-66 corr_nul correct nuls
+66 corr_nul correct nuls
68 est_fg_err Estimated variance of the first guess error
70 edafgspr EDA first guess variance
72 edaanspr EDA Analysis variance
-#36-255 Reserved
diff --git a/definitions/grib2/tables/local/era6/1.1.table b/definitions/grib2/tables/local/era6/1.1.table
new file mode 100644
index 000000000..a0c8af15c
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1.1.table
@@ -0,0 +1,6 @@
+# Code Table 1.1 GRIB Local Tables Version Number
+0 0 Local tables not used
+# Only table entries and templates from the current Master table are valid.
+# 1-254 Number of local tables version used
+1 1 ERA6 local tables version 1
+255 255 Missing
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.1.table b/definitions/grib2/tables/local/era6/1/4.2.0.1.table
new file mode 100644
index 000000000..3dc343d26
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.1.table
@@ -0,0 +1,13 @@
+# Code table 4.2 - discipline=0 category=1 for ERA6
+192 192 Snow evaporation rate (kg m-2 s-1)
+193 193 Total precipitation rate (m s-1)
+194 194 Accumulated freezing rain (m)
+195 195 Convective precipitation rate (m s-1)
+196 196 Large-scale precipitation rate (m s-1)
+197 197 Snow evaporation rate (m of water equivalent s-1)
+198 198 Snowfall rate (m of water equivalent s-1)
+199 199 Evaporation rate (m of water equivalent s-1)
+200 200 Potential evaporation rate (m s-1)
+201 201 Convective snowfall rate (m of water equivalent s-1)
+202 202 Large-scale snowfall rate (m of water equivalent s-1)
+254 254 Snow depth (m of water equivalent)
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.14.table b/definitions/grib2/tables/local/era6/1/4.2.0.14.table
new file mode 100644
index 000000000..4269f21e4
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.14.table
@@ -0,0 +1,2 @@
+# Code table 4.2 - discipline=0 category=14 for ERA6
+192 192 Total column ozone
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.19.table b/definitions/grib2/tables/local/era6/1/4.2.0.19.table
new file mode 100644
index 000000000..43085d667
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.19.table
@@ -0,0 +1,3 @@
+# Code table 4.2 - discipline=0 category=19 for ERA6
+192 192 Snow albedo (0-1)
+193 193 Forecast albedo (0-1)
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.4.table b/definitions/grib2/tables/local/era6/1/4.2.0.4.table
new file mode 100644
index 000000000..0aacbad26
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.4.table
@@ -0,0 +1,6 @@
+# Code table 4.2 - discipline=0 category=4 for ERA6
+192 192 UV visible albedo for diffuse radiation (0-1)
+193 193 UV visible albedo for direct radiation (0-1)
+194 194 UV visible albedo for direct radiation, geometric component (0-1)
+195 195 UV visible albedo for direct radiation, isotropic component (0-1)
+196 196 UV visible albedo for direct radiation, volumetric component (0-1)
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.5.table b/definitions/grib2/tables/local/era6/1/4.2.0.5.table
new file mode 100644
index 000000000..fcff92005
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.5.table
@@ -0,0 +1,6 @@
+# Code table 4.2 - discipline=0 category=5 for ERA6
+192 192 Near IR albedo for diffuse radiation (0-1)
+193 193 Near IR albedo for direct radiation (0-1)
+194 194 Near IR albedo for direct radiation, volumetric component (0-1)
+195 195 Near IR albedo for direct radiation, isotropic component (0-1)
+196 196 Near IR albedo for direct radiation, volumetric component (0-1)
diff --git a/definitions/grib2/tables/local/era6/1/4.2.0.6.table b/definitions/grib2/tables/local/era6/1/4.2.0.6.table
new file mode 100644
index 000000000..2ba5a541c
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.0.6.table
@@ -0,0 +1,5 @@
+# Code table 4.2 - discipline=0 category=6 for ERA6
+192 192 Total cloud cover (0-1)
+193 193 Low cloud cover (0-1)
+194 194 Medium cloud cover (0-1)
+195 195 High cloud cover (0-1)
diff --git a/definitions/grib2/tables/local/era6/1/4.2.2.0.table b/definitions/grib2/tables/local/era6/1/4.2.2.0.table
new file mode 100644
index 000000000..9350f0560
--- /dev/null
+++ b/definitions/grib2/tables/local/era6/1/4.2.2.0.table
@@ -0,0 +1,6 @@
+# Code table 4.2 - discipline=2 category=0 for ERA6
+201 201 Water runoff and drainage rate (m s-1)
+202 202 Surface runoff rate (m s-1)
+203 203 Snow melt rate (m of water equivalent s-1)
+204 204 Sub-surface runoff rate (m s-1)
+205 205 Skin reservoir content (m of water equivalent)
diff --git a/definitions/grib2/tables/local/kwbc/1/4.5.table b/definitions/grib2/tables/local/kwbc/1/4.5.table
index f1cfbfbe6..f89c21674 100644
--- a/definitions/grib2/tables/local/kwbc/1/4.5.table
+++ b/definitions/grib2/tables/local/kwbc/1/4.5.table
@@ -1,5 +1,5 @@
# Code table 4.5 - Fixed surface types and units
-0 0 Reserved
+0 0 Reserved
1 sfc Ground or water surface (-)
2 2 Cloud base level (-)
3 3 Level of cloud tops (-)
@@ -16,15 +16,15 @@
14 14 Level of free convection (LFC)
15 15 Convective condensation level (CCL)
16 16 Level of neutral buoyancy or equilibrium level (LNB)
-# 17-19 Reserved
+# 17-19 Reserved
20 20 Isothermal level (K)
21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3)
22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3)
23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3)
24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3)
-# 25-99 Reserved
+# 25-99 Reserved
100 pl Isobaric surface (Pa)
-101 sfc Mean sea level
+101 sfc Mean sea level
102 102 Specific altitude above mean sea level (m)
103 sfc Specified height level above ground (m)
104 104 Sigma level (sigma value)
@@ -33,20 +33,20 @@
107 pt Isentropic (theta) level (K)
108 108 Level at specified pressure difference from ground to level (Pa)
109 pv Potential vorticity surface (K m2 kg-1 s-1)
-110 110 Reserved
+110 110 Reserved
111 111 Eta level (-)
-112 112 Reserved
-113 113 Logarithmic hybrid level
+112 112 Reserved
+113 113 Logarithmic hybrid level
114 114 Snow level (Numeric)
115 115 Sigma height level
# 116 Reserved
117 117 Mixed layer depth (m)
118 hhl Hybrid height level (-)
119 hpl Hybrid pressure level (-)
-# 120-149 Reserved
-150 150 Generalized vertical height coordinate
+# 120-149 Reserved
+150 150 Generalized vertical height coordinate
151 sol Soil level (Numeric)
-# 152-159 Reserved
+# 152-159 Reserved
160 160 Depth below sea level (m)
161 161 Depth below water surface (m)
162 162 Lake or river bottom (-)
@@ -55,7 +55,7 @@
165 165 Bottom of sediment layer penetrated by thermal wave (-)
166 166 Mixing layer (-)
167 167 Bottom of root zone (-)
-# 168-173 Reserved
+# 168-173 Reserved
174 174 Top surface of ice on sea, lake or river
175 175 Top surface of ice, under snow cover, on sea, lake or river
176 176 Bottom surface (underside) ice on sea, lake or river
diff --git a/definitions/grib2/template.1.0.def b/definitions/grib2/template.1.0.def
index 0f8f32271..9c73ed2cc 100644
--- a/definitions/grib2/template.1.0.def
+++ b/definitions/grib2/template.1.0.def
@@ -2,4 +2,4 @@
# TEMPLATE 1.0, Calendar Definition
-include "grib2/template.1.calendar.def";
+include "grib2/template.1.calendar.def"
diff --git a/definitions/grib2/template.1.1.def b/definitions/grib2/template.1.1.def
index 7fcf51f53..6d559c4d7 100644
--- a/definitions/grib2/template.1.1.def
+++ b/definitions/grib2/template.1.1.def
@@ -2,4 +2,4 @@
# TEMPLATE 1.1, Paleontological Offset
-include "grib2/template.1.offset.def";
+include "grib2/template.1.offset.def"
diff --git a/definitions/grib2/template.1.2.def b/definitions/grib2/template.1.2.def
index 3d5c0e3ba..3544cd8ef 100644
--- a/definitions/grib2/template.1.2.def
+++ b/definitions/grib2/template.1.2.def
@@ -2,5 +2,5 @@
# TEMPLATE 1.2, Calendar Definition and Paleontological Offset
-include "grib2/template.1.calendar.def";
-include "grib2/template.1.offset.def";
+include "grib2/template.1.calendar.def"
+include "grib2/template.1.offset.def"
diff --git a/definitions/grib2/template.3.0.def b/definitions/grib2/template.3.0.def
index 11b5f0b0c..309391679 100644
--- a/definitions/grib2/template.3.0.def
+++ b/definitions/grib2/template.3.0.def
@@ -2,5 +2,5 @@
# TEMPLATE 3.0, Latitude/longitude (or equidistant cylindrical, or Plate Carree)
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon.def"
diff --git a/definitions/grib2/template.3.1.def b/definitions/grib2/template.3.1.def
index 1cfca8e5d..45cd7200f 100644
--- a/definitions/grib2/template.3.1.def
+++ b/definitions/grib2/template.3.1.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.1, Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon.def";
-include "grib2/template.3.rotation.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon.def"
+include "grib2/template.3.rotation.def"
diff --git a/definitions/grib2/template.3.10.def b/definitions/grib2/template.3.10.def
index fefc41ba4..6fb8f1a46 100644
--- a/definitions/grib2/template.3.10.def
+++ b/definitions/grib2/template.3.10.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.10, Mercator
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel = Ni;
@@ -27,7 +27,7 @@ signed[4] longitudeOfFirstGridPoint : edition_specific,no_copy;
alias Lo1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
-include "grib2/template.3.resolution_flags.def";
+include "grib2/template.3.resolution_flags.def"
# LaD - Latitude(s) at which the Mercator projection intersects the Earth
# (Latitude(s) where Di and Dj are specified)
@@ -44,7 +44,7 @@ signed[4] longitudeOfLastGridPoint: edition_specific,no_copy ;
alias Lo2 = longitudeOfLastGridPoint;
meta geography.longitudeOfLastGridPointInDegrees scale(longitudeOfLastGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Orientation of the grid, angle between i direction on the map and the equator
# NOTE 1: Limited to the range of 0 to 90 degrees; if the angle of orientation of the grid is neither 0 nor 90 degrees,
diff --git a/definitions/grib2/template.3.100.def b/definitions/grib2/template.3.100.def
index 8b1fe16a3..8f44d4d42 100644
--- a/definitions/grib2/template.3.100.def
+++ b/definitions/grib2/template.3.100.def
@@ -1,18 +1,18 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.)
-constant isGridded = one;
+constant isGridded = true;
-# n2 - exponent of 2 for the number of intervals on main triangle sides
+# Exponent of 2 for the number of intervals on main triangle sides
unsigned[1] n2 : dump ;
-# n3 - exponent of 3 for the number of intervals on main triangle sides
+# Exponent of 3 for the number of intervals on main triangle sides
unsigned[1] n3 : dump ;
-# Ni - number of intervals on main triangle sides of the icosahedron
+# Number of intervals on main triangle sides of the icosahedron
unsigned[2] Ni : dump ;
-# nd - Number of diamonds
+# Number of diamonds
unsigned[1] nd : dump ;
alias numberOfDiamonds=nd;
@@ -28,17 +28,12 @@ meta geography.longitudeOfThePolePointInDegrees g2lon(longitudeOfThePolePoint);
unsigned[4] longitudeOfFirstDiamondCentreLine : dump ;
meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine);
-# Grid point position
codetable[1] gridPointPosition ('3.8.table',masterDir,localDir);
-# Numbering order of diamonds
flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table';
-# Scanning mode for one diamond
flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table';
-# nt - total number of grid points
-unsigned[4] totalNumberOfGridPoints : dump ;
-
-alias nt = totalNumberOfGridPoints;
+unsigned[4] totalNumberOfGridPoints : dump ;
+alias nt = totalNumberOfGridPoints;
diff --git a/definitions/grib2/template.3.1000.def b/definitions/grib2/template.3.1000.def
index 407fc16e7..8f825f393 100644
--- a/definitions/grib2/template.3.1000.def
+++ b/definitions/grib2/template.3.1000.def
@@ -1,9 +1,14 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal
-include "grib2/template.3.shape_of_the_earth.def";
-constant isGridded = one;
+# This template is simply experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden ;
+
+include "grib2/template.3.shape_of_the_earth.def"
+
+constant isGridded = true;
# Number of horizontal points
unsigned[4] numberOfHorizontalPoints : dump ;
@@ -12,27 +17,26 @@ unsigned[4] numberOfHorizontalPoints : dump ;
unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
# Subdivisions of basic angle used to define extreme longitudes and latitudes
-unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;;
+unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;
-# La1 - latitude of first grid point
+# Latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
-
alias La1 = latitudeOfFirstGridPoint;
-# Lo1 - longitude of first grid point
-unsigned[4] longitudeOfFirstGridPoint : edition_specific;
+# Longitude of first grid point
+unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1 = longitudeOfFirstGridPoint;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
-# La2 - latitude of last grid point
+# Latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific;
-
alias La2 = latitudeOfLastGridPoint;
-# Lo2 - longitude of last grid point
-unsigned[4] longitudeOfLastGridPoint: edition_specific ;
+# Longitude of last grid point
+unsigned[4] longitudeOfLastGridPoint: edition_specific ;
alias Lo2 = longitudeOfLastGridPoint;
+
# Type of horizontal line
codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ;
@@ -45,10 +49,8 @@ codetable[1] meaningOfVerticalCoordinate ('3.15.table',masterDir,localDir) : dum
# Vertical dimension coordinate values definition
codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ;
-# NC - Number of coefficients or values used to specify vertical coordinates
+# Number of coefficients or values used to specify vertical coordinates
unsigned[2] NC : dump ;
-# Octets 67-(66+NC*4) : Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
+# Octets 67-(66+NC*4): Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
# (IEEE 32-bit floating-point values)
-# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values
-
diff --git a/definitions/grib2/template.3.101.def b/definitions/grib2/template.3.101.def
index 65d27a22f..fb8cb71f1 100644
--- a/definitions/grib2/template.3.101.def
+++ b/definitions/grib2/template.3.101.def
@@ -2,7 +2,7 @@
# TEMPLATE 3.101, General Unstructured Grid
-constant isGridded = one;
+constant isGridded = true;
codetable[1] shapeOfTheEarth ('3.2.table',masterDir,localDir) : dump;
diff --git a/definitions/grib2/template.3.110.def b/definitions/grib2/template.3.110.def
index dae4a9263..fae3e5420 100644
--- a/definitions/grib2/template.3.110.def
+++ b/definitions/grib2/template.3.110.def
@@ -1,41 +1,40 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.110, Equatorial azimuthal equidistant projection
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
-# Nx - number of points along X-axis
+# Number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump;
alias Nx = numberOfPointsAlongXAxis;
alias numberOfPointsAlongAParallel = Nx;
alias Ni = Nx;
-# Ny - number of points along Y-axis
+# Number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump;
alias Ny = numberOfPointsAlongYAxis;
alias numberOfPointsAlongAMeridian = Ny;
alias Nj = Ny;
-# La1 - latitude of tangency point (centre of grid)
+# Latitude of tangency point (centre of grid)
signed[4] latitudeOfTangencyPoint : dump;
-
alias La1 = latitudeOfTangencyPoint;
-# Lo1 - longitude of tangency point
-unsigned[4] longitudeOfTangencyPoint : dump;
+# Longitude of tangency point
+unsigned[4] longitudeOfTangencyPoint : dump;
alias Lo1 = longitudeOfTangencyPoint;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
-# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis
+# X-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dx : dump;
-# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis
+# Y-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dy : dump;
# Projection centre flag
unsigned[1] projectionCentreFlag : dump;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
diff --git a/definitions/grib2/template.3.1100.def b/definitions/grib2/template.3.1100.def
index f9bdbef8b..de65bca94 100644
--- a/definitions/grib2/template.3.1100.def
+++ b/definitions/grib2/template.3.1100.def
@@ -1,9 +1,14 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal
-include "grib2/template.3.shape_of_the_earth.def";
-constant isGridded = one;
+# This template is simply experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
+
+include "grib2/template.3.shape_of_the_earth.def"
+
+constant isGridded = true;
# Number of horizontal points
unsigned[5] numberOfHorizontalPoints : dump ;
@@ -23,7 +28,7 @@ unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 =longitudeOfFirstGridPoint;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# La2 - latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific,dump;
diff --git a/definitions/grib2/template.3.12.def b/definitions/grib2/template.3.12.def
index d317d6ca8..fa3b2a8a0 100644
--- a/definitions/grib2/template.3.12.def
+++ b/definitions/grib2/template.3.12.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.12, Transverse Mercator
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel = Ni;
@@ -27,7 +27,7 @@ signed[4] longitudeOfReferencePoint : edition_specific,no_copy;
alias LoR = longitudeOfReferencePoint;
meta geography.longitudeOfReferencePointInDegrees scale(longitudeOfReferencePoint,oneConstant,grib2divider,truncateDegrees) : dump;
-include "grib2/template.3.resolution_flags.def";
+include "grib2/template.3.resolution_flags.def"
# m - scale factor at reference point ratio of distance on map to distance on spheroid
# (IEEE 32-bit floating-point values)
@@ -45,7 +45,7 @@ signed[4] YR : edition_specific,no_copy ;
alias falseNorthing = YR;
meta geography.YRInMetres scale(YR,one,hundred) : dump;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Di - i-direction increment length in units of 10-2 m
unsigned[4] Di : edition_specific,no_copy;
diff --git a/definitions/grib2/template.3.120.def b/definitions/grib2/template.3.120.def
index 19edb2c6b..e208cab7c 100644
--- a/definitions/grib2/template.3.120.def
+++ b/definitions/grib2/template.3.120.def
@@ -2,7 +2,7 @@
# TEMPLATE 3.120, Azimuth-range projection
-constant isGridded = one;
+constant isGridded = true;
# Nb - number of data bins along radials (A data bin is a data point representing the volume centred on it)
unsigned[4] numberOfDataBinsAlongRadials;
@@ -34,7 +34,7 @@ alias Dx = spacingOfBinsAlongRadials;
unsigned[4] offsetFromOriginToInnerBound;
alias Dstart = offsetFromOriginToInnerBound;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Octets 40-(39+4Nr) : For each of Nr radials:
radials list(numberOfRadials){
diff --git a/definitions/grib2/template.3.1200.def b/definitions/grib2/template.3.1200.def
index 93ebe91fb..06bb38c96 100644
--- a/definitions/grib2/template.3.1200.def
+++ b/definitions/grib2/template.3.1200.def
@@ -1,7 +1,11 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1200, Time section grid
-constant isGridded = one;
+# This template is simply experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
+
+constant isGridded = true;
# NT - Number of time steps
unsigned[4] numberOfTimeSteps : dump;
diff --git a/definitions/grib2/template.3.130.def b/definitions/grib2/template.3.130.def
index 168080b47..eec6dbc5b 100644
--- a/definitions/grib2/template.3.130.def
+++ b/definitions/grib2/template.3.130.def
@@ -2,11 +2,11 @@
# TEMPLATE 3.130, Irregular Latitude/longitude grid
-constant isGridded = one;
+constant isGridded = true;
# Note: This template is deprecated.
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
points list(numberOfDataPoints) {
signed[4] latitude;
diff --git a/definitions/grib2/template.3.140.def b/definitions/grib2/template.3.140.def
index 83ece859c..d5c7b4666 100644
--- a/definitions/grib2/template.3.140.def
+++ b/definitions/grib2/template.3.140.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.140, Lambert azimuthal equal area projection
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
# Nx - number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump;
@@ -19,16 +19,15 @@ alias Nj = Ny;
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific;
alias La1 = latitudeOfFirstGridPoint;
-meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,
- one,grib2divider,truncateDegrees) : dump;
+meta geography.latitudeOfFirstGridPointInDegrees scale(
+ latitudeOfFirstGridPoint, one,grib2divider,truncateDegrees) : dump;
#meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor): no_copy;
# Lo1 - longitude of first grid point
signed[4] longitudeOfFirstGridPoint: edition_specific ;
alias La1 = longitudeOfFirstGridPoint;
-meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,
- one,grib2divider,truncateDegrees) : dump;
-#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy;
+meta geography.longitudeOfFirstGridPointInDegrees scale(
+ longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
signed[4] standardParallelInMicrodegrees : dump;
alias standardParallel=standardParallelInMicrodegrees;
@@ -53,15 +52,16 @@ alias Dy = yDirectionGridLengthInMillimetres ;
meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump;
alias DyInMetres = yDirectionGridLengthInMetres;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
-iterator lambert_azimuthal_equal_area(numberOfPoints,missingValue,values,
- radius,Nx,Ny,
- latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
- standardParallelInDegrees,centralLongitudeInDegrees,
- Dx,Dy,
- iScansNegatively, jScansPositively,
- jPointsAreConsecutive, alternativeRowScanning);
+iterator lambert_azimuthal_equal_area(
+ numberOfPoints,missingValue,values,
+ radius,Nx,Ny,
+ latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
+ standardParallelInDegrees,centralLongitudeInDegrees,
+ Dx,Dy,
+ iScansNegatively, jScansPositively,
+ jPointsAreConsecutive, alternativeRowScanning);
nearest lambert_azimuthal_equal_area(values,radius,Nx,Ny);
diff --git a/definitions/grib2/template.3.150.def b/definitions/grib2/template.3.150.def
index ea9f76811..360e4d579 100644
--- a/definitions/grib2/template.3.150.def
+++ b/definitions/grib2/template.3.150.def
@@ -1,7 +1,7 @@
# TEMPLATE 3.150 - The HEALPix grid
# See https://healpix.jpl.nasa.gov/pdf/intro.pdf
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.resolution_flags.def";
-include "grib2/template.3.healpix.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.resolution_flags.def"
+include "grib2/template.3.healpix.def"
diff --git a/definitions/grib2/template.3.2.def b/definitions/grib2/template.3.2.def
index f587f9886..cc422db4d 100644
--- a/definitions/grib2/template.3.2.def
+++ b/definitions/grib2/template.3.2.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.2, Stretched Latitude/longitude (or equidistant cylindrical, or Plate Carree)
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.20.def b/definitions/grib2/template.3.20.def
index fd1e33b7a..80b1dce80 100644
--- a/definitions/grib2/template.3.20.def
+++ b/definitions/grib2/template.3.20.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.20, Polar stereographic projection
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
# Nx - number of points along X-axis
unsigned[4] Nx : dump;
@@ -63,7 +63,7 @@ flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# If bit 1 is 1, then the South Pole is on the projection plane
flagbit southPoleOnProjectionPlane(projectionCentreFlag,7) : dump; # WMO bit 1
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
iterator polar_stereographic(numberOfPoints,missingValue,values,
radius,Nx,Ny,
diff --git a/definitions/grib2/template.3.3.def b/definitions/grib2/template.3.3.def
index 908695d1e..264a09c7a 100644
--- a/definitions/grib2/template.3.3.def
+++ b/definitions/grib2/template.3.3.def
@@ -2,8 +2,8 @@
# TEMPLATE 3.3, Stretched and Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon.def";
-include "grib2/template.3.rotation.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon.def"
+include "grib2/template.3.rotation.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.30.def b/definitions/grib2/template.3.30.def
index 6e9466426..7bd63fc00 100644
--- a/definitions/grib2/template.3.30.def
+++ b/definitions/grib2/template.3.30.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.30, Lambert conformal
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
unsigned[4] Nx : dump;
alias Ni = Nx;
@@ -32,7 +32,7 @@ meta geography.longitudeOfFirstGridPointInDegrees
alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,oneConstant) : no_copy;
-include "grib2/template.3.resolution_flags.def";
+include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific;
@@ -58,16 +58,16 @@ meta geography.DyInMetres scale(Dy,one,thousand) : dump;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 : edition_specific;
-alias FirstLatitude=Latin1;
+alias firstLatitude=Latin1;
meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin2 : dump;
-alias SecondLatitude=Latin2;
+alias secondLatitude=Latin2;
meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;
# Latitude of the southern pole of projection
diff --git a/definitions/grib2/template.3.31.def b/definitions/grib2/template.3.31.def
index 0db29f7a4..d6e85c6c3 100644
--- a/definitions/grib2/template.3.31.def
+++ b/definitions/grib2/template.3.31.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.31, Albers equal area
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
# Nx - number of points along the X-axis
unsigned[4] Nx : dump;
@@ -23,7 +23,7 @@ alias La1 = latitudeOfFirstGridPoint;
unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 = longitudeOfFirstGridPoint;
-include "grib2/template.3.resolution_flags.def";
+include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : dump;
@@ -42,7 +42,7 @@ alias Dy = yDirectionGridLength;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 :edition_specific;
diff --git a/definitions/grib2/template.3.4.def b/definitions/grib2/template.3.4.def
index 4e533b4b2..224d12e7b 100644
--- a/definitions/grib2/template.3.4.def
+++ b/definitions/grib2/template.3.4.def
@@ -1,5 +1,5 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.4, Variable resolution latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon_vares.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon_vares.def"
diff --git a/definitions/grib2/template.3.40.def b/definitions/grib2/template.3.40.def
index 4cc651ed1..2f1c86a27 100644
--- a/definitions/grib2/template.3.40.def
+++ b/definitions/grib2/template.3.40.def
@@ -2,5 +2,5 @@
# TEMPLATE 3.40, Gaussian latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.gaussian.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.gaussian.def"
diff --git a/definitions/grib2/template.3.41.def b/definitions/grib2/template.3.41.def
index e3443dd34..7c72c31e3 100644
--- a/definitions/grib2/template.3.41.def
+++ b/definitions/grib2/template.3.41.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.41, Rotated Gaussian latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.gaussian.def";
-include "grib2/template.3.rotation.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.gaussian.def"
+include "grib2/template.3.rotation.def"
diff --git a/definitions/grib2/template.3.42.def b/definitions/grib2/template.3.42.def
index 192fd676d..8ec6895eb 100644
--- a/definitions/grib2/template.3.42.def
+++ b/definitions/grib2/template.3.42.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.42, Stretched Gaussian latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.gaussian.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.gaussian.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.43.def b/definitions/grib2/template.3.43.def
index b1301137e..7e35de9d8 100644
--- a/definitions/grib2/template.3.43.def
+++ b/definitions/grib2/template.3.43.def
@@ -2,7 +2,7 @@
# TEMPLATE 3.43, Stretched and rotated Gaussian latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.gaussian.def";
-include "grib2/template.3.rotation.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.gaussian.def"
+include "grib2/template.3.rotation.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.5.def b/definitions/grib2/template.3.5.def
index ecfb3e07c..b80f9264e 100644
--- a/definitions/grib2/template.3.5.def
+++ b/definitions/grib2/template.3.5.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.5, Variable resolution rotated latitude/longitude
-include "grib2/template.3.shape_of_the_earth.def";
-include "grib2/template.3.latlon_vares.def";
-include "grib2/template.3.rotation.def";
+include "grib2/template.3.shape_of_the_earth.def"
+include "grib2/template.3.latlon_vares.def"
+include "grib2/template.3.rotation.def"
diff --git a/definitions/grib2/template.3.50.def b/definitions/grib2/template.3.50.def
index 6d869799c..3db24135a 100644
--- a/definitions/grib2/template.3.50.def
+++ b/definitions/grib2/template.3.50.def
@@ -2,4 +2,4 @@
# TEMPLATE 3.50, Spherical harmonic coefficients
-include "grib2/template.3.spherical_harmonics.def";
+include "grib2/template.3.spherical_harmonics.def"
diff --git a/definitions/grib2/template.3.51.def b/definitions/grib2/template.3.51.def
index cd385a04c..633355082 100644
--- a/definitions/grib2/template.3.51.def
+++ b/definitions/grib2/template.3.51.def
@@ -2,5 +2,5 @@
# TEMPLATE 3.51, Rotated spherical harmonic coefficients
-include "grib2/template.3.spherical_harmonics.def";
-include "grib2/template.3.rotation.def";
+include "grib2/template.3.spherical_harmonics.def"
+include "grib2/template.3.rotation.def"
diff --git a/definitions/grib2/template.3.52.def b/definitions/grib2/template.3.52.def
index 5b471bd0e..3d6975591 100644
--- a/definitions/grib2/template.3.52.def
+++ b/definitions/grib2/template.3.52.def
@@ -2,5 +2,5 @@
# TEMPLATE 3.52, Stretched spherical harmonic coefficients
-include "grib2/template.3.spherical_harmonics.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.spherical_harmonics.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.53.def b/definitions/grib2/template.3.53.def
index 7ad169452..69a93fca8 100644
--- a/definitions/grib2/template.3.53.def
+++ b/definitions/grib2/template.3.53.def
@@ -2,6 +2,6 @@
# TEMPLATE 3.53, Stretched and rotated spherical harmonic coefficients
-include "grib2/template.3.spherical_harmonics.def";
-include "grib2/template.3.rotation.def";
-include "grib2/template.3.stretching.def";
+include "grib2/template.3.spherical_harmonics.def"
+include "grib2/template.3.rotation.def"
+include "grib2/template.3.stretching.def"
diff --git a/definitions/grib2/template.3.61.def b/definitions/grib2/template.3.61.def
index 0a9044ec6..2da3b7a99 100644
--- a/definitions/grib2/template.3.61.def
+++ b/definitions/grib2/template.3.61.def
@@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific,no_copy ;
diff --git a/definitions/grib2/template.3.62.def b/definitions/grib2/template.3.62.def
index e1d2407ce..03f2808c3 100644
--- a/definitions/grib2/template.3.62.def
+++ b/definitions/grib2/template.3.62.def
@@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
@@ -23,7 +23,7 @@ alias Lo1 = longitudeOfFirstGridPoint;
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# LaD - Latitude where Dx and Dy are specified
-signed[4] LaD : edition_specific;
+signed[4] LaD : edition_specific;
alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,oneConstant,grib2divider,truncateDegrees) : dump;
alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees;
@@ -31,7 +31,7 @@ alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees;
# LoV - orientation of the grid
# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid)
# along which latitude increases as the y-coordinate increases
-signed[4] orientationOfTheGrid : edition_specific;
+signed[4] orientationOfTheGrid : edition_specific;
alias LoV = orientationOfTheGrid ;
meta geography.orientationOfTheGridInDegrees scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump;
diff --git a/definitions/grib2/template.3.63.def b/definitions/grib2/template.3.63.def
index a9c90ce77..71db1eccc 100644
--- a/definitions/grib2/template.3.63.def
+++ b/definitions/grib2/template.3.63.def
@@ -6,7 +6,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific;
@@ -30,20 +30,20 @@ alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,one,grib2divider,truncateDegrees) : dump;
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
-unsigned[4] LoV : edition_specific;
+unsigned[4] LoV : edition_specific;
meta geography.LoVInDegrees scale(LoV,one,grib2divider,truncateDegrees) : dump;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
-signed[4] Latin1 : edition_specific;
-alias FirstLatitude=Latin1;
+signed[4] Latin1 : edition_specific;
+alias firstLatitude=Latin1;
meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
-signed[4] Latin2 : dump;
-alias SecondLatitude=Latin2;
+signed[4] Latin2 : dump;
+alias secondLatitude=Latin2;
meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;
# Latitude of the southern pole of projection
diff --git a/definitions/grib2/template.3.90.def b/definitions/grib2/template.3.90.def
index 00f359383..9f8ef1198 100644
--- a/definitions/grib2/template.3.90.def
+++ b/definitions/grib2/template.3.90.def
@@ -1,9 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.90, Space view perspective or orthographic
-include "grib2/template.3.shape_of_the_earth.def";
+include "grib2/template.3.shape_of_the_earth.def"
-constant isGridded = one;
+constant isGridded = true;
unsigned[4] Nx : dump;
alias Ni = Nx;
@@ -25,7 +25,7 @@ signed[4] longitudeOfSubSatellitePoint;
meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
-include "grib2/template.3.resolution_flags.def";
+include "grib2/template.3.resolution_flags.def"
# dx - apparent diameter of Earth in grid lengths, in X-direction
unsigned[4] dx : dump;
@@ -47,7 +47,7 @@ unsigned[4] Yp : no_copy;
meta geography.YpInGridLengths scale(Yp,one,thousand) : dump;
alias yCoordinateOfSubSatellitePoint=YpInGridLengths;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
# Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian
# of the sub-satellite point in the direction of increasing latitude
diff --git a/definitions/grib2/template.3.bf.def b/definitions/grib2/template.3.bf.def
index 7274dedcd..a70991aa5 100644
--- a/definitions/grib2/template.3.bf.def
+++ b/definitions/grib2/template.3.bf.def
@@ -1,6 +1,6 @@
label "BiFourier coefficients";
constant biFourierCoefficients=1;
-constant isGridded = one;
+constant isGridded = true;
codetable[1] spectralType ('3.6.table',masterDir,localDir) = 2 : no_copy;
alias spectralDataRepresentationType=spectralType;
diff --git a/definitions/grib2/template.3.gaussian.def b/definitions/grib2/template.3.gaussian.def
index 8db26647b..e243b39eb 100644
--- a/definitions/grib2/template.3.gaussian.def
+++ b/definitions/grib2/template.3.gaussian.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-include "grib2/template.3.grid.def";
+include "grib2/template.3.grid.def"
# Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing;
@@ -11,7 +11,7 @@ unsigned[4] N : dump;
alias numberOfParallelsBetweenAPoleAndTheEquator=N ;
alias geography.N=N;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
modify Ni : can_be_missing,dump;
@@ -24,22 +24,24 @@ meta g2grid g2grid(
null,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle
- );
+);
-meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
-meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
-meta geography.latitudeOfLastGridPointInDegrees g2latlon(g2grid,2) : dump;
-meta geography.longitudeOfLastGridPointInDegrees g2latlon(g2grid,3) : dump;
-meta geography.iDirectionIncrementInDegrees g2latlon(g2grid,4,iDirectionIncrementGiven) : can_be_missing,dump;
+meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
+meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
+meta geography.latitudeOfLastGridPointInDegrees g2latlon(g2grid,2) : dump;
+meta geography.longitudeOfLastGridPointInDegrees g2latlon(g2grid,3) : dump;
+meta geography.iDirectionIncrementInDegrees g2latlon(g2grid,4,iDirectionIncrementGiven) : can_be_missing,dump;
-meta global global_gaussian(N,Ni,iDirectionIncrement,
- latitudeOfFirstGridPoint,
- longitudeOfFirstGridPoint,
- latitudeOfLastGridPoint,
- longitudeOfLastGridPoint,
- PLPresent, pl,
- basicAngleOfTheInitialProductionDomain,
- subdivisionsOfBasicAngle) = 0 : dump;
+meta global global_gaussian(
+ N,Ni,iDirectionIncrement,
+ latitudeOfFirstGridPoint,
+ longitudeOfFirstGridPoint,
+ latitudeOfLastGridPoint,
+ longitudeOfLastGridPoint,
+ PLPresent, pl,
+ basicAngleOfTheInitialProductionDomain,
+ subdivisionsOfBasicAngle
+) = 0 : dump;
alias xFirst=longitudeOfFirstGridPointInDegrees;
alias yFirst=latitudeOfFirstGridPointInDegrees;
@@ -52,22 +54,22 @@ alias latitudeLastInDegrees = latitudeOfLastGridPointInDegrees;
alias longitudeLastInDegrees = longitudeOfLastGridPointInDegrees;
alias DiInDegrees = iDirectionIncrementInDegrees;
-if(missing(Ni) && PLPresent == 1){
+if (missing(Ni) && PLPresent == 1) {
iterator gaussian_reduced(numberOfPoints,missingValue,values,
- latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
- latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
- N,pl,Nj);
+ latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
+ latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
+ N,pl,Nj);
nearest reduced(values,radius,Nj,pl);
#meta sumPlArray sum(pl);
#meta dataGlobal evaluate( sumPlArray == (numberOfValues+numberOfMissing) );
} else {
- iterator gaussian(numberOfPoints,missingValue,values,
- longitudeFirstInDegrees,DiInDegrees ,
- Ni,Nj,iScansNegatively,
- latitudeFirstInDegrees, latitudeLastInDegrees,
- N,jScansPositively);
- nearest regular(values,radius,Ni,Nj);
+ iterator gaussian(numberOfPoints,missingValue,values,
+ longitudeFirstInDegrees,DiInDegrees,
+ Ni,Nj,iScansNegatively,
+ latitudeFirstInDegrees, latitudeLastInDegrees,
+ N,jScansPositively);
+ nearest regular(values,radius,Ni,Nj);
}
meta latLonValues latlonvalues(values);
alias latitudeLongitudeValues=latLonValues;
diff --git a/definitions/grib2/template.3.grid.def b/definitions/grib2/template.3.grid.def
index 28070d542..2a317ea82 100644
--- a/definitions/grib2/template.3.grid.def
+++ b/definitions/grib2/template.3.grid.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-constant isGridded = one;
+constant isGridded = true;
unsigned[4] Ni : can_be_missing,dump;
alias numberOfPointsAlongAParallel=Ni;
diff --git a/definitions/grib2/template.3.healpix.def b/definitions/grib2/template.3.healpix.def
index 47e1a63f8..bf0429a5b 100644
--- a/definitions/grib2/template.3.healpix.def
+++ b/definitions/grib2/template.3.healpix.def
@@ -2,7 +2,7 @@
# See https://healpix.jpl.nasa.gov/pdf/intro.pdf
-constant isGridded = one;
+constant isGridded = true;
# Number of grid points along one side of one of the 12 base resolution pixels (>=1)
# The number of data points should be = 12 * Nside * Nside
@@ -27,7 +27,7 @@ concept orderingConvention(unknown) {
"ring" = { ordering = 0; }
"nested" = { ordering = 1; }
} : dump;
-alias geography.pointsOrdering = orderingConvention;
+alias geography.orderingConvention = orderingConvention;
flags[1] scanningMode 'grib2/tables/[tablesVersion]/3.13.table';
flagbit iScansNegatively(scanningMode,7) : dump; # WMO bit 1
diff --git a/definitions/grib2/template.3.latlon.def b/definitions/grib2/template.3.latlon.def
index aa2c945d7..407aa4eca 100644
--- a/definitions/grib2/template.3.latlon.def
+++ b/definitions/grib2/template.3.latlon.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-include "grib2/template.3.grid.def";
+include "grib2/template.3.grid.def"
# Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing,edition_specific;
@@ -12,7 +12,7 @@ unsigned[4] jDirectionIncrement : can_be_missing,edition_specific;
alias Dj = jDirectionIncrement;
alias Dy = jDirectionIncrement;
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
meta g2grid g2grid(
latitudeOfFirstGridPoint,
@@ -23,7 +23,7 @@ meta g2grid g2grid(
jDirectionIncrement,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle
- );
+);
meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
@@ -59,12 +59,12 @@ _if ( missing(Ni) && PLPresent == 1 ) {
} else {
transient iteratorDisableUnrotate = 0 : hidden; # ECC-808
iterator latlon(numberOfPoints,missingValue,values,
- longitudeFirstInDegrees,DiInDegrees ,
- Ni,Nj,iScansNegatively,
- latitudeFirstInDegrees, DjInDegrees,
- jScansPositively, jPointsAreConsecutive,
- isRotatedGrid, angleOfRotation,
- latitudeOfSouthernPoleInDegrees,longitudeOfSouthernPoleInDegrees);
+ longitudeFirstInDegrees,DiInDegrees ,
+ Ni,Nj,iScansNegatively,
+ latitudeFirstInDegrees, DjInDegrees,
+ jScansPositively, jPointsAreConsecutive,
+ isRotatedGrid, angleOfRotation,
+ latitudeOfSouthernPoleInDegrees,longitudeOfSouthernPoleInDegrees);
nearest regular(values,radius,Ni,Nj);
}
meta latLonValues latlonvalues(values);
diff --git a/definitions/grib2/template.3.latlon_vares.def b/definitions/grib2/template.3.latlon_vares.def
index 3c29438ea..764690332 100644
--- a/definitions/grib2/template.3.latlon_vares.def
+++ b/definitions/grib2/template.3.latlon_vares.def
@@ -1,4 +1,5 @@
# (C) Copyright 2005- ECMWF.
+
# Variable resolution latitude/longitude
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel=Ni;
@@ -7,11 +8,10 @@ alias Nx = Ni;
unsigned[4] Nj : dump;
alias numberOfPointsAlongAMeridian=Nj;
alias Ny = Nj;
-
alias geography.Ni=Ni;
alias geography.Nj=Nj;
-# Basic angle of the initial production domain
+# Basic angle of the initial production domain
unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
transient mBasicAngle=basicAngleOfTheInitialProductionDomain*oneMillionConstant;
transient angleMultiplier = 1;
@@ -24,7 +24,7 @@ when (basicAngleOfTheInitialProductionDomain == 0) {
set mAngleMultiplier = mBasicAngle;
}
-# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments
+# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;
transient angleDivisor = 1000000;
@@ -36,12 +36,12 @@ when (missing(subdivisionsOfBasicAngle) || subdivisionsOfBasicAngle == 0) {
include "grib2/template.3.resolution_flags.def"
-include "grib2/template.3.scanning_mode.def";
+include "grib2/template.3.scanning_mode.def"
longitudesList list(Ni) {
- unsigned[4] longitude;
+ unsigned[4] longitude;
}
latitudesList list(Nj) {
- signed[4] latitude;
+ signed[4] latitude;
}
diff --git a/definitions/grib2/template.3.rotation.def b/definitions/grib2/template.3.rotation.def
index 33c319735..5e7b67d4f 100644
--- a/definitions/grib2/template.3.rotation.def
+++ b/definitions/grib2/template.3.rotation.def
@@ -18,4 +18,4 @@ alias geography.angleOfRotationInDegrees=angleOfRotation;
alias angleOfRotationOfProjection=angleOfRotation;
-alias isRotatedGrid=one;
+alias isRotatedGrid = true;
diff --git a/definitions/grib2/template.3.scanning_mode.def b/definitions/grib2/template.3.scanning_mode.def
index 793b8946f..2eb2ca71e 100644
--- a/definitions/grib2/template.3.scanning_mode.def
+++ b/definitions/grib2/template.3.scanning_mode.def
@@ -28,14 +28,16 @@ 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;
+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;
+meta swapScanningY change_scanning_direction(
+ values,Ni,Nj,
+ iScansNegatively,jScansPositively,
+ yFirst,yLast,y) : edition_specific,hidden,no_copy;
alias swapScanningLat = swapScanningY;
meta swapScanningAlternativeRows change_alternative_row_scanning(
diff --git a/definitions/grib2/template.3.shape_of_the_earth.def b/definitions/grib2/template.3.shape_of_the_earth.def
index 6bd4deceb..ae21ef48a 100644
--- a/definitions/grib2/template.3.shape_of_the_earth.def
+++ b/definitions/grib2/template.3.shape_of_the_earth.def
@@ -24,13 +24,13 @@ alias scaleFactorOfMinorAxisOfOblateSpheroidEarth=scaleFactorOfEarthMinorAxis ;
unsigned[4] scaledValueOfEarthMinorAxis = missing(): can_be_missing, edition_specific;
alias scaledValueOfMinorAxisOfOblateSpheroidEarth=scaledValueOfEarthMinorAxis;
-alias earthIsOblate=one;
+alias earthIsOblate = true;
_if (shapeOfTheEarth == 0) {
transient radius=6367470;
alias radiusOfTheEarth=radius;
alias radiusInMetres=radius;
- alias earthIsOblate=zero;
+ alias earthIsOblate=false;
}
_if (shapeOfTheEarth == 1){
meta radius from_scale_factor_scaled_value(
@@ -38,20 +38,20 @@ _if (shapeOfTheEarth == 1){
scaledValueOfRadiusOfSphericalEarth);
alias radiusOfTheEarth=radius;
alias radiusInMetres=radius;
- alias earthIsOblate=zero;
+ alias earthIsOblate=false;
}
_if (shapeOfTheEarth == 6){
transient radius=6371229;
alias radiusOfTheEarth=radius;
alias radiusInMetres=radius;
- alias earthIsOblate=zero;
+ alias earthIsOblate=false;
}
_if (shapeOfTheEarth == 8){
transient radius=6371200;
alias radiusOfTheEarth=radius;
alias radiusInMetres=radius;
- alias earthIsOblate=zero;
+ alias earthIsOblate=false;
}
@@ -73,12 +73,12 @@ _if (shapeOfTheEarth == 3){
# ECC-979
# The 'scale' accessor works with integers so rounds its first argument
# which is not what we want because the inputs are doubles with decimal
- # expansions. So use the trick of dividing by 0.001 to multiply by 1000
+ # expansions.
#
# meta earthMajorAxisInMetres scale(earthMajorAxis, thousand, one, zero);
# meta earthMinorAxisInMetres scale(earthMinorAxis, thousand, one, zero);
- meta earthMajorAxisInMetres divdouble(earthMajorAxis, 0.001);
- meta earthMinorAxisInMetres divdouble(earthMinorAxis, 0.001);
+ meta earthMajorAxisInMetres multdouble(earthMajorAxis, 1000);
+ meta earthMinorAxisInMetres multdouble(earthMinorAxis, 1000);
}
_if (shapeOfTheEarth == 7){
# Major and minor axes specified (in m) by data producer
diff --git a/definitions/grib2/template.3.spherical_harmonics.def b/definitions/grib2/template.3.spherical_harmonics.def
index 2adbe405b..6af68c820 100644
--- a/definitions/grib2/template.3.spherical_harmonics.def
+++ b/definitions/grib2/template.3.spherical_harmonics.def
@@ -3,27 +3,27 @@
constant sphericalHarmonics=1;
# constant dataRepresentationType = 50;
-# J - pentagonal resolution parameter
-unsigned[4] J : dump;
-alias pentagonalResolutionParameterJ=J ;
+# Pentagonal resolution parameter
+unsigned[4] J : dump;
+alias pentagonalResolutionParameterJ=J;
alias geography.J=J;
-# K - pentagonal resolution parameter
-unsigned[4] K : dump;
+# Pentagonal resolution parameter
+unsigned[4] K : dump;
alias pentagonalResolutionParameterK=K;
alias geography.K=K;
-# M - pentagonal resolution parameter
-unsigned[4] M : dump;
-alias pentagonalResolutionParameterM = M ;
+# Pentagonal resolution parameter
+unsigned[4] M : dump;
+alias pentagonalResolutionParameterM = M;
alias geography.M=M;
# Representation type indicating the method used to define the norm
-codetable[1] spectralType ('3.6.table',masterDir,localDir) = 1 : no_copy;
+codetable[1] spectralType ('3.6.table',masterDir,localDir) = 1 : no_copy;
alias spectralDataRepresentationType=spectralType;
# Representation mode indicating the order of the coefficients
codetable[1] spectralMode ('3.7.table',masterDir,localDir) = 1 : no_copy;
alias spectralDataRepresentationMode=spectralMode;
-constant isGridded = zero;
+constant isGridded = false;
diff --git a/definitions/grib2/template.4.10.def b/definitions/grib2/template.4.10.def
index 1bcd610b0..84b437bdc 100644
--- a/definitions/grib2/template.4.10.def
+++ b/definitions/grib2/template.4.10.def
@@ -2,6 +2,9 @@
# TEMPLATE 4.10, Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+# This template was not validated at the time of publication and should be used with caution.
+transient template_is_experimental = 1 : hidden;
+
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
include "grib2/template.4.forecast_time.def"
diff --git a/definitions/grib2/template.4.1000.def b/definitions/grib2/template.4.1000.def
index a31654ff5..f179ae483 100644
--- a/definitions/grib2/template.4.1000.def
+++ b/definitions/grib2/template.4.1000.def
@@ -1,6 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 4.1000, Cross section of analysis and forecast at a point in time
+# This template is experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
diff --git a/definitions/grib2/template.4.1001.def b/definitions/grib2/template.4.1001.def
index b0e1ca17e..5fafe70f3 100644
--- a/definitions/grib2/template.4.1001.def
+++ b/definitions/grib2/template.4.1001.def
@@ -1,6 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 4.1001, Cross section of averaged or otherwise statistically processed analysis or forecast over a range of time
+# This template is experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
diff --git a/definitions/grib2/template.4.1100.def b/definitions/grib2/template.4.1100.def
index 76ebfc467..ac65bc69f 100644
--- a/definitions/grib2/template.4.1100.def
+++ b/definitions/grib2/template.4.1100.def
@@ -1,6 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 4.1100, Hovmoller-type grid with no averaging or other statistical processing
+# This template is experimental, was not validated at the time of publication
+# and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
diff --git a/definitions/grib2/template.4.1101.def b/definitions/grib2/template.4.1101.def
index ef9e951ed..83e46a389 100644
--- a/definitions/grib2/template.4.1101.def
+++ b/definitions/grib2/template.4.1101.def
@@ -2,8 +2,27 @@
# TEMPLATE 4.1101, Hovmoller-type grid with averaging or other statistical processing
+# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests.
+# (Octets 35-50 are very similar to octets 43-58 of product definition template 4.8, but the meaning of some fields differs slightly)
+transient template_is_experimental = 1 : hidden;
+
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
include "grib2/template.4.forecast_time.def"
include "grib2/template.4.horizontal.def"
-include "grib2/template.4.statistical.def"
+
+unsigned[4] numberOfMissingInStatisticalProcess = 0 : edition_specific;
+alias totalNumberOfDataValuesMissingInStatisticalProcess=numberOfMissingInStatisticalProcess;
+
+codetable[1] typeOfStatisticalProcessing ('4.10.table',masterDir,localDir) : edition_specific;
+
+codetable[1] typeOfTimeIncrement ('4.11.table',masterDir,localDir) = 2 : edition_specific;
+alias typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing=typeOfTimeIncrement;
+
+codetable[1] indicatorOfUnitForTimeRange ('4.4.table',masterDir,localDir) =1 ;
+unsigned[4] lengthOfTimeRange=0 ;
+codetable[1] indicatorOfUnitForTimeIncrement ('4.4.table',masterDir,localDir)=255 ;
+unsigned[4] timeIncrement=0 ;
+alias timeIncrementBetweenSuccessiveFields=timeIncrement;
+
+# include "grib2/template.4.statistical.def"
diff --git a/definitions/grib2/template.4.113.def b/definitions/grib2/template.4.113.def
new file mode 100644
index 000000000..52ecb5b61
--- /dev/null
+++ b/definitions/grib2/template.4.113.def
@@ -0,0 +1,10 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.113, Generalised tiles at a horizontal level or horizontal layer at a point in time
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generalised_tile.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.point_in_time.def"
+include "grib2/template.4.horizontal.def"
diff --git a/definitions/grib2/template.4.114.def b/definitions/grib2/template.4.114.def
new file mode 100644
index 000000000..3c342dff1
--- /dev/null
+++ b/definitions/grib2/template.4.114.def
@@ -0,0 +1,10 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.114, Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generalised_tile.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.horizontal.def"
+include "grib2/template.4.statistical.def"
\ No newline at end of file
diff --git a/definitions/grib2/template.4.115.def b/definitions/grib2/template.4.115.def
new file mode 100644
index 000000000..5064401c5
--- /dev/null
+++ b/definitions/grib2/template.4.115.def
@@ -0,0 +1,11 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.115, Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generalised_tile.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.point_in_time.def"
+include "grib2/template.4.horizontal.def"
+include "grib2/template.4.leps.def"
diff --git a/definitions/grib2/template.4.116.def b/definitions/grib2/template.4.116.def
new file mode 100644
index 000000000..e035279ca
--- /dev/null
+++ b/definitions/grib2/template.4.116.def
@@ -0,0 +1,11 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.116, Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generalised_tile.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.horizontal.def"
+include "grib2/template.4.leps.def"
+include "grib2/template.4.statistical.def"
\ No newline at end of file
diff --git a/definitions/grib2/template.4.117.def b/definitions/grib2/template.4.117.def
new file mode 100644
index 000000000..2d35d198f
--- /dev/null
+++ b/definitions/grib2/template.4.117.def
@@ -0,0 +1,10 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.117, Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.point_in_time.def"
+include "grib2/template.4.horizontal.def"
+include "grib2/template.4.leps.def"
diff --git a/definitions/grib2/template.4.118.def b/definitions/grib2/template.4.118.def
new file mode 100644
index 000000000..e4f5979b9
--- /dev/null
+++ b/definitions/grib2/template.4.118.def
@@ -0,0 +1,10 @@
+# (C) Copyright 2005- ECMWF.
+
+# TEMPLATE 4.118, Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
+
+include "grib2/template.4.parameter.def"
+include "grib2/template.4.generating_process.def"
+include "grib2/template.4.forecast_time.def"
+include "grib2/template.4.horizontal.def"
+include "grib2/template.4.leps.def"
+include "grib2/template.4.statistical.def"
diff --git a/definitions/grib2/template.4.20.def b/definitions/grib2/template.4.20.def
index 9ba5668eb..b739bf6bb 100644
--- a/definitions/grib2/template.4.20.def
+++ b/definitions/grib2/template.4.20.def
@@ -1,7 +1,6 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 4.20, Radar product
-# Parameter category
codetable[1] parameterCategory ('4.1.[discipline:l].table',masterDir,localDir) : dump;
# Parameter number
@@ -9,22 +8,19 @@ codetable[1] parameterNumber ('4.2.[discipline:l].[parameterCategory:l].table',m
meta parameterUnits codetable_units(parameterNumber) : dump;
meta parameterName codetable_title(parameterNumber) : dump;
-# Type of generating process
codetable[1] typeOfGeneratingProcess ('4.3.table',masterDir,localDir) : dump;
# Number of radar sites used
unsigned[1] numberOfRadarSitesUsed : dump;
-# Indicator of unit of time range
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
-alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
-template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
-codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
+alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
+include "grib2/stepUnits.def"
-# Site latitude (in 10-6 degree)
+# Site latitude (in microdegrees)
unsigned[4] siteLatitude : dump;
-# Site longitude (in 10-6 degree)
+# Site longitude (in microdegrees)
unsigned[4] siteLongitude : dump;
# Site elevation (meters)
diff --git a/definitions/grib2/template.4.34.def b/definitions/grib2/template.4.34.def
index 308074981..c5856ebb2 100644
--- a/definitions/grib2/template.4.34.def
+++ b/definitions/grib2/template.4.34.def
@@ -5,7 +5,6 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
include "grib2/template.4.forecast_time.def"
-include "grib2/template.4.point_in_time.def"
include "grib2/template.4.satellite.def"
include "grib2/template.4.eps.def"
include "grib2/template.4.statistical.def"
diff --git a/definitions/grib2/template.4.44.def b/definitions/grib2/template.4.44.def
index fa1bf2d74..1fbadeec8 100644
--- a/definitions/grib2/template.4.44.def
+++ b/definitions/grib2/template.4.44.def
@@ -2,6 +2,7 @@
# TEMPLATE 4.44, Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol
# It is recommended not to use this template. PDT 4.48 should be used instead with optical wave length range set to missing
+transient template_is_deprecated = 1 : hidden;
# GRIB-530: Special case for aerosol thanks to WMO error
diff --git a/definitions/grib2/template.4.83.def b/definitions/grib2/template.4.83.def
index a92e3cfd4..395931e68 100644
--- a/definitions/grib2/template.4.83.def
+++ b/definitions/grib2/template.4.83.def
@@ -1,7 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 4.83, Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval with source/sink
-# Note: This template is deprecated. Template 4.84 should be used instead.
+
+# It is recommended not to use this template. Product definition template 4.84 should be used instead because it contains an additional octet to specify the type of generating process
+transient template_is_deprecated = 1 : hidden;
include "grib2/template.4.parameter.def"
include "grib2/template.4.aerosol.def"
diff --git a/definitions/grib2/template.4.categorical.def b/definitions/grib2/template.4.categorical.def
index 102d50e51..006e46a3a 100644
--- a/definitions/grib2/template.4.categorical.def
+++ b/definitions/grib2/template.4.categorical.def
@@ -5,10 +5,15 @@ unsigned[1] numberOfCategories : dump;
# Categories
categories list(numberOfCategories) {
- codetable[1] categoryType ('4.91.table',masterDir,localDir): dump;
unsigned[1] codeFigure : dump;
+ codetable[1] categoryType ('4.91.table',masterDir,localDir): dump;
unsigned[1] scaleFactorOfLowerLimit : can_be_missing,dump ;
unsigned[4] scaledValueOfLowerLimit : can_be_missing,dump ;
unsigned[1] scaleFactorOfUpperLimit : can_be_missing,dump;
unsigned[4] scaledValueOfUpperLimit : can_be_missing,dump;
+
+ alias scaleFactorOfFirstLimit = scaleFactorOfLowerLimit;
+ alias scaledValueOfFirstLimit = scaledValueOfLowerLimit;
+ alias scaleFactorOfSecondLimit = scaleFactorOfUpperLimit;
+ alias scaledValueOfSecondLimit = scaledValueOfUpperLimit;
}
diff --git a/definitions/grib2/template.4.forecast_time.def b/definitions/grib2/template.4.forecast_time.def
index 662310fc6..c12da70e3 100644
--- a/definitions/grib2/template.4.forecast_time.def
+++ b/definitions/grib2/template.4.forecast_time.def
@@ -8,11 +8,11 @@ alias hoursAfterReferenceTimeOfDataCutoff=hoursAfterDataCutoff;
unsigned[1] minutesAfterDataCutoff = missing() : edition_specific,can_be_missing;
alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
-# Indicator of unit of time range
+# Indicator of unit for forecastTime (ECC-1709)
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
-alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
-template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
-codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
+alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
+
+include "grib2/stepUnits.def"
# Forecast time in units defined by previous octet (GRIB-29: supports negative forecast time)
-signed[4] forecastTime : dump;
+signed[4] forecastTime : dump;
diff --git a/definitions/grib2/template.4.forecast_time_44.def b/definitions/grib2/template.4.forecast_time_44.def
index 494921b35..0b4ad445b 100644
--- a/definitions/grib2/template.4.forecast_time_44.def
+++ b/definitions/grib2/template.4.forecast_time_44.def
@@ -10,11 +10,11 @@ alias hoursAfterReferenceTimeOfDataCutoff=hoursAfterDataCutoff;
unsigned[1] minutesAfterDataCutoff = missing() : edition_specific,can_be_missing;
alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
-# Indicator of unit of time range
+# Indicator of unit for forecastTime (ECC-1709)
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
-alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
-template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
-codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
+alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
+
+include "grib2/stepUnits.def"
# Forecast time in units defined by previous octet
# See GRIB-530: We have to make a special case for the error in WMO spec
@@ -23,9 +23,9 @@ if ( new() || (section4Length - 4*NV == 45) ) {
# Newly created messages
# Existing GRIBs which have 45 bytes before the pv array
# The 45 bytes = length of product def template 4.44
- unsigned[2] forecastTime : dump;
+ unsigned[2] forecastTime : dump;
}
else {
# This is for existing gribs which were written with 4 octets (GRIB-29: supports negative forecast time)
- signed[4] forecastTime : dump;
+ signed[4] forecastTime : dump;
}
diff --git a/definitions/grib2/template.4.generalised_tile.def b/definitions/grib2/template.4.generalised_tile.def
new file mode 100644
index 000000000..e10f491c2
--- /dev/null
+++ b/definitions/grib2/template.4.generalised_tile.def
@@ -0,0 +1,45 @@
+# (C) Copyright 2005- ECMWF.
+
+# Generalised tile specifications
+codetable[1] tileClassification ('4.242.table',masterDir,localDir) : dump, string_type;
+codetable[2] typeOfTile ('4.252.table',masterDir,localDir) : dump, string_type;
+unsigned[1] numberOfUsedSpatialTiles=1 : dump; # Maximum number of tiles used in the entire grid
+unsigned[1] numberOfUsedTileAttributeCombinationsForTypeOfTile=1 : dump; # Number of tile attributes for a given tile in the gridbox
+unsigned[1] numberOfUsedTileAttributesForTileAttributeCombination=1 : dump; # Number of used attributes in a given combination
+listOfUsedTileAttributesInCombination list(numberOfUsedTileAttributesForTileAttributeCombination){
+ codetable[1] attributeOfTile ('4.241.table',masterDir,localDir) : dump;
+}
+unsigned[1] totalNumberOfTileAttributeCombinations=1 : dump; # Sum over all tile-attribute pairs over whole grid. >= 1
+unsigned[1] tileIndex=1 : dump; # Local index of tile
+
+concept combinationOfAttributesOfTile (unknown,"combinationOfAttributesOfTileConcept.def",conceptsDir2,conceptsDir1): no_copy,dump;
+byte[16] uuidOfDataGroup : dump; # UUID of data group
+
+# Extract long name (title) + part in brackets (grouping)
+meta tileGrouping codetable_units(typeOfTile) : dump;
+meta tileName codetable_title(typeOfTile) : dump;
+
+alias uuid=uuidOfDataGroup;
+
+alias ls.tile=typeOfTile;
+alias ls.tileAttribute=combinationOfAttributesOfTile;
+
+alias tile.tileIndex=tileIndex;
+alias tile=typeOfTile;
+alias tile.tile=tile;
+alias tile.tileName=tileName;
+alias tileAttribute=combinationOfAttributesOfTile;
+alias tile.tileAttribute=tileAttribute;
+alias nTiles=numberOfUsedSpatialTiles;
+alias tile.nTiles=nTiles;
+alias totalTileAttCombo=totalNumberOfTileAttributeCombinations;
+alias tile.totalTileAttCombo=totalTileAttCombo;
+alias nTileAttCombo=numberOfUsedTileAttributeCombinationsForTypeOfTile;
+alias tile.nTileAttCombo=nTileAttCombo;
+alias nTileAtt=numberOfUsedTileAttributesForTileAttributeCombination;
+alias tile.nTileAtt=nTileAtt;
+
+alias mars.tile=typeOfTile;
+alias mars.tileAttribute=tileAttribute;
+transient paramtype = "tile";
+alias mars.paramType=paramtype;
diff --git a/definitions/grib2/template.4.horizontal.def b/definitions/grib2/template.4.horizontal.def
index 67a1909da..2dc64c033 100644
--- a/definitions/grib2/template.4.horizontal.def
+++ b/definitions/grib2/template.4.horizontal.def
@@ -54,10 +54,10 @@ alias vertical.level=level;
alias vertical.bottomLevel=bottomLevel;
alias vertical.topLevel=topLevel;
-alias extraDim=zero;
+alias extraDim=false;
if (defined(extraDimensionPresent)) {
if (extraDimensionPresent) {
- alias extraDim=one;
+ alias extraDim=true;
}
}
if (extraDim) {
@@ -66,7 +66,9 @@ if (extraDim) {
} else {
# See GRIB-74 why we store the pressureUnits in a transient
transient tempPressureUnits=pressureUnits;
- if (!(typeOfLevel is "surface")) {
+ # Same as typeOfLevel != "surface" but much quicker to evaluate
+ # than via the concept
+ if ( ! (typeOfFirstFixedSurface == 1 && typeOfSecondFixedSurface == 255) ) {
if (tempPressureUnits is "Pa") {
meta marsLevel scale(level,one,hundred) : read_only;
alias mars.levelist=marsLevel;
@@ -77,7 +79,8 @@ if (extraDim) {
# ECC-1333: levtype should be read-only in GRIB2
concept mars.levtype(unknown,"marsLevtypeConcept.def",conceptsDir2,conceptsDir1):no_copy, read_only;
# GRIB-372: levelist alias does not pertain to surface parameters
- if (levtype is "sfc" || levtype is "o2d") {
+ transient tempLevtype = levtype; # Faster to copy the concept so we evaluate it once
+ if (tempLevtype is "sfc" || tempLevtype is "o2d") {
unalias mars.levelist;
}
}
diff --git a/definitions/grib2/template.4.localtime.def b/definitions/grib2/template.4.localtime.def
index 72a00e586..96d655d68 100644
--- a/definitions/grib2/template.4.localtime.def
+++ b/definitions/grib2/template.4.localtime.def
@@ -3,9 +3,8 @@
remove is_localtime;
transient is_localtime=1;
-alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
-template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
-codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
+include "grib2/stepUnits.def"
+
alias time.stepUnits = stepUnits;
# Method used to calculate the field value at the local time specified in section 1
@@ -82,7 +81,6 @@ if (numberOfForecastsUsedInLocalTime == 1) {
alias mars.date = dateOfForecastUsedInLocalTime : dump;
alias mars.time = timeOfForecastUsedInLocalTime : dump;
alias mars.step = endStep;
-
alias time.dataDate = dateOfForecastUsedInLocalTime;
alias time.dataTime = timeOfForecastUsedInLocalTime;
alias time.endStep = endStep;
diff --git a/definitions/grib2/template.4.optical.def b/definitions/grib2/template.4.optical.def
index e1f9867ca..71dcf77e0 100644
--- a/definitions/grib2/template.4.optical.def
+++ b/definitions/grib2/template.4.optical.def
@@ -8,3 +8,12 @@ signed[1] scaleFactorOfFirstWavelength : dump;
signed[4] scaledValueOfFirstWavelength : dump;
signed[1] scaleFactorOfSecondWavelength = missing(): can_be_missing,dump;
signed[4] scaledValueOfSecondWavelength = missing(): can_be_missing,dump;
+
+meta firstWavelength from_scale_factor_scaled_value(scaleFactorOfFirstWavelength, scaledValueOfFirstWavelength);
+meta secondWavelength from_scale_factor_scaled_value(scaleFactorOfSecondWavelength, scaledValueOfSecondWavelength);
+alias firstWavelengthInMetres = firstWavelength;
+alias secondWavelengthInMetres = secondWavelength;
+
+constant billion = 1000000000 : hidden;
+meta firstWavelengthInNanometres multdouble(firstWavelength, billion) : read_only;
+meta secondWavelengthInNanometres multdouble(secondWavelength, billion) : read_only;
diff --git a/definitions/grib2/template.4.statistical.def b/definitions/grib2/template.4.statistical.def
index dfc0e7203..a2286e453 100644
--- a/definitions/grib2/template.4.statistical.def
+++ b/definitions/grib2/template.4.statistical.def
@@ -18,15 +18,16 @@ unsigned[1] minuteOfEndOfOverallTimeInterval =0 : edition_specific;
# Second of end of overall time interval
unsigned[1] secondOfEndOfOverallTimeInterval =0 : edition_specific;
-# n - number of time range specifications describing the time intervals used to calculate the statistically-processed field
+# Number of time range specifications describing the time intervals used to calculate the statistically-processed field
unsigned[1] numberOfTimeRange = 1 : edition_specific;
alias n = numberOfTimeRange;
+alias numberOfTimeRanges = numberOfTimeRange;
# Total number of data values missing in statistical process
unsigned[4] numberOfMissingInStatisticalProcess = 0 : edition_specific;
alias totalNumberOfDataValuesMissingInStatisticalProcess=numberOfMissingInStatisticalProcess;
-statisticalProcessesList list(numberOfTimeRange)
+statisticalProcessesList list(numberOfTimeRanges)
{
# Statistical process used to calculate the processed field from the field at each time increment during the time range
codetable[1] typeOfStatisticalProcessing ('4.10.table',masterDir,localDir) : edition_specific;
@@ -50,7 +51,7 @@ statisticalProcessesList list(numberOfTimeRange)
}
# See GRIB-488. We only support maximum of 2 time ranges
-if (numberOfTimeRange == 1 || numberOfTimeRange == 2) {
+if (numberOfTimeRanges == 1 || numberOfTimeRanges == 2) {
concept stepTypeInternal {
"instant" = {typeOfStatisticalProcessing=255;}
"avg" = {typeOfStatisticalProcessing=0;typeOfTimeIncrement=255;}
@@ -95,7 +96,7 @@ if (numberOfTimeRange == 1 || numberOfTimeRange == 2) {
indicatorOfUnitForTimeRange,
lengthOfTimeRange,
typeOfTimeIncrement,
- numberOfTimeRange
+ numberOfTimeRanges
) : dump,no_copy;
meta stepRange g2step_range(startStep,endStep): dump;
diff --git a/definitions/grib2/template.4.wave.def b/definitions/grib2/template.4.wave.def
index a5bfac03c..37c3f4523 100644
--- a/definitions/grib2/template.4.wave.def
+++ b/definitions/grib2/template.4.wave.def
@@ -3,16 +3,20 @@
## Direction part
unsigned[2] waveDirectionNumber : dump;
alias mars.direction = waveDirectionNumber;
+alias directionNumber = waveDirectionNumber;
unsigned[2] numberOfWaveDirections = 1 : dump;
alias totalNumberOfWaveDirections = numberOfWaveDirections;
+alias numberOfDirections = totalNumberOfWaveDirections;
## Frequency part
unsigned[2] waveFrequencyNumber : dump;
alias mars.frequency = waveFrequencyNumber;
+alias frequencyNumber = waveFrequencyNumber;
unsigned[2] numberOfWaveFrequencies = 1 : dump;
alias totalNumberOfWaveFrequencies = numberOfWaveFrequencies;
+alias numberOfFrequencies = totalNumberOfWaveFrequencies;
constant waveLevType="sfc";
alias mars.levtype = waveLevType;
diff --git a/definitions/grib2/template.4.wave_spectra_list.def b/definitions/grib2/template.4.wave_spectra_list.def
index f90e2dc35..85fa6fc7d 100644
--- a/definitions/grib2/template.4.wave_spectra_list.def
+++ b/definitions/grib2/template.4.wave_spectra_list.def
@@ -3,11 +3,15 @@
## Direction part
signed[1] scaleFactorOfWaveDirections : dump;
alias integerScalingFactorAppliedToDirections = scaleFactorOfWaveDirections;
+alias directionScalingFactor = integerScalingFactorAppliedToDirections;
unsigned[4] scaledValuesOfWaveDirections[numberOfWaveDirections] : dump;
+alias scaledDirections = scaledValuesOfWaveDirections ;
## Frequency part
signed[1] scaleFactorOfWaveFrequencies : dump;
alias integerScalingFactorAppliedToFrequencies = scaleFactorOfWaveFrequencies;
+alias frequencyScalingFactor = integerScalingFactorAppliedToFrequencies;
unsigned[4] scaledValuesOfWaveFrequencies[numberOfWaveFrequencies] : dump;
+alias scaledFrequencies = scaledValuesOfWaveFrequencies;
diff --git a/definitions/grib2/template.5.0.def b/definitions/grib2/template.5.0.def
index 9ec20b0ea..709f8be74 100644
--- a/definitions/grib2/template.5.0.def
+++ b/definitions/grib2/template.5.0.def
@@ -2,6 +2,6 @@
# TEMPLATE 5.0, Grid point data - simple packing
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
diff --git a/definitions/grib2/template.5.1.def b/definitions/grib2/template.5.1.def
index 65e389950..14864c9f5 100644
--- a/definitions/grib2/template.5.1.def
+++ b/definitions/grib2/template.5.1.def
@@ -1,10 +1,11 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 5.1, Matrix values at grid point - simple packing
-# Preliminary note:
-# This template was not validated at the time of publication and should be used with caution
-include "grib2/template.5.packing.def";
+# This template was not validated at the time of publication and should be used with caution
+transient template_is_experimental = 1 : hidden;
+
+include "grib2/template.5.packing.def"
unsigned[1] matrixBitmapsPresent;
# same as in edition 1
@@ -20,7 +21,7 @@ alias NR = firstDimension;
# NC - second dimension (columns)
unsigned[2] secondDimension;
-alias NC = secondDimension;
+alias NC = secondDimension;
# First dimension coordinate value definition (Code Table 5.2)
unsigned[1] firstDimensionCoordinateValueDefinition;
@@ -41,7 +42,7 @@ unsigned[1] firstDimensionPhysicalSignificance ;
# Second dimension physical significance (Code Table 5.3)
unsigned[1] secondDimensionPhysicalSignificance ;
-ieeefloat coefsFirst[NC1]; # TODO: find proper names
+ieeefloat coefsFirst[NC1]; # TODO: find proper names
ieeefloat coefsSecond[NC2]; # TODO: find proper names
alias data.coefsFirst = coefsFirst;
diff --git a/definitions/grib2/template.5.2.def b/definitions/grib2/template.5.2.def
index cc3149827..59f7f5342 100644
--- a/definitions/grib2/template.5.2.def
+++ b/definitions/grib2/template.5.2.def
@@ -2,8 +2,8 @@
# TEMPLATE 5.2, Grid point data - complex packing
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
# Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);
@@ -20,7 +20,7 @@ unsigned[4] secondaryMissingValueSubstitute ;
# NG - Number of groups of data values into which field is split
unsigned[4] numberOfGroupsOfDataValues ;
-alias NG = numberOfGroupsOfDataValues;
+alias NG = numberOfGroupsOfDataValues;
# Reference for group widths
unsigned[1] referenceForGroupWidths ;
diff --git a/definitions/grib2/template.5.3.def b/definitions/grib2/template.5.3.def
index f825ca270..2640883f4 100644
--- a/definitions/grib2/template.5.3.def
+++ b/definitions/grib2/template.5.3.def
@@ -2,8 +2,8 @@
# TEMPLATE 5.3, Grid point data - complex packing and spatial differencing
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
# Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);
@@ -20,7 +20,7 @@ unsigned[4] secondaryMissingValueSubstitute ;
# NG - Number of groups of data values into which field is split
unsigned[4] numberOfGroupsOfDataValues ;
-alias NG = numberOfGroupsOfDataValues;
+alias NG = numberOfGroupsOfDataValues;
# Reference for group widths
unsigned[1] referenceForGroupWidths ;
diff --git a/definitions/grib2/template.5.4.def b/definitions/grib2/template.5.4.def
index 0f7b27ae2..62e781228 100644
--- a/definitions/grib2/template.5.4.def
+++ b/definitions/grib2/template.5.4.def
@@ -9,7 +9,7 @@ transient decimalScaleFactor=0 : hidden;
alias numberOfBits = bitsPerValue;
alias numberOfBitsContainingEachPackedValue = bitsPerValue;
-codetable[1] precision ('5.7.table',masterDir,localDir) = 1 : edition_specific;
+codetable[1] precision ('5.7.table',masterDir,localDir) = 1 : edition_specific;
concept accuracy(zero) {
32 = { precision = 1; }
64 = { precision = 2; }
diff --git a/definitions/grib2/template.5.40.def b/definitions/grib2/template.5.40.def
index 3b2f33ef0..51a56b1b7 100644
--- a/definitions/grib2/template.5.40.def
+++ b/definitions/grib2/template.5.40.def
@@ -2,8 +2,8 @@
# TEMPLATE 5.40, Grid point data - JPEG 2000 Code Stream Format
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ;
diff --git a/definitions/grib2/template.5.41.def b/definitions/grib2/template.5.41.def
index bc3c621e8..58ebd8e34 100644
--- a/definitions/grib2/template.5.41.def
+++ b/definitions/grib2/template.5.41.def
@@ -2,5 +2,5 @@
# TEMPLATE 5.41, Grid point data - PNG Code Stream Format
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
diff --git a/definitions/grib2/template.5.42.def b/definitions/grib2/template.5.42.def
index a2ad605af..401966908 100644
--- a/definitions/grib2/template.5.42.def
+++ b/definitions/grib2/template.5.42.def
@@ -2,18 +2,18 @@
# TEMPLATE 5.42, Grid point data - CCSDS recommended lossless compression
-include "grib2/template.5.packing.def";
-include "grib2/template.5.original_values.def";
+include "grib2/template.5.packing.def"
+include "grib2/template.5.original_values.def"
unsigned[1] ccsdsFlags : dump;
alias ccsdsCompressionOptionsMask=ccsdsFlags;
-flagbit AEC_DATA_SIGNED_OPTION_MASK(ccsdsFlags,0) = 0;
+flagbit AEC_DATA_SIGNED_OPTION_MASK(ccsdsFlags,0) = 0;
# AEC_DATA_3BYTE_OPTION_MASK was switched on in order to allow data stored
# with 17 <=bitsPerValue<= 24 to be stored in 3 rather than 4 bytes.
# This eliminates discretization errors that were occurring when it was off.
-flagbit AEC_DATA_3BYTE_OPTION_MASK(ccsdsFlags,1) = 1;
+flagbit AEC_DATA_3BYTE_OPTION_MASK(ccsdsFlags,1) = 1;
flagbit AEC_DATA_MSB_OPTION_MASK(ccsdsFlags,2) = 1;
flagbit AEC_DATA_PREPROCESS_OPTION_MASK(ccsdsFlags,3) = 1;
diff --git a/definitions/grib2/template.5.50.def b/definitions/grib2/template.5.50.def
index 9c63c39dd..ab444b3ec 100644
--- a/definitions/grib2/template.5.50.def
+++ b/definitions/grib2/template.5.50.def
@@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 5.50, Spectral data - simple packing
-include "grib2/template.5.packing.def";
+include "grib2/template.5.packing.def"
# Real part of (0,0)
-ieeefloat realPartOf00 ;
+ieeefloat realPartOf00;
diff --git a/definitions/grib2/template.5.50000.def b/definitions/grib2/template.5.50000.def
index 74b79897d..19c5b14da 100644
--- a/definitions/grib2/template.5.50000.def
+++ b/definitions/grib2/template.5.50000.def
@@ -1,8 +1,8 @@
# (C) Copyright 2005- ECMWF.
-# TEMPLATE 5.50000, Spherical harmonics data - complex packing ( IEEE )
+# TEMPLATE 5.50000, Spherical harmonics data - complex packing (IEEE)
-include "grib2/template.5.packing.def";
+include "grib2/template.5.packing.def"
if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden;
@@ -12,11 +12,11 @@ if (gribex_mode_on()) {
meta _numberOfValues spectral_truncation(J,K,M,numberOfValues): read_only;
-constant laplacianScalingFactorUnset = -2147483647;
+constant laplacianScalingFactorUnset = -2147483647;
signed[4] laplacianScalingFactor : edition_specific ;
-meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
-meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
+meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
+meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
transient JS= 20 ;
transient KS=20 ;
diff --git a/definitions/grib2/template.5.50002.def b/definitions/grib2/template.5.50002.def
index a30bdaee0..6a35118d1 100644
--- a/definitions/grib2/template.5.50002.def
+++ b/definitions/grib2/template.5.50002.def
@@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
-ieeefloat referenceValue : no_copy;
+ieeefloat referenceValue : no_copy;
meta referenceValueError reference_value_error(referenceValue,ieee);
signed[2] binaryScaleFactor : no_copy;
diff --git a/definitions/grib2/template.5.51.def b/definitions/grib2/template.5.51.def
index 747976a82..f7dc292ca 100644
--- a/definitions/grib2/template.5.51.def
+++ b/definitions/grib2/template.5.51.def
@@ -2,31 +2,31 @@
# TEMPLATE 5.51, Spherical harmonics data - complex packing
-include "grib2/template.5.packing.def";
+include "grib2/template.5.packing.def"
if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden;
} else {
- transient computeLaplacianOperator=1 : hidden;
+ transient computeLaplacianOperator=1 : hidden;
}
meta _numberOfValues spectral_truncation(J,K,M,numberOfValues): read_only;
-constant laplacianScalingFactorUnset = -2147483647;
+constant laplacianScalingFactorUnset = -2147483647;
signed[4] laplacianScalingFactor : edition_specific ;
-meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
-meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
+meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
+meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
-unsigned[2] JS ;
-unsigned[2] KS ;
-unsigned[2] MS ;
+unsigned[2] JS;
+unsigned[2] KS;
+unsigned[2] MS;
-alias subSetJ=JS ;
-alias subSetK=KS ;
-alias subSetM=MS ;
+alias subSetJ=JS;
+alias subSetK=KS;
+alias subSetM=MS;
-unsigned[4] TS ;
+unsigned[4] TS;
meta _TS spectral_truncation(JS,KS,MS,TS) : read_only,hidden;
diff --git a/definitions/grib2/template.5.53.def b/definitions/grib2/template.5.53.def
index 2ca21b70f..c7b21de5f 100644
--- a/definitions/grib2/template.5.53.def
+++ b/definitions/grib2/template.5.53.def
@@ -3,21 +3,21 @@
# TEMPLATE 5.53, BiFourier coefficients data - complex packing
# Spectral data for limited area models - complex packing
-include "grib2/template.5.packing.def";
+include "grib2/template.5.packing.def"
transient computeLaplacianOperator=1 : hidden;
codetable[1] biFourierSubTruncationType ('5.25.table',masterDir,localDir) : dump;
codetable[1] biFourierPackingModeForAxes ('5.26.table',masterDir,localDir) = 0 : dump;
-constant laplacianScalingFactorUnset = -2147483647;
+constant laplacianScalingFactorUnset = -2147483647;
signed[4] laplacianScalingFactor : edition_specific ; # units of 10^-6
-meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
-meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
+meta data.laplacianOperator scale(laplacianScalingFactor,one,million,truncateLaplacian) ;
+meta laplacianOperatorIsSet evaluate(laplacianScalingFactor != laplacianScalingFactorUnset && !computeLaplacianOperator);
-unsigned[2] biFourierResolutionSubSetParameterN : dump ; # NS
-unsigned[2] biFourierResolutionSubSetParameterM : dump ; # MS
+unsigned[2] biFourierResolutionSubSetParameterN : dump; # NS
+unsigned[2] biFourierResolutionSubSetParameterM : dump; # MS
unsigned[4] totalNumberOfValuesInUnpackedSubset = 0 : dump; # TS
# This is read_only until we support other values
diff --git a/definitions/grib2/template.5.61.def b/definitions/grib2/template.5.61.def
index 1077f1f97..f19db39ee 100644
--- a/definitions/grib2/template.5.61.def
+++ b/definitions/grib2/template.5.61.def
@@ -2,10 +2,11 @@
# TEMPLATE 5.61, Grid point data - Simple packing with logarithmic preprocessing
-# Note from WMO document:
# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests
+transient template_is_experimental = 1 : hidden;
+
constant typeOfPreProcessing = 1;
-include "grib2/template.5.packing.def";
+include "grib2/template.5.packing.def"
-ieeefloat preProcessingParameter : read_only;
+ieeefloat preProcessingParameter : read_only;
diff --git a/definitions/grib2/template.5.packing.def b/definitions/grib2/template.5.packing.def
index 760a0f8a9..e5810d303 100644
--- a/definitions/grib2/template.5.packing.def
+++ b/definitions/grib2/template.5.packing.def
@@ -3,7 +3,7 @@
# Reference value (R)
# The copy_ok means that the value is copied when changing the representation
# e.g. from jpeg to simple packing.
-ieeefloat referenceValue : read_only, copy_ok;
+ieeefloat referenceValue : read_only, copy_ok;
meta referenceValueError reference_value_error(referenceValue,ieee);
# Binary scale factor (E)
diff --git a/definitions/grib2/template.5.second_order.def b/definitions/grib2/template.5.second_order.def
index f7a31a20b..06adf80f2 100644
--- a/definitions/grib2/template.5.second_order.def
+++ b/definitions/grib2/template.5.second_order.def
@@ -9,7 +9,7 @@ unsigned[4] primaryMissingValue ;
unsigned[4] secondaryMissingValue ;
unsigned[4] numberOfGroups ;
-alias NG = numberOfGroups;
+alias NG = numberOfGroups;
unsigned[1] referenceOfWidths ;
unsigned[1] widthOfWidths ;
diff --git a/definitions/grib2/template.7.0.def b/definitions/grib2/template.7.0.def
index 1a8de3684..ee592d950 100644
--- a/definitions/grib2/template.7.0.def
+++ b/definitions/grib2/template.7.0.def
@@ -3,26 +3,28 @@
# TEMPLATE 7.0, Grid point data - simple packing
meta codedValues data_g2simple_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
diff --git a/definitions/grib2/template.7.1.def b/definitions/grib2/template.7.1.def
index b5376139a..1426d4fe7 100644
--- a/definitions/grib2/template.7.1.def
+++ b/definitions/grib2/template.7.1.def
@@ -1,28 +1,32 @@
# (C) Copyright 2005- ECMWF.
-# TEMPLATE 7.1, Matrix values at grid point -simple packing
+# TEMPLATE 7.1, Matrix values at grid point - simple packing
+# This template was not validated at the time of publication and should be used with caution
+transient template_is_experimental = 1 : hidden;
meta codedValues data_g2simple_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
diff --git a/definitions/grib2/template.7.2.def b/definitions/grib2/template.7.2.def
index e243e7755..cefa4b232 100644
--- a/definitions/grib2/template.7.2.def
+++ b/definitions/grib2/template.7.2.def
@@ -19,29 +19,30 @@ meta codedValues data_g22order_packing(
decimalScaleFactor,
optimizeScaleFactor,
- typeOfOriginalFieldValues ,
+ typeOfOriginalFieldValues,
groupSplittingMethodUsed,
- missingValueManagementUsed ,
- primaryMissingValueSubstitute ,
- secondaryMissingValueSubstitute ,
- numberOfGroupsOfDataValues ,
- referenceForGroupWidths ,
- numberOfBitsUsedForTheGroupWidths ,
- referenceForGroupLengths ,
+ missingValueManagementUsed,
+ primaryMissingValueSubstitute,
+ secondaryMissingValueSubstitute,
+ numberOfGroupsOfDataValues,
+ referenceForGroupWidths,
+ numberOfBitsUsedForTheGroupWidths,
+ referenceForGroupLengths,
lengthIncrementForTheGroupLengths,
- trueLengthOfLastGroup ,
+ trueLengthOfLastGroup,
numberOfBitsForScaledGroupLengths,
orderOfSpatialDifferencing,
numberOfOctetsExtraDescriptors
-
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.200.def b/definitions/grib2/template.7.200.def
index 71459b2cf..8e8884897 100644
--- a/definitions/grib2/template.7.200.def
+++ b/definitions/grib2/template.7.200.def
@@ -14,12 +14,14 @@ meta codedValues data_run_length_packing(
levelValues
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.3.def b/definitions/grib2/template.7.3.def
index c2293fc8d..2a6727bb4 100644
--- a/definitions/grib2/template.7.3.def
+++ b/definitions/grib2/template.7.3.def
@@ -16,29 +16,30 @@ meta codedValues data_g22order_packing(
decimalScaleFactor,
optimizeScaleFactor,
- typeOfOriginalFieldValues ,
+ typeOfOriginalFieldValues,
groupSplittingMethodUsed,
- missingValueManagementUsed ,
- primaryMissingValueSubstitute ,
- secondaryMissingValueSubstitute ,
- numberOfGroupsOfDataValues ,
- referenceForGroupWidths ,
- numberOfBitsUsedForTheGroupWidths ,
- referenceForGroupLengths ,
+ missingValueManagementUsed,
+ primaryMissingValueSubstitute,
+ secondaryMissingValueSubstitute,
+ numberOfGroupsOfDataValues,
+ referenceForGroupWidths,
+ numberOfBitsUsedForTheGroupWidths,
+ referenceForGroupLengths,
lengthIncrementForTheGroupLengths,
- trueLengthOfLastGroup ,
+ trueLengthOfLastGroup,
numberOfBitsForScaledGroupLengths,
orderOfSpatialDifferencing,
numberOfOctetsExtraDescriptors
-
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues=codedValues;
diff --git a/definitions/grib2/template.7.4.def b/definitions/grib2/template.7.4.def
index 203f19c5c..95ec7f1bb 100644
--- a/definitions/grib2/template.7.4.def
+++ b/definitions/grib2/template.7.4.def
@@ -3,19 +3,21 @@
# TEMPLATE 7.4, Grid point data - IEEE floating point data
meta codedValues data_raw_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- numberOfValues,
- precision
- ): read_only;
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ numberOfValues,
+ precision
+): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.40.def b/definitions/grib2/template.7.40.def
index 3fa1d3299..a4ea05c2c 100644
--- a/definitions/grib2/template.7.40.def
+++ b/definitions/grib2/template.7.40.def
@@ -3,44 +3,43 @@
# TEMPLATE 7.40, Grid point data - JPEG2000
meta codedValues data_jpeg2000_packing(
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- section7Length,
- offsetBeforeData,
- offsetSection7,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfCodedValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfCodedValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ #numberOfValues,
+ #referenceValue,
+ #binaryScaleFactor,
+ #decimalScaleFactor,
+ #bitsPerValue,
- #numberOfValues,
- #referenceValue,
- #binaryScaleFactor,
- #decimalScaleFactor,
- #bitsPerValue,
+ # For encoding
+ typeOfCompressionUsed,
+ targetCompressionRatio,
+ Nx,
+ Ny,
+ interpretationOfNumberOfPoints,
+ numberOfDataPoints,
+ scanningMode
+): read_only;
- # For encoding
- typeOfCompressionUsed,
- targetCompressionRatio,
- Nx,
- Ny,
- interpretationOfNumberOfPoints,
- numberOfDataPoints,
- scanningMode
-
- ): read_only;
-
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.41.def b/definitions/grib2/template.7.41.def
index f4b79671c..39263f886 100644
--- a/definitions/grib2/template.7.41.def
+++ b/definitions/grib2/template.7.41.def
@@ -3,28 +3,29 @@
# TEMPLATE 7.41, Grid point data - PNG
meta codedValues data_png_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- numberOfValues,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- bitsPerValue,
- # For encoding
- Nx,
- Ny,
- interpretationOfNumberOfPoints,
- numberOfDataPoints,
- scanningMode
- ): read_only;
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ numberOfValues,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ bitsPerValue,
+ # For encoding
+ Nx,
+ Ny,
+ interpretationOfNumberOfPoints,
+ numberOfDataPoints,
+ scanningMode
+): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.42.def b/definitions/grib2/template.7.42.def
index 09f1a9833..78d593ba8 100644
--- a/definitions/grib2/template.7.42.def
+++ b/definitions/grib2/template.7.42.def
@@ -3,27 +3,28 @@
# TEMPLATE 7.42, Grid point data - CCSDS
meta codedValues data_ccsds_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- numberOfValues,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
- bitsPerValue,
- numberOfDataPoints,
- ccsdsFlags,
- ccsdsBlockSize,
- ccsdsRsi
- ): read_only;
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ numberOfValues,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
+ bitsPerValue,
+ numberOfDataPoints,
+ ccsdsFlags,
+ ccsdsBlockSize,
+ ccsdsRsi
+): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues) : dump;
# See ECC-711
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
diff --git a/definitions/grib2/template.7.50.def b/definitions/grib2/template.7.50.def
index 8ff1483f4..85ea1a4ef 100644
--- a/definitions/grib2/template.7.50.def
+++ b/definitions/grib2/template.7.50.def
@@ -9,24 +9,24 @@ transient numberOfValues = ( J + 1 ) * ( J + 2 ) : no_copy ;
transient numberOfPackedValues = numberOfValues - 1 : no_copy;
meta codedValues data_g2simple_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfPackedValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor) : read_only;
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfPackedValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor) : read_only;
meta values data_g2shsimple_packing(
- codedValues,
- realPartOf00,
- numberOfValues,
- numberOfDataPoints);
+ codedValues,
+ realPartOf00,
+ numberOfValues,
+ numberOfDataPoints);
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
diff --git a/definitions/grib2/template.7.50000.def b/definitions/grib2/template.7.50000.def
index 1aef1204e..135d9aa4c 100644
--- a/definitions/grib2/template.7.50000.def
+++ b/definitions/grib2/template.7.50000.def
@@ -7,105 +7,91 @@ constant sphericalHarmonics = 1;
constant complexPacking = 1;
meta codedValues data_g2complex_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- laplacianOperatorIsSet,
- laplacianOperator,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- J,
- K,
- M,
+ J, K, M,
+ J, J, J,
+ numberOfValues
+): read_only;
- J,
- J,
- J,
+meta data.packedValues data_sh_packed(
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- numberOfValues
- ): read_only;
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- meta data.packedValues data_sh_packed(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
+ J,K, M,
+ J, J, J
+) : read_only;
- laplacianOperatorIsSet,
- laplacianOperator,
+meta data.unpackedValues data_sh_unpacked(
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- J,
- K,
- M,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- J,
- J,
- J
- ) : read_only;
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- meta data.unpackedValues data_sh_unpacked(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
-
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
-
- laplacianOperatorIsSet,
- laplacianOperator,
-
- J,
- K,
- M,
-
- J,
- K,
- M
+ J, K, M,
+ J, K, M
) : 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;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
template statistics "common/statistics_spectral.def";
diff --git a/definitions/grib2/template.7.50001.def b/definitions/grib2/template.7.50001.def
index 18bc0ca32..882379f36 100644
--- a/definitions/grib2/template.7.50001.def
+++ b/definitions/grib2/template.7.50001.def
@@ -6,13 +6,13 @@ if (bitsPerValue) {
meta groupWidths unsigned_bits(widthOfWidths,numberOfGroups) : read_only;
meta groupLengths unsigned_bits(widthOfLengths,numberOfGroups) : read_only;
meta firstOrderValues unsigned_bits(widthOfFirstOrderValues,numberOfGroups) : read_only;
- meta countOfGroupLengths sum(groupLengths);
+ # meta countOfGroupLengths sum(groupLengths);
}
transient halfByte=0;
position offsetBeforeData;
-if(bitmapPresent) {
+if(bitmapPresent) {
meta codedValues data_g1second_order_general_extended_packing(
#simple_packing args
section7Length,
@@ -49,7 +49,6 @@ if(bitmapPresent) {
widthOfSPD,
orderOfSPD,
numberOfPoints
-
): read_only;
alias data.packedValues = codedValues;
@@ -91,7 +90,6 @@ if(bitmapPresent) {
widthOfSPD,
orderOfSPD,
numberOfPoints
-
) : dump;
alias codedValues=values;
alias data.packedValues = values;
diff --git a/definitions/grib2/template.7.50002.def b/definitions/grib2/template.7.50002.def
index be47b0604..7ca21e92a 100644
--- a/definitions/grib2/template.7.50002.def
+++ b/definitions/grib2/template.7.50002.def
@@ -5,12 +5,12 @@
meta groupWidths unsigned_bits(widthOfWidths,numberOfGroups) : read_only;
meta groupLengths unsigned_bits(widthOfLengths,numberOfGroups) : read_only;
meta firstOrderValues unsigned_bits(widthOfFirstOrderValues,numberOfGroups) : read_only;
-meta countOfGroupLengths sum(groupLengths);
+# meta countOfGroupLengths sum(groupLengths);
transient halfByte=0;
position offsetBeforeData;
-if(bitmapPresent) {
+if(bitmapPresent) {
meta codedValues data_g1second_order_general_extended_packing(
#simple_packing args
section7Length,
@@ -47,7 +47,6 @@ if(bitmapPresent) {
widthOfSPD,
orderOfSPD,
numberOfPoints
-
): read_only;
alias data.packedValues = codedValues;
@@ -96,8 +95,7 @@ if(bitmapPresent) {
widthOfSPD,
orderOfSPD,
numberOfPoints
-
- ) : dump;
+ ) : dump;
meta values data_apply_boustrophedonic(codedValues,numberOfRows,numberOfColumns,numberOfPoints,pl) : dump;
@@ -138,7 +136,6 @@ if(bitmapPresent) {
widthOfSPD,
orderOfSPD,
numberOfPoints
-
) : dump;
alias codedValues=values;
}
diff --git a/definitions/grib2/template.7.51.def b/definitions/grib2/template.7.51.def
index c17de4aca..10ec72f11 100644
--- a/definitions/grib2/template.7.51.def
+++ b/definitions/grib2/template.7.51.def
@@ -7,105 +7,106 @@ constant sphericalHarmonics = 1;
constant complexPacking = 1;
meta codedValues data_g2complex_packing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- laplacianOperatorIsSet,
- laplacianOperator,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- subSetJ,
- subSetK,
- subSetM,
+ subSetJ,
+ subSetK,
+ subSetM,
- pentagonalResolutionParameterJ,
- pentagonalResolutionParameterK,
- pentagonalResolutionParameterM,
+ pentagonalResolutionParameterJ,
+ pentagonalResolutionParameterK,
+ pentagonalResolutionParameterM,
- numberOfValues
- ): read_only;
+ numberOfValues
+): read_only;
- meta data.packedValues data_sh_packed(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+meta data.packedValues data_sh_packed(
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- laplacianOperatorIsSet,
- laplacianOperator,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- subSetJ,
- subSetK,
- subSetM,
+ subSetJ,
+ subSetK,
+ subSetM,
- pentagonalResolutionParameterJ,
- pentagonalResolutionParameterK,
- pentagonalResolutionParameterM
- ) : read_only;
+ pentagonalResolutionParameterJ,
+ pentagonalResolutionParameterK,
+ pentagonalResolutionParameterM
+) : read_only;
- meta data.unpackedValues data_sh_unpacked(
- section7Length,
- offsetBeforeData,
- offsetSection7,
+meta data.unpackedValues data_sh_unpacked(
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
- GRIBEXShBugPresent,
- unpackedSubsetPrecision,
+ GRIBEXShBugPresent,
+ unpackedSubsetPrecision,
- laplacianOperatorIsSet,
- laplacianOperator,
+ laplacianOperatorIsSet,
+ laplacianOperator,
- subSetJ,
- subSetK,
- subSetM,
+ subSetJ,
+ subSetK,
+ subSetM,
- pentagonalResolutionParameterJ,
- pentagonalResolutionParameterK,
- pentagonalResolutionParameterM
- ) : read_only;
+ 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;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues) : dump;
template statistics "common/statistics_spectral.def";
diff --git a/definitions/grib2/template.7.61.def b/definitions/grib2/template.7.61.def
index 58f6f93e6..6f7f3fdd6 100644
--- a/definitions/grib2/template.7.61.def
+++ b/definitions/grib2/template.7.61.def
@@ -4,32 +4,33 @@
# Note from WMO document:
# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests
-
-# Octets 6-nn : Binary data values - binary string, with each (scaled)
+transient template_is_deprecated = 1 : hidden;
meta codedValues data_g2simple_packing_with_preprocessing(
- section7Length,
- offsetBeforeData,
- offsetSection7,
- unitsFactor,
- unitsBias,
- changingPrecision,
- numberOfValues,
- bitsPerValue,
- referenceValue,
- binaryScaleFactor,
- decimalScaleFactor,
- optimizeScaleFactor,
- typeOfPreProcessing,
- preProcessingParameter
- ): read_only;
+ section7Length,
+ offsetBeforeData,
+ offsetSection7,
+ unitsFactor,
+ unitsBias,
+ changingPrecision,
+ numberOfValues,
+ bitsPerValue,
+ referenceValue,
+ binaryScaleFactor,
+ decimalScaleFactor,
+ optimizeScaleFactor,
+ typeOfPreProcessing,
+ preProcessingParameter
+): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/template.7.second_order.def b/definitions/grib2/template.7.second_order.def
index 2455f80c7..fb2184b37 100644
--- a/definitions/grib2/template.7.second_order.def
+++ b/definitions/grib2/template.7.second_order.def
@@ -11,7 +11,7 @@ meta codedValues data_g2second_order_packing(
section7Length,
offsetBeforeData,
offsetSection7,
- unitsFactor,
+ unitsFactor,
unitsBias,
changingPrecision,
numberOfCodedValues,
@@ -19,7 +19,7 @@ meta codedValues data_g2second_order_packing(
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
- #g2second_order_packing
+ # g2second_order_packing
halfByte,
packingType,
grid_ieee,
@@ -41,15 +41,16 @@ meta codedValues data_g2second_order_packing(
widthOfSPD,
orderOfSPD,
numberOfPoints
-
): read_only;
-meta values data_apply_bitmap(codedValues,
- bitmap,
- missingValue,
- binaryScaleFactor,
- numberOfDataPoints,
- numberOfValues) : dump;
+meta values data_apply_bitmap(
+ codedValues,
+ bitmap,
+ missingValue,
+ binaryScaleFactor,
+ numberOfDataPoints,
+ numberOfValues
+) : dump;
alias data.packedValues = codedValues;
diff --git a/definitions/grib2/typeOfLevelConcept.def b/definitions/grib2/typeOfLevelConcept.def
index 30fad4464..a32abd7e0 100644
--- a/definitions/grib2/typeOfLevelConcept.def
+++ b/definitions/grib2/typeOfLevelConcept.def
@@ -87,3 +87,13 @@
scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=0;}
'waterSurfaceToIsothermalOceanLayer' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=20;
scaledValueOfFirstFixedSurface=0; scaleFactorOfFirstFixedSurface=0;}
+
+'totalSoilLayer' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=151;}
+'rootZone' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=167;}
+'roof' = {typeOfFirstFixedSurface=185; typeOfSecondFixedSurface=255;}
+'roofLayer' = {typeOfFirstFixedSurface=185; typeOfSecondFixedSurface=185;}
+'wall' = {typeOfFirstFixedSurface=186; typeOfSecondFixedSurface=255;}
+'wallLayer' = {typeOfFirstFixedSurface=186; typeOfSecondFixedSurface=186;}
+'road' = {typeOfFirstFixedSurface=187; typeOfSecondFixedSurface=255;}
+'roadLayer' = {typeOfFirstFixedSurface=187; typeOfSecondFixedSurface=187;}
+'urbanCanyon' = {typeOfFirstFixedSurface=187; typeOfSecondFixedSurface=185;}
diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def
index 37540142d..e1ef35857 100644
--- a/definitions/grib2/units.def
+++ b/definitions/grib2/units.def
@@ -23,6 +23,30 @@
scaleFactorOfLowerLimit = 0 ;
probabilityType = 3 ;
}
+#Total precipitation of at least 10 mm
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 10 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#Total precipitation of at least 20 mm
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Total precipitation of at least 40 mm
'%' = {
discipline = 0 ;
@@ -107,6 +131,24 @@
scaleFactorOfLowerLimit = -2 ;
probabilityType = 3 ;
}
+#Stream function
+'m**2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 4 ;
+ }
+#Velocity potential
+'m**2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 5 ;
+ }
+#Potential temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind speed
'm s**-1' = {
discipline = 0 ;
@@ -230,6 +272,12 @@
parameterCategory = 2 ;
parameterNumber = 6 ;
}
+#Pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ }
#Downward UV radiation at the surface
'J m**-2' = {
discipline = 0 ;
@@ -246,6 +294,20 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Convective available potential energy
+'J kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Potential vorticity
+'K m**2 kg**-1 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 14 ;
+ }
#Leaf area index, low vegetation
'm**2 m**-2' = {
discipline = 2 ;
@@ -299,6 +361,88 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Maximum temperature at 2 metres in the last 6 hours
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 2 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Minimum temperature at 2 metres in the last 6 hours
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 3 ;
+ lengthOfTimeRange = 6 ;
+ }
+#Surface emissivity
+'Proportion' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Geopotential
+'m**2 s**-2' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ }
+#Temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#U component of wind
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#V component of wind
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Specific humidity
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Surface pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Vertical velocity
+'Pa s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ }
+#Total column water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Total column vertically-integrated water vapour
'kg m**-2' = {
discipline = 0 ;
@@ -307,6 +451,12 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Vorticity (relative)
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 12 ;
+ }
#Boundary layer dissipation
'J m**-2' = {
discipline = 0 ;
@@ -314,12 +464,69 @@
parameterNumber = 20 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface sensible heat flux
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface latent heat flux
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Charnock
'Numeric' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 76 ;
}
+#Surface net radiation (SW and LW)
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Top net radiation (SW and LW)
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Mean sea level pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ }
+#Divergence
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 13 ;
+ }
+#Geopotential height
+'gpm' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ }
+#Relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
#Boundary layer height
'm' = {
discipline = 0 ;
@@ -350,6 +557,42 @@
parameterCategory = 3 ;
parameterNumber = 22 ;
}
+#10 metre U wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#10 metre V wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#2 metre dewpoint temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Surface short-wave (solar) radiation downwards
'J m**-2' = {
discipline = 0 ;
@@ -358,6 +601,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Land-sea mask
+'(0 - 1)' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Surface roughness (climatological)
'm' = {
discipline = 2 ;
@@ -374,6 +624,22 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Surface net short-wave (solar) radiation
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Surface net long-wave (thermal) radiation
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
#Top net short-wave (solar) radiation
'J m**-2' = {
discipline = 0 ;
@@ -382,22 +648,44 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ;
}
-#Eastward turbulent surface stress
+#Top net long-wave (thermal) radiation
+'J m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress
'N m**-2 s' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
-#Northward turbulent surface stress
+#Time-integrated northward turbulent surface stress
'N m**-2 s' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Sunshine duration
+'s' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Brightness temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 4 ;
+ }
#Eastward gravity wave surface stress
'N m**-2 s' = {
discipline = 0 ;
@@ -447,6 +735,15 @@
parameterCategory = 14 ;
parameterNumber = 1 ;
}
+#10 metre wind speed
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
#Top net short-wave (solar) radiation, clear sky
'J m**-2' = {
discipline = 0 ;
@@ -500,14 +797,14 @@
'N m**-2' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 38 ;
+ parameterNumber = 62 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous northward turbulent surface stress
'N m**-2' = {
discipline = 0 ;
parameterCategory = 2 ;
- parameterNumber = 37 ;
+ parameterNumber = 63 ;
typeOfFirstFixedSurface = 1 ;
}
#Instantaneous surface sensible heat flux
@@ -532,6 +829,13 @@
typeOfFirstFixedSurface = 1 ;
typeOfGeneratingProcess = 9 ;
}
+#Skin temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Temperature of snow layer
'K' = {
discipline = 2 ;
@@ -724,6 +1028,20 @@
parameterCategory = 0 ;
parameterNumber = 89 ;
}
+#U-component of atmospheric surface momentum flux
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#V-component of atmospheric surface momentum flux
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 18 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#U-component of surface momentum flux into ocean
'N m**-2' = {
discipline = 10 ;
@@ -858,6 +1176,15 @@
scaleFactorOfUpperWavePeriodLimit = 0 ;
scaledValueOfUpperWavePeriodLimit = 30 ;
}
+#Significant wave height of all waves with period larger than 10s
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfWavePeriodInterval = 3 ;
+ scaleFactorOfLowerWavePeriodLimit = 0 ;
+ scaledValueOfLowerWavePeriodLimit = 10 ;
+ }
#Significant wave height of first swell partition
'm' = {
discipline = 10 ;
@@ -912,6 +1239,30 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
+#Time domain maximum individual crest height
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 94 ;
+ }
+#Time domain maximum individual wave height
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 95 ;
+ }
+#Space time maximum individual crest height
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 96 ;
+ }
+#Space time maximum individual wave height
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 97 ;
+ }
#Wave Spectral Skewness
'Numeric' = {
discipline = 10 ;
@@ -948,6 +1299,34 @@
parameterCategory = 0 ;
parameterNumber = 84 ;
}
+#Time-mean mean zero-crossing wave period
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean significant height of combined wind waves and swell
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean peak wave period
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 34 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean wave period
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean sea water temperature in the upper 300 m
'K' = {
discipline = 10 ;
@@ -3114,6 +3493,386 @@
parameterCategory = 1 ;
parameterNumber = 30 ;
}
+#Vertical divergence
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 59 ;
+ }
+#Drag thermal coefficient
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Drag evaporation coefficient
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 61 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Pressure departure from hydrostatic state
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 46 ;
+ }
+#Surface net radiation flux (SW and LW)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Top net radiation flux (SW and LW)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ }
+#Time-mean top net radiation flux (SW and LW)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Global irradiance on tilted surfaces
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 47 ;
+ }
+#Eady growth rate
+'day**-1' = {
+ discipline = 0 ;
+ parameterCategory = 21 ;
+ parameterNumber = 22 ;
+ }
+#Tropical cyclones track density
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 4 ;
+ }
+#Canopy air temperature
+'K' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 63 ;
+ }
+#Soil wetness index (total layer)
+'Numeric' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Soil wetness index (root zone)
+'Numeric' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 167 ;
+ }
+#Soil wetness index (layer)
+'Numeric' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 30 ;
+ typeOfFirstFixedSurface = 151 ;
+ typeOfSecondFixedSurface = 151 ;
+ }
+#Distance downward from roof surface
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Distance inward from outer wall surface
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Distance downward from road surface
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Renewable power capacity
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production rate
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Renewable power production
+'W s' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Wind power capacity
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production rate
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Wind power production
+'W s' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Solar photovoltaic (PV) power capacity
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production rate
+'W' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Solar photovoltaic (PV) power production
+'W s' = {
+ discipline = 20 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Graupel (snow pellets) precipitation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 75 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated total lightning flash density
+'km**-2' = {
+ discipline = 0 ;
+ parameterCategory = 17 ;
+ parameterNumber = 4 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Maximum total column integrated graupel (snow pellets)
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 74 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Minimum visibility
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Geometric height of theta level above ground
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 107 ;
+ }
+#Pressure at cloud base
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 2 ;
+ }
+#Geometric height of adiabatic condensation level above ground
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 5 ;
+ }
+#Geometric height of free convection level above ground
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 14 ;
+ }
+#Geometric height of neutral buoyancy level above ground
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 16 ;
+ }
+#Geometric height of atmospheric isothermal level above ground
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 34 ;
+ typeOfFirstFixedSurface = 20 ;
+ }
+#Roof temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Wall temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 186 ;
+ }
+#Road temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Snow depth water equivalent on roof
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 185 ;
+ }
+#Snow depth water equivalent on road
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfFirstFixedSurface = 187 ;
+ }
+#Urban canyon temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Urban canyon specific humidity
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 187 ;
+ typeOfSecondFixedSurface = 185 ;
+ }
+#Convective snowfall water equivalent
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 55 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Large-scale snowfall water equivalent
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 56 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Lake surface temperature
+'K' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 255 ;
+ }
+#Surface bulk Richardson number
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Time-maximum 2 metre relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ }
+#Time-minimum 2 metre relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 3 ;
+ }
+#Surface roughness for heat
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 47 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Surface roughness for moisture
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 48 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Burned area
'%' = {
discipline = 2 ;
@@ -3156,6 +3915,60 @@
parameterCategory = 4 ;
parameterNumber = 25 ;
}
+#Live leaf fuel load
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ }
+#Live wood fuel load
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 28 ;
+ }
+#Dead leaf fuel load
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 29 ;
+ }
+#Dead wood fuel load
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 30 ;
+ }
+#Live fuel moisture content
+'kg kg**-1' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 31 ;
+ }
+#Fine dead leaf moisture content
+'kg kg**-1' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 32 ;
+ }
+#Dense dead leaf moisture content
+'kg kg**-1' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 33 ;
+ }
+#Fine dead wood moisture content
+'kg kg**-1' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 34 ;
+ }
+#Dense dead wood moisture content
+'kg kg**-1' = {
+ discipline = 2 ;
+ parameterCategory = 4 ;
+ parameterNumber = 35 ;
+ }
#Time-integrated total column vertically-integrated eastward geopotential flux
'J m**-1' = {
discipline = 0 ;
@@ -3745,6 +4558,22 @@
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
+#Mean eastward turbulent surface stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 62 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean northward turbulent surface stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 63 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Mean evaporation rate
'kg m**-2 s**-1' = {
discipline = 0 ;
@@ -3919,6 +4748,331 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean evapotranspiration flux
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time integral of potential evapotranspiration rate
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-mean potential evapotranspiration rate
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean volumetric soil moisture
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth water equivalent
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean skin temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow density
+'kg m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 61 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean low vegetation cover
+'(0 - 1)' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 53 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean high vegetation cover
+'(0 - 1)' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 54 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea ice area fraction
+'(0 - 1)' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean sea surface temperature
+'K' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, low vegetation
+'m**2 m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 55 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean leaf area index, high vegetation
+'m**2 m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 56 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column liquid water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 69 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column cloud ice water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 70 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre specific humidity
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer temperature
+'K' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean lake mix-layer depth
+'m' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 166 ;
+ typeOfSecondFixedSurface = 255 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean fraction of snow cover
+'Proportion' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 121 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean soil temperature
+'K' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow depth
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean snow cover
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean geopotential
+'m**2 s**-2' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 4 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean U component of wind
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean V component of wind
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean specific humidity
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean surface pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertical velocity
+'Pa s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically-integrated water vapour
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean mean sea level pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 101 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean boundary layer height
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 18 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre U wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 10 metre V wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean 2 metre dewpoint temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean temperature of snow layer
+'K' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 28 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast surface roughness
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean forecast logarithm of surface roughness for heat
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 54 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Cross sectional area of flow in channel
'm**2' = {
discipline = 1 ;
@@ -4023,6 +5177,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
+#Lake depth
+'m' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River depth
+'m' = {
+ discipline = 1 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 162 ;
+ }
+#River outflow of water
+'m**3 s**-1' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ }
+#Floodplain outflow of water
+'m**3 s**-1' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Floodpath outflow of water
+'m**3 s**-1' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
#Latitude
'Degree N' = {
discipline = 0 ;
@@ -4123,6 +5311,138 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Latent heat net flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Heat index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Wind chill factor
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Minimum dew point depression
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Snow phase change heat flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Vapor pressure
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Large scale precipitation (non-convective)
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Snowfall rate water equivalent
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Convective snow
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 14 ;
+ }
+#Large scale snow
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 15 ;
+ }
+#Snow age
+'day' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 17 ;
+ }
+#Absolute humidity
+'kg m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 18 ;
+ }
+#Precipitation type
+'code table (4.201)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 19 ;
+ }
+#Integrated liquid water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 20 ;
+ }
+#Condensate
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 21 ;
+ }
+#Cloud mixing ratio
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 22 ;
+ }
+#Ice water mixing ratio
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 23 ;
+ }
+#Rain mixing ratio
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 24 ;
+ }
+#Snow mixing ratio
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal moisture convergence
+'kg kg**-1 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 26 ;
+ }
+#Maximum relative humidity
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 27 ;
+ }
+#Maximum absolute humidity
+'kg m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 28 ;
+ }
#Total snowfall
'm' = {
discipline = 0 ;
@@ -4131,6 +5451,579 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Precipitable water category
+'code table (4.202)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 30 ;
+ }
+#Hail
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 31 ;
+ }
+#Graupel (snow pellets)
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 32 ;
+ }
+#Categorical rain
+'(Code table 4.222)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 33 ;
+ }
+#Categorical freezing rain
+'(Code table 4.222)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 34 ;
+ }
+#Categorical ice pellets
+'(Code table 4.222)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 35 ;
+ }
+#Categorical snow
+'(Code table 4.222)' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 36 ;
+ }
+#Convective precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 37 ;
+ }
+#Horizontal moisture divergence
+'kg kg**-1 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 38 ;
+ }
+#Percent frozen precipitation
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 39 ;
+ }
+#Potential evaporation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 40 ;
+ }
+#Snow cover
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 42 ;
+ }
+#Rain fraction of total cloud water
+'Proportion' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 43 ;
+ }
+#Rime factor
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 44 ;
+ }
+#Total column integrated rain
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 45 ;
+ }
+#Total column integrated snow
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 46 ;
+ }
+#Large scale water precipitation (non-convective)
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 47 ;
+ }
+#Convective water precipitation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 48 ;
+ }
+#Total water precipitation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 49 ;
+ }
+#Total snow precipitation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Total column water (Vertically integrated total water (vapour + cloud water/ice))
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 51 ;
+ }
+#Total precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 52 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
+#Total snowfall rate water equivalent
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 53 ;
+ }
+#Large scale precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 54 ;
+ }
+#Total snowfall rate
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 57 ;
+ }
+#Convective snowfall rate
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 58 ;
+ }
+#Large scale snowfall rate
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 59 ;
+ }
+#Water equivalent of accumulated snow depth (deprecated)
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Rain precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 65 ;
+ }
+#Snow precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 66 ;
+ }
+#Freezing rain precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 67 ;
+ }
+#Ice pellets precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 68 ;
+ }
+#Maximum wind speed
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 21 ;
+ }
+#Wind speed (gust)
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ }
+#u-component of wind (gust)
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 23 ;
+ }
+#v-component of wind (gust)
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 24 ;
+ }
+#Vertical speed shear
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 25 ;
+ }
+#Horizontal momentum flux
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 26 ;
+ }
+#U-component storm motion
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 27 ;
+ }
+#V-component storm motion
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 28 ;
+ }
+#Drag coefficient
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 29 ;
+ }
+#Frictional velocity
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 30 ;
+ }
+#Pressure reduced to MSL
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 1 ;
+ }
+#Altimeter setting
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Thickness
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Pressure altitude
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Density altitude
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#5-wave geopotential height
+'gpm' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Zonal flux of gravity wave stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Meridional flux of gravity wave stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#5-wave geopotential height anomaly
+'gpm' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 19 ;
+ }
+#Net short-wave radiation flux (top of atmosphere)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Downward short-wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 7 ;
+ }
+#Upward short-wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 8 ;
+ }
+#Net short wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 9 ;
+ }
+#Photosynthetically active radiation
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 10 ;
+ }
+#Net short-wave radiation flux, clear sky
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 11 ;
+ }
+#Downward UV radiation
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 12 ;
+ }
+#UV index (under clear sky)
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ }
+#UV index
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 51 ;
+ }
+#Net long wave radiation flux (surface)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 0 ;
+ }
+#Net long wave radiation flux (top of atmosphere)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 1 ;
+ }
+#Downward long-wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 3 ;
+ }
+#Upward long-wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 4 ;
+ }
+#Net long wave radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 5 ;
+ }
+#Net long-wave radiation flux, clear sky
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 5 ;
+ parameterNumber = 6 ;
+ }
+#Cloud Ice
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 0 ;
+ }
+#Cloud water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 6 ;
+ }
+#Cloud amount
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 7 ;
+ }
+#Cloud type
+'code table (4.203)' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 8 ;
+ }
+#Thunderstorm maximum tops
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 9 ;
+ }
+#Thunderstorm coverage
+'code table (4.204)' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 10 ;
+ }
+#Cloud top
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 12 ;
+ }
+#Ceiling
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 13 ;
+ }
+#Non-convective cloud cover
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 14 ;
+ }
+#Cloud work function
+'J kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 15 ;
+ }
+#Convective cloud efficiency
+'Proportion' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 16 ;
+ }
+#Total condensate
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 17 ;
+ }
+#Total column-integrated cloud water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 18 ;
+ }
+#Total column-integrated cloud ice
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 19 ;
+ }
+#Total column-integrated condensate
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 20 ;
+ }
+#Ice fraction of total condensate
+'Proportion' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 21 ;
+ }
+#Cloud ice mixing ratio
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 23 ;
+ }
+#Sunshine
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 24 ;
+ }
+#Horizontal extent of cumulonimbus (CB)
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 6 ;
+ parameterNumber = 25 ;
+ }
+#K index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 2 ;
+ }
+#KO index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 3 ;
+ }
+#Total totals index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 4 ;
+ }
+#Sweat index
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 5 ;
+ }
+#Storm relative helicity
+'m**2 s**-2' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 8 ;
+ }
+#Energy helicity index
+'Numeric' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 9 ;
+ }
+#Surface lifted index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 10 ;
+ }
+#Best (4-layer) lifted index
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 11 ;
+ }
+#Aerosol type
+'code table (4.205)' = {
+ discipline = 0 ;
+ parameterCategory = 13 ;
+ parameterNumber = 0 ;
+ }
+#Total ozone
+'DU' = {
+ discipline = 0 ;
+ parameterCategory = 14 ;
+ parameterNumber = 0 ;
+ }
#Total column integrated ozone
'DU' = {
discipline = 0 ;
@@ -4139,6 +6032,588 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
+#Base spectrum width
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 0 ;
+ }
+#Base reflectivity
+'dB' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 1 ;
+ }
+#Base radial velocity
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 2 ;
+ }
+#Vertically-integrated liquid
+'kg m**-1' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 3 ;
+ }
+#Layer-maximum base reflectivity
+'dB' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 4 ;
+ }
+#Precipitation
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 5 ;
+ }
+#Air concentration of Caesium 137
+'Bq m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 0 ;
+ }
+#Air concentration of Iodine 131
+'Bq m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 1 ;
+ }
+#Air concentration of radioactive pollutant
+'Bq m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 2 ;
+ }
+#Ground deposition of Caesium 137
+'Bq m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 3 ;
+ }
+#Ground deposition of Iodine 131
+'Bq m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 4 ;
+ }
+#Ground deposition of radioactive pollutant
+'Bq m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 5 ;
+ }
+#Time-integrated air concentration of caesium pollutant
+'Bq s m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 6 ;
+ }
+#Time-integrated air concentration of iodine pollutant
+'Bq s m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 7 ;
+ }
+#Time-integrated air concentration of radioactive pollutant
+'Bq s m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 18 ;
+ parameterNumber = 8 ;
+ }
+#Volcanic ash
+'code table (4.206)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 4 ;
+ }
+#Icing top
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 5 ;
+ }
+#Icing base
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 6 ;
+ }
+#Icing
+'code table (4.207)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 7 ;
+ }
+#Turbulence top
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 8 ;
+ }
+#Turbulence base
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 9 ;
+ }
+#Turbulence
+'code table (4.208)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 10 ;
+ }
+#Turbulent kinetic energy
+'J kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 11 ;
+ }
+#Planetary boundary layer regime
+'code table (4.209)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 12 ;
+ }
+#Contrail intensity
+'code table (4.210)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 13 ;
+ }
+#Contrail engine type
+'code table (4.211)' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 14 ;
+ }
+#Contrail top
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 15 ;
+ }
+#Contrail base
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 16 ;
+ }
+#Maximum snow albedo
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 17 ;
+ }
+#Snow free albedo
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 18 ;
+ }
+#Icing
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 20 ;
+ }
+#In-cloud turbulence
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 21 ;
+ }
+#Relative clear air turbulence (RCAT)
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 22 ;
+ }
+#Supercooled large droplet probability (see Note 4)
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 23 ;
+ }
+#Arbitrary text string
+'CCITTIA5' = {
+ discipline = 0 ;
+ parameterCategory = 190 ;
+ parameterNumber = 0 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'s' = {
+ discipline = 0 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
+'kg m**-2' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
+'kg m**-2' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Remotely sensed snow cover
+'(code table 4.215)' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
+#Elevation of snow covered terrain
+'(code table 4.216)' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Snow water equivalent percent of normal
+'%' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Baseflow-groundwater runoff
+'kg m**-2' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Storm surface runoff
+'kg m**-2' = {
+ discipline = 1 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
+'kg m**-2' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
+'%' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Probability of 0.01 inch of precipitation (POP)
+'%' = {
+ discipline = 1 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Vegetation
+'%' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Water runoff
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Evapotranspiration
+'kg**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Model terrain height
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Land use
+'code table (4.212)' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Ground heat flux
+'W m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Moisture availability
+'%' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Exchange coefficient
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Plant canopy surface water
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Blackadar mixing length scale
+'m' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 14 ;
+ }
+#Canopy conductance
+'m s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 15 ;
+ }
+#Minimal stomatal resistance
+'s m**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 16 ;
+ }
+#Solar parameter in canopy conductance
+'Proportion' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 18 ;
+ }
+#Temperature parameter in canopy conductance
+'Proportion' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 19 ;
+ }
+#Soil moisture parameter in canopy conductance
+'Proportion' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 20 ;
+ }
+#Humidity parameter in canopy conductance
+'Proportion' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#Column-integrated soil water
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 23 ;
+ }
+#Heat flux
+'W m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+ }
+#Volumetric soil moisture
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ }
+#Volumetric wilting point
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 27 ;
+ }
+#Number of soil layers in root zone
+'Numeric' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Liquid volumetric soil moisture (non-frozen)
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Volumetric transpiration stress-onset (soil moisture)
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 11 ;
+ }
+#Transpiration stress-onset (soil moisture)
+'kg m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 12 ;
+ }
+#Volumetric direct evaporation cease (soil moisture)
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 13 ;
+ }
+#Direct evaporation cease (soil moisture)
+'kg m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 14 ;
+ }
+#Soil porosity
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 15 ;
+ }
+#Volumetric saturation of soil moisture
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 16 ;
+ }
+#Saturation of soil moisture
+'kg m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 3 ;
+ parameterNumber = 17 ;
+ }
+#Estimated precipitation
+'kg m**-2' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Instantaneous rain rate
+'kg m**-2 s**-1' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Cloud top height
+'m' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 2 ;
+ }
+#Cloud top height quality indicator
+'Code table 4.219' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Estimated u component of wind
+'m s**-1' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 4 ;
+ }
+#Estimated v component of wind
+'m s**-1' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Number of pixels used
+'Numeric' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 6 ;
+ }
+#Solar zenith angle
+'Degree' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Relative azimuth angle
+'Degree' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 8 ;
+ }
+#Reflectance in 0.6 micron channel
+'%' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 9 ;
+ }
+#Reflectance in 0.8 micron channel
+'%' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Reflectance in 1.6 micron channel
+'%' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 11 ;
+ }
+#Reflectance in 3.9 micron channel
+'%' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 12 ;
+ }
+#Atmospheric divergence
+'s**-1' = {
+ discipline = 3 ;
+ parameterCategory = 1 ;
+ parameterNumber = 13 ;
+ }
+#Direction of wind waves
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Primary wave direction
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 10 ;
+ }
+#Primary wave mean period
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 11 ;
+ }
+#Secondary wave mean period
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 13 ;
+ }
+#Current direction
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 0 ;
+ }
+#Current speed
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 1 ;
+ parameterNumber = 1 ;
+ }
+#Geometric vertical velocity
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 9 ;
+ }
+#Seconds prior to initial reference time (defined in Section 1)
+'s' = {
+ discipline = 10 ;
+ parameterCategory = 191 ;
+ parameterNumber = 0 ;
+ }
#2 metre relative humidity
'%' = {
discipline = 0 ;
@@ -4195,26 +6670,6 @@
parameterCategory = 4 ;
parameterNumber = 14 ;
}
-#Evaporation in the last 6 hours
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 6 ;
- }
-#Evaporation in the last 24 hours
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 79 ;
- typeOfFirstFixedSurface = 1 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
#Fraction of snow cover
'Proportion' = {
discipline = 0 ;
@@ -4353,6 +6808,13 @@
parameterCategory = 3 ;
parameterNumber = 19 ;
}
+#Leaf Area Index
+'Numeric' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 28 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Accumulated surface upward short-wave radiation flux, clear sky
'J m**-2' = {
discipline = 0 ;
@@ -4375,104 +6837,29 @@
parameterCategory = 0 ;
parameterNumber = 39 ;
}
-#Time-mean evapotranspiration rate in the last 24h
-'kg m**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 39 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Potential evapotranspiration rate
'kg m**-2 s**-1' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 40 ;
}
-#Time-integrated potential evapotranspiration rate in the last 24h
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean potential evapotranspiration rate in the last 24h
-'kg m**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 40 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean volumetric soil moisture
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Water runoff and drainage rate
'kg m**-2 s**-1' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 42 ;
}
-#Time-integrated water runoff and drainage rate in the last 24h
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean water runoff and drainage rate in the last 24h
-'kg m**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 42 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean snow depth water equivalent
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 60 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
-#Time-mean skin temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 0 ;
- lengthOfTimeRange = 24 ;
- }
#Snow melt rate
'kg m**-2 s**-1' = {
discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
}
-#Time-integrated snow melt rate in the last 24h
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 41 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 1 ;
- lengthOfTimeRange = 24 ;
+#Forecast albedo
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 1 ;
}
#Cloudy brightness temperature
'K' = {
@@ -4735,6 +7122,52 @@
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 255 ;
}
+#Time-integrated eastward turbulent surface stress due to orographic form drag
+'N m**-2 s' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 64 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to orographic form drag
+'N m**-2 s' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 65 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated eastward turbulent surface stress due to surface roughness
+'N m**-2 s' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 66 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Time-integrated northward turbulent surface stress due to surface roughness
+'N m**-2 s' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 67 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ }
+#Saturation specific humidity with respect to water
+'kg m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 168 ;
+ }
+#Total column integrated saturation specific humidity with respect to water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 169 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
#Universal thermal climate index
'K' = {
discipline = 20 ;
@@ -5671,6 +8104,54 @@
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
+#Sea surface salinity
+'kg kg**-1' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
+#Vertically integrated sea water practical salinity in the upper 300 m
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Vertically integrated sea water practical salinity in the upper 700 m
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ }
+#Total column vertically integrated sea water practical salinity
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ }
#Sea water practical salinity
'g kg**-1' = {
discipline = 10 ;
@@ -5733,7 +8214,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
}
#Sea water potential temperature tendency due to newtonian relaxation
'K s**-1' = {
@@ -6779,6 +9262,13 @@
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface height with inverse barometer correction
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 20 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean average sea water potential temperature in the upper 300m
'K' = {
discipline = 10 ;
@@ -6792,6 +9282,58 @@
scaleFactorOfSecondFixedSurface = 0 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea surface salinity
+'kg kg**-1' = {
+ discipline = 10 ;
+ parameterCategory = 3 ;
+ parameterNumber = 21 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 300 m
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 300 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean vertically integrated sea water practical salinity in the upper 700 m
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 160 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = 700 ;
+ scaleFactorOfSecondFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Time-mean total column vertically integrated sea water practical salinity
+'g kg**-1 m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 50 ;
+ typeOfFirstFixedSurface = 160 ;
+ typeOfSecondFixedSurface = 9 ;
+ scaledValueOfFirstFixedSurface = 0 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean sea water practical salinity
'g kg**-1' = {
discipline = 10 ;
@@ -6861,7 +9403,9 @@
parameterCategory = 4 ;
parameterNumber = 27 ;
typeOfFirstFixedSurface = 168 ;
- typeOfSecondFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 255 ;
+ scaledValueOfSecondFixedSurface = missing() ;
+ scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean sea water potential temperature tendency due to newtonian relaxation
@@ -6936,6 +9480,15 @@
typeOfSecondFixedSurface = 168 ;
typeOfStatisticalProcessing = 0 ;
}
+#Time-mean sea water salinity
+'kg kg**-1' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Time-mean net short wave radiation rate at sea surface
'W m**-2' = {
discipline = 0 ;
@@ -7122,6 +9675,8 @@
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
}
#Mass mixing ratio
'kg kg**-1' = {
@@ -7451,6 +10006,56 @@
parameterCategory = 20 ;
parameterNumber = 59 ;
}
+#Mass mixing ratio from volcanoes
+'kg kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 2 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Total column vertically-integrated mass density from volcanoes
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Dry deposition velocity from volcanoes
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 20 ;
+ parameterNumber = 15 ;
+ is_chemical_srcsink = 1 ;
+ sourceSinkChemicalPhysicalProcess = 7 ;
+ }
+#Pressure tendency
+'Pa s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 2 ;
+ }
+#ICAO Standard Atmosphere reference height
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 3 ;
+ }
+#Geometrical height
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 6 ;
+ }
+#Standard deviation of height
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 7 ;
+ }
#Virtual potential temperature
'K' = {
discipline = 0 ;
@@ -7463,12 +10068,222 @@
parameterCategory = 0 ;
parameterNumber = 3 ;
}
+#Maximum temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 4 ;
+ }
+#Minimum temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 5 ;
+ }
+#Dew point temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 6 ;
+ }
+#Lapse rate
+'K m**-1' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 8 ;
+ }
+#Visibility
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 0 ;
+ }
+#Radar spectra (1)
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 6 ;
+ }
+#Radar spectra (2)
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 7 ;
+ }
+#Radar spectra (3)
+'~' = {
+ discipline = 0 ;
+ parameterCategory = 15 ;
+ parameterNumber = 8 ;
+ }
+#Parcel lifted index (to 500 hPa)
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 0 ;
+ }
+#Temperature anomaly
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 9 ;
+ }
+#Pressure anomaly
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 8 ;
+ }
+#Geopotential height anomaly
+'gpm' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 9 ;
+ }
+#Wave spectra (1)
+'~' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ }
+#Wave spectra (2)
+'~' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 1 ;
+ }
+#Wave spectra (3)
+'~' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 2 ;
+ }
#Wind direction
'Degree true' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 0 ;
}
+#Sigma coordinate vertical velocity
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
+#Absolute vorticity
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 10 ;
+ }
+#Absolute divergence
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 11 ;
+ }
+#Vertical u-component shear
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 15 ;
+ }
+#Vertical v-component shear
+'s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 16 ;
+ }
+#Precipitable water
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 3 ;
+ }
+#Saturation deficit
+'Pa' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 5 ;
+ }
+#Precipitation rate
+'kg m**-2 s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 7 ;
+ }
+#Thunderstorm probability
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 2 ;
+ }
+#Convective precipitation (water)
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 10 ;
+ }
+#Mixed layer depth
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 3 ;
+ }
+#Transient thermocline depth
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 2 ;
+ }
+#Main thermocline anomaly
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 1 ;
+ }
+#Best lifted index (to 500 hPa)
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 1 ;
+ }
+#Soil moisture content
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 3 ;
+ }
+#Salinity
+'kg kg**-1' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Density
+'kg m**-3' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 10 ;
+ }
+#Direction of ice drift
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ }
+#Speed of ice drift
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ }
+#Ice divergence
+'s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 2 ;
+ parameterNumber = 7 ;
+ }
#Snowmelt
'kg m**-2' = {
discipline = 2 ;
@@ -7477,17 +10292,87 @@
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
+#Direction of swell waves
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 7 ;
+ }
+#Secondary wave direction
+'Degree true' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 12 ;
+ }
+#Net short-wave radiation flux (surface)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 0 ;
+ }
+#Global radiation flux
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 3 ;
+ }
+#Radiance (with respect to wave number)
+'W m**-1 sr**-1' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 5 ;
+ }
+#Radiance (with respect to wave length)
+'W m**-3 sr**-1' = {
+ discipline = 0 ;
+ parameterCategory = 4 ;
+ parameterNumber = 6 ;
+ }
+#Wind mixing energy
+'J' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 19 ;
+ }
+#10 metre wind gust of at least 15 m/s
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 15 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
+#10 metre wind gust of at least 20 m/s
+'%' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 22 ;
+ productDefinitionTemplateNumber = 9 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 2 ;
+ scaledValueOfLowerLimit = 20 ;
+ scaleFactorOfLowerLimit = 0 ;
+ probabilityType = 3 ;
+ }
#Period corresponding to maximum individual wave height
's' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 23 ;
}
-#Maximum individual wave height
+#Envelop-maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
- parameterNumber = 24 ;
+ parameterNumber = 93 ;
}
#Model bathymetry
'm' = {
@@ -7675,20 +10560,6 @@
parameterCategory = 0 ;
parameterNumber = 44 ;
}
-#Eastward sea water velocity
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 160 ;
- }
-#Northward sea water velocity
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 160 ;
- }
#Skin reservoir content
'kg m**-2' = {
discipline = 2 ;
@@ -7881,6 +10752,14 @@
parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ;
}
+#Time-mean surface net radiation flux (SW and LW)
+'W m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 19 ;
+ parameterNumber = 46 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Surface runoff
'kg m**-2' = {
discipline = 2 ;
@@ -7955,12 +10834,47 @@
typeOfGeneratingProcess = 20 ;
is_chemical = 1 ;
}
+#Convective inhibition
+'J kg**-1' = {
+ discipline = 0 ;
+ parameterCategory = 7 ;
+ parameterNumber = 7 ;
+ typeOfFirstFixedSurface = 1 ;
+ typeOfSecondFixedSurface = 8 ;
+ }
+#Orography
+'m' = {
+ discipline = 0 ;
+ parameterCategory = 3 ;
+ parameterNumber = 5 ;
+ typeOfFirstFixedSurface = 1 ;
+ }
#Friction velocity
'm s**-1' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
+#Mean 2 metre temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 0 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 2 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
+#Mean of 10 metre wind speed
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 1 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 10 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ typeOfStatisticalProcessing = 0 ;
+ }
#Lake total depth
'm' = {
discipline = 1 ;
@@ -8061,6 +10975,12 @@
parameterCategory = 19 ;
parameterNumber = 43 ;
}
+#Soil moisture
+'kg m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
#10 metre u-component of neutral wind
'm s**-1' = {
discipline = 0 ;
@@ -8079,1957 +10999,6 @@
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
-#U-component surface stokes drift
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#V-component surface stokes drift
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
-#100 metre U wind component
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#100 metre V wind component
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 100 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Total precipitation of at least 10 mm
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 10 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Total precipitation of at least 20 mm
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Stream function
-'m**2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 4 ;
- }
-#Velocity potential
-'m**2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 5 ;
- }
-#Potential temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Pressure
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- }
-#Convective available potential energy
-'J kg**-1' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Potential vorticity
-'K m**2 kg**-1 s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 14 ;
- }
-#Maximum temperature at 2 metres in the last 6 hours
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 2 ;
- lengthOfTimeRange = 6 ;
- }
-#Minimum temperature at 2 metres in the last 6 hours
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- indicatorOfUnitForTimeRange = 1 ;
- typeOfStatisticalProcessing = 3 ;
- lengthOfTimeRange = 6 ;
- }
-#Geopotential
-'m**2 s**-2' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 4 ;
- }
-#Temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#U component of wind
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#V component of wind
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Specific humidity
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Surface pressure
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Vertical velocity
-'Pa s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 8 ;
- }
-#Total column water
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Vorticity (relative)
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 12 ;
- }
-#Surface sensible heat flux
-'J m**-2' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface latent heat flux
-'J m**-2' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Mean sea level pressure
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 101 ;
- }
-#Divergence
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 13 ;
- }
-#Geopotential height
-'gpm' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- }
-#Relative humidity
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#10 metre U wind component
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#10 metre V wind component
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#2 metre dewpoint temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 2 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Land-sea mask
-'(0 - 1)' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Surface net short-wave (solar) radiation
-'J m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Surface net long-wave (thermal) radiation
-'J m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Top net long-wave (thermal) radiation
-'J m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 8 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Sunshine duration
-'s' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfStatisticalProcessing = 1 ;
- }
-#Brightness temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 4 ;
- }
-#10 metre wind speed
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 1 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- }
-#Skin temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 17 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Latent heat net flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Heat index
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Wind chill factor
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Minimum dew point depression
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Snow phase change heat flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Vapor pressure
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Large scale precipitation (non-convective)
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Snowfall rate water equivalent
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Convective snow
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 14 ;
- }
-#Large scale snow
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 15 ;
- }
-#Snow age
-'day' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 17 ;
- }
-#Absolute humidity
-'kg m**-3' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 18 ;
- }
-#Precipitation type
-'code table (4.201)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 19 ;
- }
-#Integrated liquid water
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 20 ;
- }
-#Condensate
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 21 ;
- }
-#Cloud mixing ratio
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 22 ;
- }
-#Ice water mixing ratio
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 23 ;
- }
-#Rain mixing ratio
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 24 ;
- }
-#Snow mixing ratio
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 25 ;
- }
-#Horizontal moisture convergence
-'kg kg**-1 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 26 ;
- }
-#Maximum relative humidity
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 27 ;
- }
-#Maximum absolute humidity
-'kg m**-3' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 28 ;
- }
-#Precipitable water category
-'code table (4.202)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 30 ;
- }
-#Hail
-'m' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 31 ;
- }
-#Graupel (snow pellets)
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 32 ;
- }
-#Categorical rain
-'(Code table 4.222)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 33 ;
- }
-#Categorical freezing rain
-'(Code table 4.222)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 34 ;
- }
-#Categorical ice pellets
-'(Code table 4.222)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 35 ;
- }
-#Categorical snow
-'(Code table 4.222)' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 36 ;
- }
-#Convective precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 37 ;
- }
-#Horizontal moisture divergence
-'kg kg**-1 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 38 ;
- }
-#Percent frozen precipitation
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 39 ;
- }
-#Potential evaporation
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 40 ;
- }
-#Snow cover
-'%' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 42 ;
- }
-#Rain fraction of total cloud water
-'Proportion' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 43 ;
- }
-#Rime factor
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 44 ;
- }
-#Total column integrated rain
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 45 ;
- }
-#Total column integrated snow
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 46 ;
- }
-#Large scale water precipitation (non-convective)
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 47 ;
- }
-#Convective water precipitation
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 48 ;
- }
-#Total water precipitation
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 49 ;
- }
-#Total snow precipitation
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 50 ;
- }
-#Total column water (Vertically integrated total water (vapour + cloud water/ice))
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 51 ;
- }
-#Total precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 52 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Total snowfall rate water equivalent
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 53 ;
- }
-#Large scale precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 54 ;
- }
-#Total snowfall rate
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 57 ;
- }
-#Convective snowfall rate
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 58 ;
- }
-#Large scale snowfall rate
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 59 ;
- }
-#Water equivalent of accumulated snow depth (deprecated)
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Rain precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 65 ;
- }
-#Snow precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 66 ;
- }
-#Freezing rain precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 67 ;
- }
-#Ice pellets precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 68 ;
- }
-#Momentum flux, u component
-'N m**-2' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 17 ;
- }
-#Momentum flux, v component
-'N m**-2' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 18 ;
- }
-#Maximum wind speed
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 21 ;
- }
-#Wind speed (gust)
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- }
-#u-component of wind (gust)
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 23 ;
- }
-#v-component of wind (gust)
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 24 ;
- }
-#Vertical speed shear
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 25 ;
- }
-#Horizontal momentum flux
-'N m**-2' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 26 ;
- }
-#U-component storm motion
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 27 ;
- }
-#V-component storm motion
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 28 ;
- }
-#Drag coefficient
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 29 ;
- }
-#Frictional velocity
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 30 ;
- }
-#Pressure reduced to MSL
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 1 ;
- }
-#Altimeter setting
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Thickness
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Pressure altitude
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Density altitude
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#5-wave geopotential height
-'gpm' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Zonal flux of gravity wave stress
-'N m**-2' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Meridional flux of gravity wave stress
-'N m**-2' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#5-wave geopotential height anomaly
-'gpm' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 19 ;
- }
-#Net short-wave radiation flux (top of atmosphere)
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Downward short-wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 7 ;
- }
-#Upward short-wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 8 ;
- }
-#Net short wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 9 ;
- }
-#Photosynthetically active radiation
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 10 ;
- }
-#Net short-wave radiation flux, clear sky
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 11 ;
- }
-#Downward UV radiation
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 12 ;
- }
-#UV index (under clear sky)
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 50 ;
- }
-#UV index
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 51 ;
- }
-#Net long wave radiation flux (surface)
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 0 ;
- }
-#Net long wave radiation flux (top of atmosphere)
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 1 ;
- }
-#Downward long-wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 3 ;
- }
-#Upward long-wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 4 ;
- }
-#Net long wave radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 5 ;
- }
-#Net long-wave radiation flux, clear sky
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 5 ;
- parameterNumber = 6 ;
- }
-#Cloud Ice
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 0 ;
- }
-#Cloud water
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 6 ;
- }
-#Cloud amount
-'%' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 7 ;
- }
-#Cloud type
-'code table (4.203)' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 8 ;
- }
-#Thunderstorm maximum tops
-'m' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 9 ;
- }
-#Thunderstorm coverage
-'code table (4.204)' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 10 ;
- }
-#Cloud top
-'m' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 12 ;
- }
-#Ceiling
-'m' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 13 ;
- }
-#Non-convective cloud cover
-'%' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 14 ;
- }
-#Cloud work function
-'J kg**-1' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 15 ;
- }
-#Convective cloud efficiency
-'Proportion' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 16 ;
- }
-#Total condensate
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 17 ;
- }
-#Total column-integrated cloud water
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 18 ;
- }
-#Total column-integrated cloud ice
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 19 ;
- }
-#Total column-integrated condensate
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 20 ;
- }
-#Ice fraction of total condensate
-'Proportion' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 21 ;
- }
-#Cloud ice mixing ratio
-'kg kg**-1' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 23 ;
- }
-#Sunshine
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 24 ;
- }
-#Horizontal extent of cumulonimbus (CB)
-'%' = {
- discipline = 0 ;
- parameterCategory = 6 ;
- parameterNumber = 25 ;
- }
-#K index
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 2 ;
- }
-#KO index
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 3 ;
- }
-#Total totals index
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 4 ;
- }
-#Sweat index
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 5 ;
- }
-#Storm relative helicity
-'m**2 s**-2' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 8 ;
- }
-#Energy helicity index
-'Numeric' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 9 ;
- }
-#Surface lifted index
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 10 ;
- }
-#Best (4-layer) lifted index
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 11 ;
- }
-#Aerosol type
-'code table (4.205)' = {
- discipline = 0 ;
- parameterCategory = 13 ;
- parameterNumber = 0 ;
- }
-#Total ozone
-'DU' = {
- discipline = 0 ;
- parameterCategory = 14 ;
- parameterNumber = 0 ;
- }
-#Base spectrum width
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 0 ;
- }
-#Base reflectivity
-'dB' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 1 ;
- }
-#Base radial velocity
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 2 ;
- }
-#Vertically-integrated liquid
-'kg m**-1' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 3 ;
- }
-#Layer-maximum base reflectivity
-'dB' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 4 ;
- }
-#Precipitation
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 5 ;
- }
-#Air concentration of Caesium 137
-'Bq m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 0 ;
- }
-#Air concentration of Iodine 131
-'Bq m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 1 ;
- }
-#Air concentration of radioactive pollutant
-'Bq m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 2 ;
- }
-#Ground deposition of Caesium 137
-'Bq m**-2' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 3 ;
- }
-#Ground deposition of Iodine 131
-'Bq m**-2' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 4 ;
- }
-#Ground deposition of radioactive pollutant
-'Bq m**-2' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 5 ;
- }
-#Time-integrated air concentration of caesium pollutant
-'Bq s m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 6 ;
- }
-#Time-integrated air concentration of iodine pollutant
-'Bq s m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 7 ;
- }
-#Time-integrated air concentration of radioactive pollutant
-'Bq s m**-3' = {
- discipline = 0 ;
- parameterCategory = 18 ;
- parameterNumber = 8 ;
- }
-#Volcanic ash
-'code table (4.206)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 4 ;
- }
-#Icing top
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 5 ;
- }
-#Icing base
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 6 ;
- }
-#Icing
-'code table (4.207)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 7 ;
- }
-#Turbulence top
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 8 ;
- }
-#Turbulence base
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 9 ;
- }
-#Turbulence
-'code table (4.208)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 10 ;
- }
-#Turbulent kinetic energy
-'J kg**-1' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 11 ;
- }
-#Planetary boundary layer regime
-'code table (4.209)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 12 ;
- }
-#Contrail intensity
-'code table (4.210)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 13 ;
- }
-#Contrail engine type
-'code table (4.211)' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 14 ;
- }
-#Contrail top
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 15 ;
- }
-#Contrail base
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 16 ;
- }
-#Maximum snow albedo
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 17 ;
- }
-#Snow free albedo
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 18 ;
- }
-#Icing
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 20 ;
- }
-#In-cloud turbulence
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 21 ;
- }
-#Relative clear air turbulence (RCAT)
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 22 ;
- }
-#Supercooled large droplet probability (see Note 4)
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 23 ;
- }
-#Arbitrary text string
-'CCITTIA5' = {
- discipline = 0 ;
- parameterCategory = 190 ;
- parameterNumber = 0 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'s' = {
- discipline = 0 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Flash flood guidance (Encoded as an accumulation over a floating subinterval of time between the ref
-'kg m**-2' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Flash flood runoff (Encoded as an accumulation over a floating subinterval of time)
-'kg m**-2' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Remotely sensed snow cover
-'(code table 4.215)' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Elevation of snow covered terrain
-'(code table 4.216)' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Snow water equivalent percent of normal
-'%' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Baseflow-groundwater runoff
-'kg m**-2' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Storm surface runoff
-'kg m**-2' = {
- discipline = 1 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation)
-'kg m**-2' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over th
-'%' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Probability of 0.01 inch of precipitation (POP)
-'%' = {
- discipline = 1 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Vegetation
-'%' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Water runoff
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Evapotranspiration
-'kg**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Model terrain height
-'m' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Land use
-'code table (4.212)' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Ground heat flux
-'W m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Moisture availability
-'%' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Exchange coefficient
-'kg m**-2 s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Plant canopy surface water
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Blackadar mixing length scale
-'m' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 14 ;
- }
-#Canopy conductance
-'m s**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 15 ;
- }
-#Minimal stomatal resistance
-'s m**-1' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 16 ;
- }
-#Solar parameter in canopy conductance
-'Proportion' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 18 ;
- }
-#Temperature parameter in canopy conductance
-'Proportion' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 19 ;
- }
-#Soil moisture parameter in canopy conductance
-'Proportion' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 20 ;
- }
-#Humidity parameter in canopy conductance
-'Proportion' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 21 ;
- }
-#Column-integrated soil water
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 23 ;
- }
-#Heat flux
-'W m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 24 ;
- }
-#Volumetric soil moisture
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 25 ;
- }
-#Volumetric wilting point
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 27 ;
- }
-#Number of soil layers in root zone
-'Numeric' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Liquid volumetric soil moisture (non-frozen)
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Volumetric transpiration stress-onset (soil moisture)
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 11 ;
- }
-#Transpiration stress-onset (soil moisture)
-'kg m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 12 ;
- }
-#Volumetric direct evaporation cease (soil moisture)
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 13 ;
- }
-#Direct evaporation cease (soil moisture)
-'kg m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 14 ;
- }
-#Soil porosity
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 15 ;
- }
-#Volumetric saturation of soil moisture
-'m**3 m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 16 ;
- }
-#Saturation of soil moisture
-'kg m**-3' = {
- discipline = 2 ;
- parameterCategory = 3 ;
- parameterNumber = 17 ;
- }
-#Estimated precipitation
-'kg m**-2' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Instantaneous rain rate
-'kg m**-2 s**-1' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Cloud top height
-'m' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#Cloud top height quality indicator
-'Code table 4.219' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Estimated u component of wind
-'m s**-1' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 4 ;
- }
-#Estimated v component of wind
-'m s**-1' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Number of pixels used
-'Numeric' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 6 ;
- }
-#Solar zenith angle
-'Degree' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Relative azimuth angle
-'Degree' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 8 ;
- }
-#Reflectance in 0.6 micron channel
-'%' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 9 ;
- }
-#Reflectance in 0.8 micron channel
-'%' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Reflectance in 1.6 micron channel
-'%' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 11 ;
- }
-#Reflectance in 3.9 micron channel
-'%' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 12 ;
- }
-#Atmospheric divergence
-'s**-1' = {
- discipline = 3 ;
- parameterCategory = 1 ;
- parameterNumber = 13 ;
- }
-#Direction of wind waves
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Primary wave direction
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 10 ;
- }
-#Primary wave mean period
-'s' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 11 ;
- }
-#Secondary wave mean period
-'s' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 13 ;
- }
-#Current direction
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 0 ;
- }
-#Current speed
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 1 ;
- }
-#Geometric vertical velocity
-'m s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 9 ;
- }
-#Seconds prior to initial reference time (defined in Section 1)
-'s' = {
- discipline = 10 ;
- parameterCategory = 191 ;
- parameterNumber = 0 ;
- }
-#Forecast albedo
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 1 ;
- }
-#Pressure tendency
-'Pa s**-1' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 2 ;
- }
-#ICAO Standard Atmosphere reference height
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 3 ;
- }
-#Geometrical height
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 6 ;
- }
-#Standard deviation of height
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 7 ;
- }
-#Maximum temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 4 ;
- }
-#Minimum temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 5 ;
- }
-#Dew point temperature
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 6 ;
- }
-#Lapse rate
-'K m**-1' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 8 ;
- }
-#Visibility
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 0 ;
- }
-#Radar spectra (1)
-'~' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 6 ;
- }
-#Radar spectra (2)
-'~' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 7 ;
- }
-#Radar spectra (3)
-'~' = {
- discipline = 0 ;
- parameterCategory = 15 ;
- parameterNumber = 8 ;
- }
-#Parcel lifted index (to 500 hPa)
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 0 ;
- }
-#Temperature anomaly
-'K' = {
- discipline = 0 ;
- parameterCategory = 0 ;
- parameterNumber = 9 ;
- }
-#Pressure anomaly
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 8 ;
- }
-#Geopotential height anomaly
-'gpm' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 9 ;
- }
-#Wave spectra (1)
-'~' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 0 ;
- }
-#Wave spectra (2)
-'~' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 1 ;
- }
-#Wave spectra (3)
-'~' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 2 ;
- }
-#Sigma coordinate vertical velocity
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Absolute vorticity
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 10 ;
- }
-#Absolute divergence
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 11 ;
- }
-#Vertical u-component shear
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 15 ;
- }
-#Vertical v-component shear
-'s**-1' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 16 ;
- }
-#U-component of current
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 2 ;
- }
-#V-component of current
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Precipitable water
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 3 ;
- }
-#Saturation deficit
-'Pa' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 5 ;
- }
-#Precipitation rate
-'kg m**-2 s**-1' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 7 ;
- }
-#Thunderstorm probability
-'%' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 2 ;
- }
-#Convective precipitation (water)
-'kg m**-2' = {
- discipline = 0 ;
- parameterCategory = 1 ;
- parameterNumber = 10 ;
- }
-#Mixed layer depth
-'m' = {
- discipline = 0 ;
- parameterCategory = 19 ;
- parameterNumber = 3 ;
- }
-#Transient thermocline depth
-'m' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 2 ;
- }
-#Main thermocline anomaly
-'m' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 1 ;
- }
-#Best lifted index (to 500 hPa)
-'K' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 1 ;
- }
-#Soil moisture content
-'kg m**-2' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 3 ;
- }
-#Salinity
-'kg kg**-1' = {
- discipline = 10 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Density
-'kg m**-3' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 10 ;
- }
-#Direction of ice drift
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 2 ;
- }
-#Speed of ice drift
-'m s**-1' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 3 ;
- }
-#Ice divergence
-'s**-1' = {
- discipline = 10 ;
- parameterCategory = 2 ;
- parameterNumber = 7 ;
- }
-#Direction of swell waves
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 7 ;
- }
-#Secondary wave direction
-'Degree true' = {
- discipline = 10 ;
- parameterCategory = 0 ;
- parameterNumber = 12 ;
- }
-#Net short-wave radiation flux (surface)
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 0 ;
- }
-#Global radiation flux
-'W m**-2' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 3 ;
- }
-#Radiance (with respect to wave number)
-'W m**-1 sr**-1' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 5 ;
- }
-#Radiance (with respect to wave length)
-'W m**-3 sr**-1' = {
- discipline = 0 ;
- parameterCategory = 4 ;
- parameterNumber = 6 ;
- }
-#Wind mixing energy
-'J' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 19 ;
- }
-#10 metre wind gust of at least 15 m/s
-'%' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 15 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#10 metre wind gust of at least 20 m/s
-'%' = {
- discipline = 0 ;
- parameterCategory = 2 ;
- parameterNumber = 22 ;
- productDefinitionTemplateNumber = 9 ;
- typeOfFirstFixedSurface = 103 ;
- scaledValueOfFirstFixedSurface = 10 ;
- scaleFactorOfFirstFixedSurface = 0 ;
- typeOfStatisticalProcessing = 2 ;
- scaledValueOfLowerLimit = 20 ;
- scaleFactorOfLowerLimit = 0 ;
- probabilityType = 3 ;
- }
-#Convective inhibition
-'J kg**-1' = {
- discipline = 0 ;
- parameterCategory = 7 ;
- parameterNumber = 7 ;
- typeOfFirstFixedSurface = 1 ;
- typeOfSecondFixedSurface = 8 ;
- }
-#Orography
-'m' = {
- discipline = 0 ;
- parameterCategory = 3 ;
- parameterNumber = 5 ;
- typeOfFirstFixedSurface = 1 ;
- }
-#Soil moisture
-'kg m**-3' = {
- discipline = 2 ;
- parameterCategory = 0 ;
- parameterNumber = 22 ;
- }
#Soil temperature
'K' = {
discipline = 2 ;
@@ -10089,4 +11058,34 @@
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
+ }
+#U-component surface stokes drift
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 21 ;
+ }
+#V-component surface stokes drift
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 22 ;
+ }
+#100 metre U wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 2 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
+ }
+#100 metre V wind component
+'m s**-1' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 3 ;
+ typeOfFirstFixedSurface = 103 ;
+ scaledValueOfFirstFixedSurface = 100 ;
+ scaleFactorOfFirstFixedSurface = 0 ;
}
diff --git a/definitions/grib2/units.legacy.def b/definitions/grib2/units.legacy.def
index 4c55cbbbc..e3e8e590e 100644
--- a/definitions/grib2/units.legacy.def
+++ b/definitions/grib2/units.legacy.def
@@ -52,3 +52,131 @@
parameterCategory = 3 ;
parameterNumber = 9 ;
}
+#Instantaneous eastward turbulent surface stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 38 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Instantaneous northward turbulent surface stress
+'N m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 2 ;
+ parameterNumber = 37 ;
+ typeOfFirstFixedSurface = 1 ;
+}
+#Evaporation in the last 6 hours
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 79 ;
+ typeOfFirstFixedSurface = 1 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 6 ;
+}
+#Time-mean evapotranspiration rate in the last 24h
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 39 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated potential evapotranspiration rate in the last 24h
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean potential evapotranspiration rate in the last 24h
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 40 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean volumetric soil moisture
+'m**3 m**-3' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 25 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated water runoff and drainage rate in the last 24h
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean water runoff and drainage rate in the last 24h
+'kg m**-2 s**-1' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 42 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean snow depth water equivalent
+'kg m**-2' = {
+ discipline = 0 ;
+ parameterCategory = 1 ;
+ parameterNumber = 60 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-mean skin temperature
+'K' = {
+ discipline = 0 ;
+ parameterCategory = 0 ;
+ parameterNumber = 17 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 0 ;
+ lengthOfTimeRange = 24 ;
+}
+#Time-integrated snow melt rate in the last 24h
+'kg m**-2' = {
+ discipline = 2 ;
+ parameterCategory = 0 ;
+ parameterNumber = 41 ;
+ indicatorOfUnitForTimeRange = 1 ;
+ typeOfStatisticalProcessing = 1 ;
+ lengthOfTimeRange = 24 ;
+}
+#Upward sea water velocity
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+}
+#Time-mean upward sea water velocity
+'m s**-1' = {
+ discipline = 10 ;
+ parameterCategory = 4 ;
+ parameterNumber = 27 ;
+ typeOfFirstFixedSurface = 168 ;
+ typeOfSecondFixedSurface = 168 ;
+ typeOfStatisticalProcessing = 0 ;
+}
+#Maximum individual wave height
+'m' = {
+ discipline = 10 ;
+ parameterCategory = 0 ;
+ parameterNumber = 24 ;
+}
diff --git a/definitions/grib3/template.3.shape_of_the_earth.def b/definitions/grib3/template.3.shape_of_the_earth.def
index 2ff2dcdf0..434459ec9 100644
--- a/definitions/grib3/template.3.shape_of_the_earth.def
+++ b/definitions/grib3/template.3.shape_of_the_earth.def
@@ -73,12 +73,12 @@ _if (shapeOfTheEarth == 3){
# ECC-979
# The 'scale' accessor works with integers so rounds its first argument
# which is not what we want because the inputs are doubles with decimal
- # expansions. So use the trick of dividing by 0.001 to multiply by 1000
+ # expansions.
#
# meta earthMajorAxisInMetres scale(earthMajorAxis, thousand, one, zero);
# meta earthMinorAxisInMetres scale(earthMinorAxis, thousand, one, zero);
- meta earthMajorAxisInMetres divdouble(earthMajorAxis, 0.001);
- meta earthMinorAxisInMetres divdouble(earthMinorAxis, 0.001);
+ meta earthMajorAxisInMetres multdouble(earthMajorAxis, 1000);
+ meta earthMinorAxisInMetres multdouble(earthMinorAxis, 1000);
}
_if (shapeOfTheEarth == 7){
# Major and minor axes specified (in m) by data producer
diff --git a/definitions/gts/boot.def b/definitions/gts/boot.def
index f2a2d3d5b..02b3292e9 100644
--- a/definitions/gts/boot.def
+++ b/definitions/gts/boot.def
@@ -39,14 +39,13 @@ alias ls.CCCC=CCCC;
alias ls.YY=YY;
alias ls.GG=GG;
alias ls.gg=gg;
-position endOfHeadersMarker;
+position endOfHeadersMarker;
message[4] theMessage;
-meta lengthOfHeaders evaluate( endOfHeadersMarker-startOfHeaders);
-meta md5Headers md5(startOfHeaders,lengthOfHeaders);
+meta lengthOfHeaders evaluate(endOfHeadersMarker-startOfHeaders);
+meta md5Headers md5(startOfHeaders, lengthOfHeaders);
-ascii[4] endMark;
+ascii[4] endMark;
position totalLength;
alias ls.totalLength=totalLength;
-
diff --git a/definitions/mars/class.table b/definitions/mars/class.table
index 55b321573..bb740e63a 100644
--- a/definitions/mars/class.table
+++ b/definitions/mars/class.table
@@ -46,6 +46,11 @@
45 ml Machine learning
46 d1 Destination Earth
47 o6 ECMWF Ocean ReAnalysis version 6 (EORA6)
+48 eh C3S European hydrology
+49 gh C3S Global hydrology
+50 ci CERISE project
+51 ai Operational AIFS
+52 ed EERIE project
99 te Test
100 at Austria
101 be Belgium
diff --git a/definitions/mars/grib.clmn.fc.def b/definitions/mars/grib.clmn.fc.def
new file mode 100644
index 000000000..34723b605
--- /dev/null
+++ b/definitions/mars/grib.clmn.fc.def
@@ -0,0 +1,6 @@
+alias mars.year = year;
+alias mars.month = month;
+unalias mars.date;
+unalias mars.time;
+unalias mars.step;
+unalias mars.domain;
\ No newline at end of file
diff --git a/definitions/mars/grib.clte.fc.def b/definitions/mars/grib.clte.fc.def
new file mode 100644
index 000000000..8d899381f
--- /dev/null
+++ b/definitions/mars/grib.clte.fc.def
@@ -0,0 +1,4 @@
+alias mars.date = dataDate;
+alias mars.time = dataTime;
+unalias mars.step;
+unalias mars.domain;
diff --git a/definitions/mars/grib.elda.est.def b/definitions/mars/grib.elda.est.def
new file mode 100644
index 000000000..f877d1fa5
--- /dev/null
+++ b/definitions/mars/grib.elda.est.def
@@ -0,0 +1 @@
+alias mars.anoffset=offsetToEndOf4DvarWindow;
diff --git a/definitions/mars/grib.mmsf.fc.def b/definitions/mars/grib.mmsf.fc.def
index 9d47177d1..c002f9d76 100644
--- a/definitions/mars/grib.mmsf.fc.def
+++ b/definitions/mars/grib.mmsf.fc.def
@@ -1,8 +1,14 @@
-alias mars.step = endStep;
+if (levtype is "o2d" || levtype is "o3d") {
+ alias mars.step = stepRange;
+} else {
+ alias mars.step = endStep;
+}
+
if (class is "od") { alias mars.system = systemNumber; }
if (class is "me") { alias mars.system = systemNumber; }
if (class is "en") { alias mars.system = systemNumber; }
if (class is "c3") { alias mars.system = systemNumber; }
+if (class is "ci") { alias mars.system = systemNumber; }
alias mars.number = perturbationNumber;
alias mars.method = methodNumber;
@@ -15,3 +21,6 @@ if (centre == 80 && subCentre == 98 && class is "c3") {
constant cnmc_cmcc = 'cmcc';
alias mars.origin = cnmc_cmcc;
}
+
+if (class is "ci") { unalias mars.method; }
+
diff --git a/definitions/mars/grib.msmm.fcmean.def b/definitions/mars/grib.msmm.fcmean.def
index 2330d5ace..a13ca9918 100644
--- a/definitions/mars/grib.msmm.fcmean.def
+++ b/definitions/mars/grib.msmm.fcmean.def
@@ -10,9 +10,12 @@ if (class is "od") { alias mars.system = systemNumber; }
if (class is "me") { alias mars.system = systemNumber; }
if (class is "en") { alias mars.system = systemNumber; }
if (class is "c3") { alias mars.system = systemNumber; }
+if (class is "ci") { alias mars.system = systemNumber; }
# See ECC-624
if (centre == 80 && subCentre == 98 && class is "c3") {
constant cnmc_cmcc = 'cmcc';
alias mars.origin = cnmc_cmcc;
}
+
+if (class is "ci") { unalias mars.method; }
diff --git a/definitions/mars/stream.table b/definitions/mars/stream.table
index a5d90c167..8fb9fb06d 100644
--- a/definitions/mars/stream.table
+++ b/definitions/mars/stream.table
@@ -69,6 +69,9 @@
1095 wamf Wave monthly forecast
1096 wmfm Wave monthly forecast means
1097 smma Seasonal monthly means anomalies
+1098 clte Climate run output
+1099 clmn Climate run monthly means output
+1100 dame Daily means
1110 seap Sensitive area prediction
1120 eefh Extended ensemble forecast hindcast
1121 eehs Extended ensemble forecast hindcast statistics
@@ -113,6 +116,7 @@
1253 ocda Ocean data assimilation
1254 olda Ocean Long window data assimilation
1255 gfra Global fire assimilation system reanalysis
+1256 rfsd Retrospective forcing and simulation data
2231 cnrm Meteo France climate centre
2232 mpic Max Plank Institute
2233 ukmo UKMO climate centre
diff --git a/definitions/mars/type.table b/definitions/mars/type.table
index 4850d9f43..1985ee678 100644
--- a/definitions/mars/type.table
+++ b/definitions/mars/type.table
@@ -73,3 +73,4 @@
92 pfc Point values
93 ppm Point value metrics
94 gwt Weather types
+95 est Ensemble statistics
diff --git a/definitions/param_limits.def b/definitions/param_limits.def
index 1bbcd18d6..215cbfec0 100644
--- a/definitions/param_limits.def
+++ b/definitions/param_limits.def
@@ -18,6 +18,7 @@ concept param_value_min(default_min_val) {
-60000 = { paramId=228001; }
0 = { paramId=151163; }
-3.5 = { paramId=151131; }
+ -3.5 = { paramId=262140; }
-10 = { paramId=260259; }
-13000 = { paramId=129; }
-1300 = { paramId=156; }
@@ -103,6 +104,7 @@ concept param_value_max(default_max_val) {
1000 = { paramId=228001; }
1500 = { paramId=151163; }
3.5 = { paramId=151131; }
+ 3.5 = { paramId=262140; }
5 = { paramId=260259; }
3500000 = { paramId=129; }
35000 = { paramId=156; }
diff --git a/.travis.yml b/deprecated/.travis.yml
similarity index 100%
rename from .travis.yml
rename to deprecated/.travis.yml
diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt
index 539077c2b..5e3795ef8 100644
--- a/examples/C/CMakeLists.txt
+++ b/examples/C/CMakeLists.txt
@@ -25,6 +25,7 @@ list( APPEND test_bins
grib_list
grib_get_data
grib_sections_copy
+ grib_copy_keys
grib_iterator_bitmap
grib_clone
grib_copy_message
@@ -65,6 +66,7 @@ if( HAVE_BUILD_TOOLS )
grib_set_data
large_grib1
grib_sections_copy
+ grib_copy_keys
get_product_kind_samples)
list(APPEND tests_extra
grib_iterator
@@ -77,10 +79,12 @@ if( HAVE_BUILD_TOOLS )
grib_clone
grib_copy_message
grib_ensemble_index
+ grib_index
grib_set_pv
grib_set_bitmap
grib_list
grib_get_data
+ grib_mars_param
grib_nearest
grib_nearest_multiple
grib_multi
diff --git a/examples/C/bufr_subset.c b/examples/C/bufr_subset.c
index 66bf695b4..d2ff95942 100644
--- a/examples/C/bufr_subset.c
+++ b/examples/C/bufr_subset.c
@@ -32,7 +32,7 @@ int main(int argc, char* argv[])
size_t stringLen;
char stringVal[100] = {0,};
int i, err = 0;
- int cnt = 0;
+ int cnt = 0, ktype = 0;
const char* infile = "../../data/bufr/synop_multi_subset.bufr";
in = fopen(infile, "rb");
@@ -62,6 +62,9 @@ int main(int argc, char* argv[])
for (i = 1; i <= numberOfSubsets; i++) {
snprintf(key, sizeof(key), "/subsetNumber=%d/blockNumber", i);
+ CODES_CHECK(codes_get_native_type(h, key, &ktype), 0);
+ /* printf("Type = %d\n", ktype); */
+
printf(" subsetNumber=%d", i);
/* read and print some data values */
CODES_CHECK(codes_get_long(h, key, &longVal), 0);
diff --git a/examples/C/grib_clone.c b/examples/C/grib_clone.c
index d54ab4440..c2964b54a 100644
--- a/examples/C/grib_clone.c
+++ b/examples/C/grib_clone.c
@@ -68,7 +68,7 @@ int main(int argc, char* argv[])
CODES_CHECK(codes_get_message(clone_handle, &buffer, &size), 0);
/* write the buffer to a file */
if (fwrite(buffer, 1, size, out) != size) {
- perror(argv[1]);
+ perror(argv[2]);
return 1;
}
codes_handle_delete(clone_handle);
diff --git a/examples/C/grib_copy_keys.c b/examples/C/grib_copy_keys.c
new file mode 100644
index 000000000..f48d2bd55
--- /dev/null
+++ b/examples/C/grib_copy_keys.c
@@ -0,0 +1,69 @@
+/*
+ * (C) Copyright 2005- 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.
+ */
+#include "eccodes.h"
+#include
+
+static void usage(const char* prog)
+{
+ printf("usage: %s in1.grib in2.grib\n", prog);
+ exit(1);
+}
+
+int main(int argc, char* argv[])
+{
+ codes_handle *hfrom, *hto;
+ FILE* in;
+ char *in_name1, *in_name2;
+ int i = 0, err = 0;
+ const char* keys[] = { "gridType", "pl", "values" };
+ const int keys_count = sizeof(keys) / sizeof(keys[0]);
+
+ if (argc != 3) usage(argv[0]);
+
+ in_name1 = argv[1];
+ in_name2 = argv[2];
+
+ in = fopen(in_name1, "rb");
+ if (!in) {
+ perror(in_name1);
+ exit(1);
+ }
+
+ hfrom = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err);
+ CODES_CHECK(err, 0);
+ fclose(in);
+
+ in = fopen(in_name2, "rb");
+ if (!in) {
+ perror(in_name2);
+ exit(1);
+ }
+
+ hto = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err);
+ CODES_CHECK(err, 0);
+ fclose(in);
+
+ for (i = 0; i < keys_count; i++) {
+ printf("Copying key: %s\n", keys[i]);
+ err = codes_copy_key(hfrom, hto, keys[i], GRIB_TYPE_UNDEFINED);
+ CODES_CHECK(err, 0);
+ }
+
+ /* codes_write_message(hto, "temp.out", "w"); CODES_CHECK(err, 0); */
+ {
+ int dump_flags = GRIB_DUMP_FLAG_CODED | GRIB_DUMP_FLAG_OCTET | GRIB_DUMP_FLAG_VALUES | GRIB_DUMP_FLAG_READ_ONLY;
+ codes_dump_content(hto, stdout, "wmo", dump_flags, NULL);
+ }
+
+ codes_handle_delete(hfrom);
+ codes_handle_delete(hto);
+
+ return err;
+}
diff --git a/examples/C/grib_copy_keys.sh b/examples/C/grib_copy_keys.sh
new file mode 100755
index 000000000..20b247242
--- /dev/null
+++ b/examples/C/grib_copy_keys.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+FROM_FILE=$ECCODES_SAMPLES_PATH/gg_sfc_grib2.tmpl
+TO_FILE=$ECCODES_SAMPLES_PATH/GRIB2.tmpl
+
+${examples_dir}/c_grib_copy_keys $FROM_FILE $TO_FILE
diff --git a/examples/C/grib_index.c b/examples/C/grib_index.c
index 64a131dcd..2e37baead 100644
--- a/examples/C/grib_index.c
+++ b/examples/C/grib_index.c
@@ -19,7 +19,7 @@
static void usage(const char* prog)
{
- printf("usage: %s infile\n", prog);
+ printf("usage: %s gribfile indexfile\n", prog);
exit(1);
}
@@ -27,7 +27,8 @@ int main(int argc, char* argv[])
{
codes_index* index = NULL;
codes_handle* h = NULL;
- char* infile = NULL;
+ char* inputfile = NULL;
+ char* indexfile = NULL;
long *steps, *levels, *numbers; /* arrays */
char** shortName = NULL;
int i, j, k, l;
@@ -37,8 +38,9 @@ int main(int argc, char* argv[])
size_t lenshortName = sizeof(oshortName);
int ret = 0, count = 0;
- if (argc != 2) usage(argv[0]);
- infile = argv[1];
+ if (argc != 3) usage(argv[0]);
+ inputfile = argv[1];
+ indexfile = argv[2];
printf("indexing...\n");
@@ -50,7 +52,7 @@ int main(int argc, char* argv[])
}
/* indexes a file */
- ret = codes_index_add_file(index, infile);
+ ret = codes_index_add_file(index, inputfile);
if (ret) {
fprintf(stderr, "Error: %s\n", codes_get_error_message(ret));
exit(ret);
@@ -152,7 +154,7 @@ int main(int argc, char* argv[])
}
printf(" %d messages selected\n", count);
- codes_index_write(index, "out.gribidx");
+ codes_index_write(index, indexfile);
codes_index_delete(index);
return 0;
diff --git a/examples/C/grib_index.sh b/examples/C/grib_index.sh
new file mode 100755
index 000000000..06244169e
--- /dev/null
+++ b/examples/C/grib_index.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+label="grib_index_c"
+tempIndex=temp.$label.idx
+tempText=temp.$label.txt
+
+input=$data_dir/tigge_cf_ecmwf.grib2
+${examples_dir}/c_grib_index $input $tempIndex > $tempText
+
+grep -q "43 messages selected" $tempText
+
+${tools_dir}/grib_dump $tempIndex
+
+rm -f $tempIndex $tempText
diff --git a/examples/C/grib_mars_param.sh b/examples/C/grib_mars_param.sh
new file mode 100755
index 000000000..483cf184b
--- /dev/null
+++ b/examples/C/grib_mars_param.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+#
+
+. ./include.ctest.sh
+
+label="grib_mars_param_c"
+fTmp=${label}.tmp
+fOut=${label}.tmp.out
+fRef=${label}.tmp.ref
+
+${examples_dir}/c_mars_param
+
+rm -f ${fTmp} ${fRef} ${fOut}
diff --git a/examples/C/grib_multi.c b/examples/C/grib_multi.c
index 24479075d..617c30a71 100644
--- a/examples/C/grib_multi.c
+++ b/examples/C/grib_multi.c
@@ -30,12 +30,12 @@ int main(int argc, char** argv)
codes_handle* h = NULL;
int mcount = 0;
+ /* turn off support for GRIB2 multi-field messages */
+ codes_grib_multi_support_off(NULL);
+
/* turn on support for GRIB2 multi-field messages */
codes_grib_multi_support_on(NULL);
- /* turn off support for GRIB2 multi-field messages */
- /* codes_multi_support_off(NULL); */
-
in = fopen(filename, "rb");
if (!in) {
fprintf(stderr, "Error: unable to open file %s\n", filename);
diff --git a/examples/C/grib_multi_write.c b/examples/C/grib_multi_write.c
index 818a5bd14..d0f275c58 100644
--- a/examples/C/grib_multi_write.c
+++ b/examples/C/grib_multi_write.c
@@ -72,14 +72,15 @@ int main(int argc, char** argv)
}
/* open output file */
- of = fopen(ofilename, "w");
+ of = fopen(ofilename, "wb");
if (!of) {
fprintf(stderr, "ERROR: unable to open output file %s\n", ofilename);
exit(1);
}
/* write multi-field handle to output file */
- codes_grib_multi_handle_write(mh, of);
+ err = codes_grib_multi_handle_write(mh, of);
+ if (err) return 1;
fclose(of);
/* release memory */
diff --git a/examples/C/grib_multi_write.sh b/examples/C/grib_multi_write.sh
index a6a621a59..73942c663 100755
--- a/examples/C/grib_multi_write.sh
+++ b/examples/C/grib_multi_write.sh
@@ -9,20 +9,20 @@
. ./include.ctest.sh
-#if [ ! -f "${data_dir}/sample.grib2" ]
-#then
-# echo SKIP: $0
-# exit
-#fi
+label="grib_multi_write_c"
+tempGrib=temp.$label.grib
+tempText=temp.$label.txt
-${examples_dir}/c_grib_multi_write ${data_dir}/sample.grib2 ${data_dir}/multi_sample.grib2 > /dev/null
+${examples_dir}/c_grib_multi_write ${data_dir}/sample.grib2 $tempGrib > /dev/null
-${tools_dir}/grib_get -p step ${data_dir}/multi_sample.grib2 > ${data_dir}/multi_step.test
+${tools_dir}/grib_get -p step $tempGrib > $tempText
-diff ${data_dir}/multi_step.test ${data_dir}/multi_step.txt
-
-step=`${tools_dir}/grib_get -M -p step ${data_dir}/multi_sample.grib2`
+reference=${data_dir}/multi_step.txt
+diff $reference $tempText
+# -M = Turn multi-field support off
+step=`${tools_dir}/grib_get -M -p step $tempGrib`
[ $step -eq 12 ]
-rm -f ${data_dir}/multi_sample.grib2 ${data_dir}/multi_step.test
+# Clean up
+rm -f $tempGrib $tempText
diff --git a/examples/C/grib_nearest_multiple.sh b/examples/C/grib_nearest_multiple.sh
index ee43c5881..3d8c1ecf3 100755
--- a/examples/C/grib_nearest_multiple.sh
+++ b/examples/C/grib_nearest_multiple.sh
@@ -10,7 +10,7 @@
. ./include.ctest.sh
-label="grib_nearest_multiple"
+label="grib_nearest_multiple_c"
temp1=$label.temp1.$$
temp2=$label.temp2.$$
tempRef=$label.ref.$$
diff --git a/examples/C/grib_precision.c b/examples/C/grib_precision.c
index ae39318b2..4f3657610 100644
--- a/examples/C/grib_precision.c
+++ b/examples/C/grib_precision.c
@@ -116,7 +116,7 @@ int main(int argc, char** argv)
/* write the buffer in a file*/
if (fwrite(buffer, 1, size, out) != size) {
- perror(argv[1]);
+ perror(outfile);
exit(1);
}
diff --git a/examples/C/grib_sections_copy.sh b/examples/C/grib_sections_copy.sh
index 13cdf6a69..eb69f7d23 100755
--- a/examples/C/grib_sections_copy.sh
+++ b/examples/C/grib_sections_copy.sh
@@ -13,6 +13,13 @@ REGUL_GRID_FILE=${proj_dir}/samples/regular_ll_sfc_grib2.tmpl
GAUSS_GRID_FILE=${proj_dir}/samples/reduced_gg_pl_640_grib2.tmpl
OUTPUT=temp.sections.grib
+
+sample_pv=$ECCODES_SAMPLES_PATH/reduced_gg_ml_grib1.tmpl
+sample_g1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl
+${examples_dir}/c_grib_sections_copy $sample_pv $sample_g1 l $OUTPUT
+${examples_dir}/c_grib_sections_copy $sample_pv $sample_pv g $OUTPUT
+
+
##################
# Copy the GRID section from REGUL_GRID_FILE
${examples_dir}/c_grib_sections_copy $REGUL_GRID_FILE $GAUSS_GRID_FILE g $OUTPUT >/dev/null
diff --git a/examples/C/grib_set_keys.c b/examples/C/grib_set_keys.c
index feea6731a..50aeff372 100644
--- a/examples/C/grib_set_keys.c
+++ b/examples/C/grib_set_keys.c
@@ -78,7 +78,7 @@ int main(int argc, char** argv)
/* write the buffer in a file*/
if (fwrite(buffer, 1, size, out) != size) {
- perror(argv[1]);
+ perror(outfile);
exit(1);
}
diff --git a/examples/C/grib_set_missing.c b/examples/C/grib_set_missing.c
index 543bb1db3..98395c120 100644
--- a/examples/C/grib_set_missing.c
+++ b/examples/C/grib_set_missing.c
@@ -59,6 +59,12 @@ int main(int argc, char** argv)
CODES_CHECK(codes_set_missing(h, "scaleFactorOfFirstFixedSurface"), 0);
CODES_CHECK(codes_set_missing(h, "scaledValueOfFirstFixedSurface"), 0);
+ /* Can also set to MISSING via codes_set_string */
+ CODES_CHECK(codes_set_string(h, "scaleFactorOfFirstFixedSurface", "missing", &str_len), 0);
+ CODES_CHECK(codes_set_string(h, "scaledValueOfFirstFixedSurface", "missing", &str_len), 0);
+ /* Set a Code Table key to missing via codes_set_string */
+ CODES_CHECK(codes_set_string(h, "typeOfFirstFixedSurface", "missing", &str_len), 0);
+
/* see GRIB-490 */
CODES_CHECK(codes_get_long(h, "Ni", &Ni), 0);
is_missing = codes_is_missing(h, "Ni", &err);
@@ -71,7 +77,7 @@ int main(int argc, char** argv)
/* write the buffer in a file*/
if (fwrite(buffer, 1, size, out) != size) {
- perror(argv[1]);
+ perror(outfile);
exit(1);
}
diff --git a/examples/C/grib_set_missing.sh b/examples/C/grib_set_missing.sh
index baef5d073..9b1314f9b 100755
--- a/examples/C/grib_set_missing.sh
+++ b/examples/C/grib_set_missing.sh
@@ -20,6 +20,10 @@ if [ -f "${tools_dir}/grib_get" ]; then
[ "$sf" = "MISSING" ]
sf=`${tools_dir}/grib_get -p scaledValueOfFirstFixedSurface $tempGrib`
[ "$sf" = "MISSING" ]
+
+ # Code Table key being set to missing
+ sf=`${tools_dir}/grib_get -p typeOfFirstFixedSurface:i, $tempGrib`
+ [ "$sf" = "255" ]
fi
rm -f $tempGrib
diff --git a/examples/C/grib_set_pv.c b/examples/C/grib_set_pv.c
index 7ca4c32fe..e279aec8b 100644
--- a/examples/C/grib_set_pv.c
+++ b/examples/C/grib_set_pv.c
@@ -78,7 +78,7 @@ int main(int argc, char** argv)
/* write the buffer in a file*/
if (fwrite(buffer, 1, size, out) != size) {
- perror(argv[1]);
+ perror(outfile);
exit(1);
}
diff --git a/examples/C/grib_values_check.c b/examples/C/grib_values_check.c
index 5582c6af6..901286834 100644
--- a/examples/C/grib_values_check.c
+++ b/examples/C/grib_values_check.c
@@ -16,9 +16,9 @@ int main(int argc, char* argv[])
char infile[] = "../../data/reduced_gaussian_model_level.grib1";
codes_handle* h = NULL;
codes_context* c = codes_context_get_default();
- codes_values values[2];
- int nvalues = 2;
- int i;
+ codes_values values[4];
+ const int nvalues = sizeof(values)/sizeof(values[0]);
+ int i = 0;
char* name = NULL;
f = fopen(infile, "rb");
@@ -34,30 +34,41 @@ int main(int argc, char* argv[])
}
fclose(f);
- values[0].type = CODES_TYPE_LONG;
- values[0].name = "centre";
- values[0].long_value = 98;
+ values[i].type = CODES_TYPE_LONG;
+ values[i].name = "centre";
+ values[i].long_value = 98;
+ i++;
- values[1].type = CODES_TYPE_LONG;
- values[1].name = "level";
- values[1].long_value = 2;
+ values[i].type = CODES_TYPE_DOUBLE;
+ values[i].name = "bitsPerValue";
+ values[i].double_value = 13;
+ i++;
- /*CODES_VALUE_DIFFERENT -> value is different*/
+ values[i].type = CODES_TYPE_STRING;
+ values[i].name = "identifier";
+ values[i].string_value = "GRIB";
+ i++;
+
+ values[i].type = CODES_TYPE_LONG;
+ values[i].name = "level";
+ values[i].long_value = 2; /* Intentionally made different; actual level==1 */
+
+ err = codes_values_check(h, values, nvalues);
+ if (err) {
+ for (i = 0; i < nvalues; i++) {
+ printf("i=%d %s\n",i, values[i].name);
+ if (values[i].error == err) name = (char*)values[i].name;
+ }
+ fprintf(stderr, "Error: \"%s\" - %s\n", name, codes_get_error_message(err));
+ }
+
+ values[1].name = "levelll"; /* non-existent key */
err = codes_values_check(h, values, nvalues);
if (err) {
for (i = 0; i < nvalues; i++) {
if (values[i].error == err) name = (char*)values[i].name;
}
- fprintf(stderr, "Error: \"%s\" %s\n", name, codes_get_error_message(err));
- }
-
- values[1].name = "levelll";
- err = codes_values_check(h, values, nvalues);
- if (err) {
- for (i = 0; i < nvalues; i++) {
- if (values[i].error == err) name = (char*)values[i].name;
- }
- fprintf(stderr, "Error: \"%s\" %s\n", name, codes_get_error_message(err));
+ fprintf(stderr, "Error: \"%s\" - %s\n", name, codes_get_error_message(err));
}
codes_handle_delete(h);
diff --git a/examples/C/grib_values_check.sh b/examples/C/grib_values_check.sh
index 4a86131dc..943028848 100755
--- a/examples/C/grib_values_check.sh
+++ b/examples/C/grib_values_check.sh
@@ -16,8 +16,8 @@ tempErr=${label}.tmp.err
tempRef=${label}.tmp.ref
cat > $tempRef < 1) write (*, '(A,A,F9.3,F10.3,F7.1)') &
+ IF (status_ht == CODES_SUCCESS .AND. SIZE(lat) > 1) write (*, '(A,A10,F9.3,F10.3,F7.1)') &
'WMO list lat, lon, ht: ', statid, lat(2), lon(2), htec
write (*, '(A)') 'level dtime dlat dlon pressure geopotH airTemp dewPtT windDir windSp signif'
do i = 1, sizews
diff --git a/examples/F90/codes_dump.f90 b/examples/F90/codes_dump.f90
index b68c68e51..ab547ec04 100644
--- a/examples/F90/codes_dump.f90
+++ b/examples/F90/codes_dump.f90
@@ -12,7 +12,7 @@ program codes_dump_test
implicit none
integer :: ifile, iret, msgid
integer :: product_kind
- character(len=10) :: product_string
+ character(len=512) :: product_string
character(len=512) :: infile_name
call getarg(1, product_string)
diff --git a/examples/F90/codes_f90_misc.f90 b/examples/F90/codes_f90_misc.f90
new file mode 100644
index 000000000..3b182eec5
--- /dev/null
+++ b/examples/F90/codes_f90_misc.f90
@@ -0,0 +1,31 @@
+! (C) Copyright 2005- 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.
+!
+!
+program codes_f90_misc
+ use eccodes
+ implicit none
+
+ integer :: array_of_error_codes(8), i, code
+ character(len=64) :: error_message = ''
+
+ call codes_gribex_mode_on()
+ call codes_gribex_mode_off()
+
+ call codes_bufr_multi_element_constant_arrays_on()
+ call codes_bufr_multi_element_constant_arrays_off()
+
+ array_of_error_codes = [0, -2, -14, -16, -26, -28, -38, -41]
+ do i = 1, size(array_of_error_codes)
+ error_message = ''
+ code = array_of_error_codes(i)
+ call codes_get_error_string(code, error_message)
+ write (*, *) 'error message: <', adjustl(trim(error_message)), '>'
+ end do
+
+end program
diff --git a/examples/F90/codes_f90_misc.sh b/examples/F90/codes_f90_misc.sh
new file mode 100755
index 000000000..5edf282c7
--- /dev/null
+++ b/examples/F90/codes_f90_misc.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+# export ECCODES_DEBUG=1
+${examples_dir}/eccodes_f_codes_f90_misc
diff --git a/examples/F90/codes_load_file.f90 b/examples/F90/codes_load_file.f90
new file mode 100644
index 000000000..3572b4b4d
--- /dev/null
+++ b/examples/F90/codes_load_file.f90
@@ -0,0 +1,43 @@
+! (C) Copyright 2005- 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.
+!
+!
+program codes_load_file
+ use eccodes
+ implicit none
+
+ integer :: ifile, cnt, level, step
+ integer :: i, igrib, iret
+ character(len=32) :: infile_name = '../../data/index.grib'
+
+ call codes_open_file(ifile, infile_name, 'r')
+
+ call codes_any_load_all_from_file(ifile, cnt)
+
+ i = 45
+ call codes_any_new_from_loaded(i, igrib)
+ call codes_get(igrib, 'level', level)
+ call codes_get(igrib, 'stepRange', step)
+
+ print *, 'Num messages=', cnt
+ print *, 'Msg ',i,' level=',level, ' step=', step
+
+ call codes_release(igrib)
+
+ ! Invalid msg number
+ i = 450
+ call codes_any_new_from_loaded(i, igrib, iret)
+ if (iret /= GRIB_INVALID_ARGUMENT) then
+ call codes_check(iret, 'Error', 'codes_any_new_from_loaded should have failed')
+ else
+ print *,'Invalid message index returned error (as expected)'
+ end if
+
+ call codes_close_file(ifile)
+
+end program
diff --git a/examples/F90/codes_load_file.sh b/examples/F90/codes_load_file.sh
new file mode 100755
index 000000000..6a4fa78d8
--- /dev/null
+++ b/examples/F90/codes_load_file.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+label='eccodes_f_codes_load_file'
+temp=temp.$label.txt
+
+# The input file is hard coded => data/index.grib
+${examples_dir}/eccodes_f_codes_load_file > $temp
+
+grep -q "Num messages= *384" $temp
+grep -q "level= *700 step= *60" $temp
+
+rm -f $temp
diff --git a/examples/F90/codes_scan_file.f90 b/examples/F90/codes_scan_file.f90
new file mode 100644
index 000000000..9c21ef77b
--- /dev/null
+++ b/examples/F90/codes_scan_file.f90
@@ -0,0 +1,43 @@
+! (C) Copyright 2005- 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.
+!
+!
+program codes_scan_file
+ use eccodes
+ implicit none
+
+ integer :: ifile, cnt, level, step
+ integer :: i, igrib, iret
+ character(len=32) :: infile_name = '../../data/index.grib'
+
+ call codes_open_file(ifile, infile_name, 'r')
+
+ call codes_any_scan_file(ifile,cnt)
+
+ i = 45
+ call codes_any_new_from_scanned_file(ifile, i, igrib)
+ call codes_get(igrib, 'level', level)
+ call codes_get(igrib, 'stepRange', step)
+
+ print *, 'Num messages=', cnt
+ print *, 'Msg ',i,' level=',level, ' step=', step
+
+ call codes_release(igrib)
+
+ ! Invalid msg number
+ i = 450
+ call codes_any_new_from_scanned_file(ifile, i, igrib, iret)
+ if (iret /= GRIB_INVALID_ARGUMENT) then
+ call codes_check(iret, 'Error', 'codes_any_new_from_scanned_file should have failed')
+ else
+ print *,'Invalid message index returned error (as expected)'
+ end if
+
+ call codes_close_file(ifile)
+
+end program
diff --git a/examples/F90/codes_scan_file.sh b/examples/F90/codes_scan_file.sh
new file mode 100755
index 000000000..4df8398b5
--- /dev/null
+++ b/examples/F90/codes_scan_file.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+label='eccodes_f_codes_scan_file'
+temp=temp.$label.txt
+
+# The input file is hard coded => data/index.grib
+${examples_dir}/eccodes_f_codes_scan_file > $temp
+
+grep -q "Num messages= *384" $temp
+grep -q "level= *700 step= *60" $temp
+
+rm -f $temp
diff --git a/examples/F90/grib_count_messages.f90 b/examples/F90/grib_count_messages.f90
index 512b5ce5c..e4ae30210 100644
--- a/examples/F90/grib_count_messages.f90
+++ b/examples/F90/grib_count_messages.f90
@@ -9,7 +9,7 @@
! Description: Count messages before processing
!
!
-program get
+program grib_count_messages
use eccodes
implicit none
@@ -17,7 +17,7 @@ program get
integer :: iret
integer :: n
integer :: i
- integer, dimension(:), allocatable :: igrib
+ integer, dimension(:), allocatable :: igrib
real :: latitudeOfFirstPointInDegrees
real :: longitudeOfFirstPointInDegrees
real :: latitudeOfLastPointInDegrees
@@ -25,11 +25,10 @@ program get
integer :: numberOfPointsAlongAParallel
integer :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values
- integer :: numberOfValues
+ integer(8) :: numberOfValues
real :: average, min_val, max_val
- call codes_open_file(ifile, &
- '../../data/tigge_pf_ecmwf.grib2', 'r')
+ call codes_open_file(ifile, '../../data/tigge_pf_ecmwf.grib2', 'r')
! count the messages in the file
call codes_count_in_file(ifile, n)
@@ -106,4 +105,4 @@ program get
deallocate (igrib)
-end program get
+end program
diff --git a/examples/F90/grib_count_messages_multi.f90 b/examples/F90/grib_count_messages_multi.f90
index 5e4fe92d9..67178fa6f 100644
--- a/examples/F90/grib_count_messages_multi.f90
+++ b/examples/F90/grib_count_messages_multi.f90
@@ -13,10 +13,10 @@ program grib_count_messages_multi
use eccodes
implicit none
- integer :: ifile
- character(len=100) :: grib_file
- integer :: n, stat
- character(len=1) :: multi_flag
+ integer :: ifile
+ character(len=100) :: multi_flag
+ character(len=100) :: grib_file
+ integer :: n, stat
call getarg(1, multi_flag)
call getarg(2, grib_file)
diff --git a/examples/F90/grib_ecc-1316.f90 b/examples/F90/grib_ecc-1316.f90
index b6f521ce5..913d49fde 100644
--- a/examples/F90/grib_ecc-1316.f90
+++ b/examples/F90/grib_ecc-1316.f90
@@ -12,6 +12,9 @@ program grib_ecc_1316
implicit none
integer :: iret, ostep, olevel, onumber
+ ! Test both interfaces: 4 byte and 8 byte integers
+ integer(4) :: step_int = 96, level_int = 0, number_int = 0
+ integer(8) :: step_long = 96, level_long = 0, number_long = 0
character(len=80) :: parameterName
integer :: idx, igrib, count1 = 0
@@ -19,9 +22,12 @@ program grib_ecc_1316
call codes_index_create(idx, '../../data/tigge_cf_ecmwf.grib2', &
'parameterName,number,level,step')
- call codes_index_select(idx, 'step', 96)
- call codes_index_select(idx, 'level', 0)
- call codes_index_select(idx, 'number', 0)
+ call codes_index_select(idx, 'step', step_int)
+ call codes_index_select(idx, 'level', level_int)
+ call codes_index_select(idx, 'number', number_int)
+ call codes_index_select(idx, 'step', step_long)
+ call codes_index_select(idx, 'level', level_long)
+ call codes_index_select(idx, 'number', number_long)
call codes_index_select(idx, 'parameterName', 'Soil moisture')
do while (.true.)
diff --git a/examples/F90/grib_elements.f90 b/examples/F90/grib_elements.f90
new file mode 100644
index 000000000..28b0526b6
--- /dev/null
+++ b/examples/F90/grib_elements.f90
@@ -0,0 +1,50 @@
+! (C) Copyright 2005- 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.
+!
+!
+program grib_get_elements
+ use eccodes
+ implicit none
+
+ integer :: infile, igrib, i
+ real(4) :: value_real4
+ real(8) :: value_real8
+ real(4) :: values_real4(4)
+ real(8) :: values_real8(4)
+ integer :: array_of_indexes(4)
+
+ call codes_open_file(infile, '../../data/reduced_gaussian_pressure_level.grib1', 'r')
+ call codes_grib_new_from_file(infile, igrib)
+
+ array_of_indexes = [1, 0, 2, 4]
+
+ print *,'Values as REAL(4) at specific indexes'
+ call codes_get_element(igrib, "values", array_of_indexes, values_real4)
+ do i = 1, 4
+ print *, array_of_indexes(i), values_real4(i)
+ end do
+
+ print *,'Values as REAL(8) at specific indexes'
+ call codes_get_element(igrib, "values", array_of_indexes, values_real8)
+ do i = 1, 4
+ print *, array_of_indexes(i), values_real8(i)
+ end do
+
+ i = 12
+ print *,'The Value REAL(4) at index=',i
+ call codes_get_element(igrib, "values", i, value_real4)
+ print *, value_real4
+
+ print *,'The Value REAL(8) at index=',i
+ call codes_get_element(igrib, "values", i, value_real8)
+ print *, value_real8
+
+ call codes_release(igrib)
+ call codes_close_file(infile)
+
+end program
diff --git a/examples/F90/grib_elements.sh b/examples/F90/grib_elements.sh
new file mode 100755
index 000000000..86ad91414
--- /dev/null
+++ b/examples/F90/grib_elements.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_elements
diff --git a/examples/F90/grib_get_data_real4.f90 b/examples/F90/grib_get_data_real4.f90
new file mode 100644
index 000000000..647724245
--- /dev/null
+++ b/examples/F90/grib_get_data_real4.f90
@@ -0,0 +1,76 @@
+! (C) Copyright 2005- 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.
+!
+!
+!
+program get_data_real4
+ use eccodes
+ implicit none
+ integer :: ifile
+ integer :: iret, i
+ real(kind=4), dimension(:), allocatable :: lats, lons, values
+ integer, dimension(:), allocatable :: bitmap
+ integer(4) :: numberOfPoints
+ logical :: is_missing_value
+ integer :: count1 = 0, count2 = 0, bitmapPresent = 0, bmp_len = 0
+ integer :: igrib ! message identifier
+
+ ifile = 5
+
+ call codes_open_file(ifile, '../../data/reduced_latlon_surface.grib2', 'r')
+
+ ! loop on all the messages in the file
+ do while (.true.)
+ call codes_grib_new_from_file(ifile, igrib, iret)
+ if (iret == CODES_END_OF_FILE) exit
+
+ count1 = count1 + 1
+ print *, "===== Message #", count1
+ call codes_get(igrib, 'numberOfPoints', numberOfPoints)
+ call codes_get(igrib, 'bitmapPresent', bitmapPresent)
+
+ allocate (lats(numberOfPoints))
+ allocate (lons(numberOfPoints))
+ allocate (values(numberOfPoints))
+ if (bitmapPresent == 1) then
+ ! get the bitmap
+ call codes_get_size(igrib, 'bitmap', bmp_len)
+ allocate (bitmap(bmp_len))
+ call codes_get(igrib, 'bitmap', bitmap)
+ end if
+
+ call codes_grib_get_data(igrib, lats, lons, values)
+
+ do i = 1, numberOfPoints
+ ! consult bitmap to see if the i'th value is missing
+ is_missing_value = .false.
+ if (bitmapPresent == 1 .and. bitmap(i) == 0) then
+ is_missing_value = .true.
+ end if
+ ! only print non-missing values
+ if (.not. is_missing_value) then
+ print *, lats(i), lons(i), values(i)
+ count2 = count2 + 1
+ end if
+ end do
+ print *, 'count of non-missing values=', count2
+ if (count2 /= 214661) then
+ call codes_check(-2, 'incorrect number of missing', '')
+ end if
+
+ deallocate (lats)
+ deallocate (lons)
+ deallocate (values)
+
+ call codes_release(igrib)
+
+ end do
+
+ call codes_close_file(ifile)
+
+end program
diff --git a/examples/F90/grib_get_data_real4.sh b/examples/F90/grib_get_data_real4.sh
new file mode 100755
index 000000000..b251fd645
--- /dev/null
+++ b/examples/F90/grib_get_data_real4.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_get_data_real4 > /dev/null
diff --git a/examples/F90/grib_get_keys.f90 b/examples/F90/grib_get_keys.f90
index 5a20b8179..7eae46d03 100644
--- a/examples/F90/grib_get_keys.f90
+++ b/examples/F90/grib_get_keys.f90
@@ -21,8 +21,8 @@ program grib_get_keys
real :: longitudeOfFirstPointInDegrees
real :: latitudeOfLastPointInDegrees
real :: longitudeOfLastPointInDegrees
- integer :: numberOfPointsAlongAParallel
- integer :: numberOfPointsAlongAMeridian
+ integer(4) :: numberOfPointsAlongAParallel
+ integer(8) :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values
integer :: numberOfValues
real :: average, min_val, max_val
diff --git a/examples/F90/grib_index.f90 b/examples/F90/grib_index.f90
index d0d248978..1d928e2ea 100644
--- a/examples/F90/grib_index.f90
+++ b/examples/F90/grib_index.f90
@@ -23,7 +23,7 @@ program index
character(len=20) :: oshortName
integer :: shortNameSize, numberSize, levelSize, stepSize
integer :: i, j, k, l
- integer :: idx, igrib, count1
+ integer :: idx, idx1, igrib, count1
character(len=10) :: index_file = 'index.idx'
! uncomment following line to load index from file
@@ -107,7 +107,10 @@ program index
! save the index to a file for later reuse
call codes_index_write(idx, index_file)
+ call codes_index_read(idx1, index_file)
+
call codes_index_release(idx)
+ call codes_index_release(idx1)
deallocate (level)
deallocate (shortName)
diff --git a/examples/F90/grib_keys_iterator_skip.f90 b/examples/F90/grib_keys_iterator_skip.f90
new file mode 100644
index 000000000..f6c58d227
--- /dev/null
+++ b/examples/F90/grib_keys_iterator_skip.f90
@@ -0,0 +1,57 @@
+! (C) Copyright 2005- 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.
+!
+!
+program keys_iterator_skip
+ use eccodes
+ implicit none
+ character(len=20) :: name_space
+ integer :: kiter, ifile, igrib, iret
+ character(len=256) :: key
+ character(len=256) :: value
+ character(len=512) :: all1
+ integer :: grib_count
+
+ call codes_open_file(ifile, &
+ '../../data/regular_latlon_surface.grib1', 'r')
+
+ ! Loop on all the messages in a file
+ grib_count = 0
+ do while (.true.)
+ call codes_grib_new_from_file(ifile, igrib, iret)
+ if (iret == CODES_END_OF_FILE) exit
+
+ grib_count = grib_count + 1
+ write (*, *) '-- GRIB N. ', grib_count, ' --'
+
+ ! Choose a namespace. E.g. "ls", "time", "parameter", "geography", "statistics"
+ name_space = 'ls'
+
+ call codes_keys_iterator_new(igrib, kiter, name_space)
+ call codes_skip_computed(kiter)
+ call codes_skip_coded(kiter)
+ call codes_skip_duplicates(kiter)
+ call codes_skip_read_only(kiter)
+
+ do
+ call codes_keys_iterator_next(kiter, iret)
+ if (iret .ne. CODES_SUCCESS) exit !terminate the loop
+
+ call codes_keys_iterator_get_name(kiter, key)
+ call codes_get(igrib, trim(key), value)
+ all1 = trim(key)//' = '//trim(value)
+ write (*, *) trim(all1)
+ end do
+
+ call codes_keys_iterator_delete(kiter)
+ call codes_release(igrib)
+ end do
+
+ call codes_close_file(ifile)
+
+end program keys_iterator_skip
diff --git a/examples/F90/grib_keys_iterator_skip.sh b/examples/F90/grib_keys_iterator_skip.sh
new file mode 100755
index 000000000..03b05fb8b
--- /dev/null
+++ b/examples/F90/grib_keys_iterator_skip.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_keys_iterator_skip
diff --git a/examples/F90/grib_multi.f90 b/examples/F90/grib_multi.f90
index c18b005fe..f225e6f04 100644
--- a/examples/F90/grib_multi.f90
+++ b/examples/F90/grib_multi.f90
@@ -16,7 +16,7 @@ program multi
use eccodes
implicit none
- integer :: iret, counter
+ integer :: iret, counter=0
integer(kind=4) :: step
integer :: ifile, igrib
diff --git a/examples/F90/grib_nearest_four_single.f90 b/examples/F90/grib_nearest_four_single.f90
new file mode 100644
index 000000000..674745bfd
--- /dev/null
+++ b/examples/F90/grib_nearest_four_single.f90
@@ -0,0 +1,31 @@
+! (C) Copyright 2005- 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.
+!
+program find_nearest_4single
+ use eccodes
+ implicit none
+ integer :: infile, i
+ integer :: igrib
+ real(8) :: inlat = 5, inlon = 10
+ real(8) :: outlats(4), outlons(4)
+ real(8) :: values(4), distances(4)
+ integer(kind=kindOfInt) :: indexes(4)
+
+ call codes_open_file(infile, '../../data/reduced_gaussian_lsm.grib1', 'r')
+ call codes_grib_new_from_file(infile, igrib)
+
+ call codes_grib_find_nearest_four_single(igrib, .true., inlat, inlon, outlats, outlons, values, distances, indexes)
+ call codes_release(igrib)
+
+ call codes_close_file(infile)
+
+ print *, ' outlats outlons values distances indexes'
+ do i = 1, 4
+ write (*, '(F10.3, F10.3, F10.5, F10.3, I8)') outlats(i), outlons(i), values(i), distances(i), indexes(i)
+ end do
+end program
diff --git a/examples/F90/grib_nearest_four_single.sh b/examples/F90/grib_nearest_four_single.sh
new file mode 100755
index 000000000..22b07624f
--- /dev/null
+++ b/examples/F90/grib_nearest_four_single.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_nearest_four_single
diff --git a/examples/F90/grib_nearest_single.f90 b/examples/F90/grib_nearest_single.f90
new file mode 100644
index 000000000..5be355f9b
--- /dev/null
+++ b/examples/F90/grib_nearest_single.f90
@@ -0,0 +1,30 @@
+! (C) Copyright 2005- 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.
+!
+program find_nearest_single
+ use eccodes
+ implicit none
+ integer :: infile
+ integer :: igrib
+ real(8) :: inlat = 5, inlon = 10
+ real(8) :: outlat, outlon
+ real(8) :: value, distance
+ integer(kind=kindOfInt) :: index
+
+ call codes_open_file(infile, '../../data/reduced_gaussian_lsm.grib1', 'r')
+ call codes_grib_new_from_file(infile, igrib)
+
+ call codes_grib_find_nearest_single(igrib, .true., inlat, inlon, outlat, outlon, value, distance, index)
+ call codes_release(igrib)
+
+ call codes_close_file(infile)
+
+ print *, ' outlat outlon value distance index'
+ write (*, '(F10.3, F10.3, F10.5, F10.3, I8)') outlat, outlon, value, distance, index
+
+end program find_nearest_single
diff --git a/examples/F90/grib_nearest_single.sh b/examples/F90/grib_nearest_single.sh
new file mode 100755
index 000000000..0443595dd
--- /dev/null
+++ b/examples/F90/grib_nearest_single.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_nearest_single
diff --git a/examples/F90/grib_print_data_static.f90 b/examples/F90/grib_print_data_static.f90
index d7e9d4b37..17a96d325 100644
--- a/examples/F90/grib_print_data_static.f90
+++ b/examples/F90/grib_print_data_static.f90
@@ -12,7 +12,7 @@
! rather than the new ALLOCATABLE array
!
!
-program print_data
+program print_data_static
use grib_api
implicit none
integer :: ifile
@@ -55,4 +55,4 @@ program print_data
call grib_release(igrib)
call grib_close_file(ifile)
-end program print_data
+end program
diff --git a/examples/F90/grib_read_bytes.f90 b/examples/F90/grib_read_bytes.f90
new file mode 100644
index 000000000..c118bdab4
--- /dev/null
+++ b/examples/F90/grib_read_bytes.f90
@@ -0,0 +1,27 @@
+! (C) Copyright 2005- 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.
+!
+!
+program read_bytes
+ use eccodes
+ implicit none
+ integer :: ifile
+ integer :: intsize
+ parameter(intsize=10000)
+ character, dimension(intsize) :: bufferChar
+ character(len=32) :: input_grib_file = '../../data/v.grib2'
+
+ call codes_open_file(ifile, input_grib_file, 'r')
+
+ ! First 4 chars should be 'GRIB'
+ call codes_read_bytes(ifile, bufferChar, 4)
+ print*, bufferChar(1:5)
+
+ call codes_close_file(ifile)
+
+end program
diff --git a/examples/F90/grib_read_bytes.sh b/examples/F90/grib_read_bytes.sh
new file mode 100755
index 000000000..37858c63f
--- /dev/null
+++ b/examples/F90/grib_read_bytes.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+${examples_dir}/eccodes_f_grib_read_bytes
diff --git a/examples/F90/grib_sections_copy.f90 b/examples/F90/grib_sections_copy.f90
new file mode 100644
index 000000000..93e72675f
--- /dev/null
+++ b/examples/F90/grib_sections_copy.f90
@@ -0,0 +1,39 @@
+! (C) Copyright 2005- 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.
+!
+!
+program grib_sections_copy
+ use eccodes
+ implicit none
+
+ integer :: igrib_a, igrib_b, igrib_c, iret
+ character(len=40) :: error_message
+
+ call codes_grib_new_from_samples(igrib_a, 'regular_ll_sfc_grib1')
+ call codes_grib_new_from_samples(igrib_b, 'reduced_gg_pl_640_grib1')
+
+ ! Turn all bits on:
+ ! GRIB_SECTION_PRODUCT, GRIB_SECTION_GRID, GRIB_SECTION_LOCAL
+ ! GRIB_SECTION_DATA, GRIB_SECTION_BITMAP
+ call codes_grib_util_sections_copy(igrib_a, igrib_b, 31, igrib_c)
+
+ call codes_release(igrib_a)
+ call codes_release(igrib_b)
+ call codes_release(igrib_c)
+
+ ! Try from grib1 to grib2
+ call codes_grib_new_from_samples(igrib_a, 'GRIB1')
+ call codes_grib_new_from_samples(igrib_b, 'GRIB2')
+ call codes_grib_util_sections_copy(igrib_a, igrib_b, 31, igrib_c, iret)
+ if (iret /= GRIB_DIFFERENT_EDITION) then
+ call codes_check(CODES_INTERNAL_ERROR, 'Error', 'codes_grib_util_sections_copy: Should have failed')
+ end if
+ call codes_get_error_string(iret, error_message)
+ write (*, *) 'error message: ', adjustl( adjustr(trim(error_message)) )
+
+end program
diff --git a/examples/F90/grib_sections_copy.sh b/examples/F90/grib_sections_copy.sh
new file mode 100755
index 000000000..548401df9
--- /dev/null
+++ b/examples/F90/grib_sections_copy.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+export ECCODES_DEBUG=-1
+${examples_dir}/eccodes_f_grib_sections_copy
diff --git a/examples/F90/grib_set_data_force.f90 b/examples/F90/grib_set_data_force.f90
new file mode 100644
index 000000000..d8762e649
--- /dev/null
+++ b/examples/F90/grib_set_data_force.f90
@@ -0,0 +1,55 @@
+! (C) Copyright 2005- 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.
+!
+!
+program set_data_force
+ use eccodes
+ implicit none
+ integer :: outfile
+ integer :: i, igrib, iret, numberOfValues, cnt
+ real :: d, e
+ real(4), dimension(:), allocatable :: values_real4
+ real(8), dimension(:), allocatable :: values_real8
+ integer, parameter :: max_strsize = 200
+ character(len=max_strsize) :: outfile_name
+
+ call getarg(1, outfile_name)
+ call codes_open_file(outfile, outfile_name, 'w')
+
+ call codes_grib_new_from_samples(igrib, 'regular_ll_pl_grib1')
+
+ call codes_get_size(igrib, 'values', numberOfValues)
+
+ allocate (values_real4(numberOfValues), stat=iret)
+ allocate (values_real8(numberOfValues), stat=iret)
+ d = 10e-8
+ e = d
+ cnt = 1
+ do i = 1, numberOfValues
+ if (cnt > 100) then
+ e = e*10
+ cnt = 1
+ end if
+ values_real4(i) = d
+ values_real8(i) = d
+ d = d + e
+ cnt = cnt + 1
+ end do
+
+ call codes_set(igrib, 'bitsPerValue', 16)
+ call codes_set(igrib, 'bitmapPresent', 1)
+
+ ! set data values
+ call codes_set_force(igrib, 'codedValues', values_real4)
+ call codes_set_force(igrib, 'codedValues', values_real8)
+ call codes_write(igrib, outfile)
+ call codes_release(igrib)
+ deallocate (values_real4)
+ deallocate (values_real8)
+
+end program set_data_force
diff --git a/examples/F90/grib_set_data_force.sh b/examples/F90/grib_set_data_force.sh
new file mode 100755
index 000000000..d4f357b3a
--- /dev/null
+++ b/examples/F90/grib_set_data_force.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# (C) Copyright 2005- 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.
+
+. ./include.ctest.sh
+
+OUT=temp.f_grib_set_data_force.out.grib
+
+${examples_dir}/eccodes_f_grib_set_data_force $OUT
+
+rm -f $OUT
diff --git a/examples/F90/grib_set_gvc.f90 b/examples/F90/grib_set_gvc.f90
index af6a340ec..08d0ef7a0 100644
--- a/examples/F90/grib_set_gvc.f90
+++ b/examples/F90/grib_set_gvc.f90
@@ -15,8 +15,12 @@
program set
use eccodes
implicit none
- integer :: infile, outfile
- integer :: igrib
+ integer :: infile, outfile
+ integer :: igrib
+ real(4) :: nlev_real4 = 12.21
+ real(8) :: nlev_real8 = 12.21
+ integer(4) :: PDTN_int = 11
+ integer(8) :: PDTN_long = 11
call codes_open_file(infile, '../../data/sample.grib2', 'r')
@@ -25,13 +29,15 @@ program set
call codes_grib_new_from_file(infile, igrib)
! individual ensemble forecast
- call codes_set(igrib, 'productDefinitionTemplateNumber', 11)
+ call codes_set(igrib, 'productDefinitionTemplateNumber', PDTN_int)
+ call codes_set(igrib, 'productDefinitionTemplateNumber', PDTN_long)
! select level type as Generalized Vertical Height Coordinate
call codes_set(igrib, 'typeOfLevel', 'generalVertical')
! now set keys specific to this level type
- call codes_set(igrib, 'nlev', 12.21)
+ call codes_set(igrib, 'nlev', nlev_real4)
+ call codes_set(igrib, 'nlev', nlev_real8)
call codes_set(igrib, 'numberOfVGridUsed', 13.55)
! check integrity of GRIB message
diff --git a/examples/F90/grib_set_missing.f90 b/examples/F90/grib_set_missing.f90
index 7c0887571..44160fbee 100644
--- a/examples/F90/grib_set_missing.f90
+++ b/examples/F90/grib_set_missing.f90
@@ -11,7 +11,7 @@
!
!
!
-program set
+program set_missing
use eccodes
implicit none
integer :: infile, outfile
@@ -48,4 +48,4 @@ program set
call codes_close_file(infile)
call codes_close_file(outfile)
-end program set
+end program
diff --git a/examples/F90/include.sh b/examples/F90/include.sh
deleted file mode 100755
index 74403ee37..000000000
--- a/examples/F90/include.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-# (C) Copyright 2005- 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.
-
-CMAKE_INCLUDE_FILE=include.ctest.sh
-if [ -f "$CMAKE_INCLUDE_FILE" ]; then
- # This is the config file for Cmake tests
- . ./$CMAKE_INCLUDE_FILE
-
-else
- set -eax
-
- echo
- echo "TEST: $0"
-
- if [ -z "${data_dir}" ]
- then
- cd ../../
- cpath=`pwd`
- ECCODES_DEFINITION_PATH=$cpath/definitions
- export ECCODES_DEFINITION_PATH
- ECCODES_SAMPLES_PATH=$cpath/samples
- export ECCODES_SAMPLES_PATH
- tools_dir=$cpath/tools
- examples_dir=$cpath/examples/F90
- data_dir=$cpath/data
- samples_dir=$cpath/samples
-
- if test "x$ECCODES_TEST_WITH_VALGRIND" != "x"; then
- tools_dir="valgrind --error-exitcode=1 -q $cpath/tools"
- examples_dir="valgrind --error-exitcode=1 -q $cpath/examples/F90"
- fi
-
- else
- echo "Skipping test $0"
- exit
- fi
-
- cd "$cpath/examples/F90"
-
- if [ -z "${GRIB_API_INCLUDE}" ]
- then
- GRIB_API_INCLUDE=`pwd`/src
- fi
-
- if [ -z "${GRIB_API_LIB}" ]
- then
- GRIB_API_LIB=`pwd`/src
- fi
-
- # Download the data needed for tests
- ${data_dir}/download.sh "${data_dir}"
-
- set -u
-fi
diff --git a/examples/F90/set_missing_fortran.f90 b/examples/F90/set_missing_fortran.f90
index d0ae2403b..093092aa4 100644
--- a/examples/F90/set_missing_fortran.f90
+++ b/examples/F90/set_missing_fortran.f90
@@ -9,7 +9,7 @@
! Description: how to set key values.
!
!
-program set
+program set_missing_fortran
use eccodes
implicit none
integer :: infile, outfile
@@ -40,4 +40,4 @@ program set
call codes_close_file(outfile)
-end program set
+end program
diff --git a/examples/python/CMakeLists.txt b/examples/python/CMakeLists.txt
index 42d8a2c52..abbf8b21a 100644
--- a/examples/python/CMakeLists.txt
+++ b/examples/python/CMakeLists.txt
@@ -3,7 +3,7 @@
# Configure the file which all CMake tests will include
configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
-execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include.sh ${CMAKE_CURRENT_BINARY_DIR} )
+# execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include.sh ${CMAKE_CURRENT_BINARY_DIR} )
# Build the executables used by test scripts
################################################
diff --git a/examples/python/include.sh b/examples/python/include.sh
deleted file mode 100644
index e91fdd3d6..000000000
--- a/examples/python/include.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-CMAKE_INCLUDE_FILE=include.ctest.sh
-if [ -f "$CMAKE_INCLUDE_FILE" ]; then
- # This is the config file for Cmake tests
- . ./$CMAKE_INCLUDE_FILE
-
-else
- set -eax
- echo
- echo "TEST: $0"
-
- cpath=$TOPBUILDDIR
- ECCODES_DEFINITION_PATH=$cpath/definitions
- export ECCODES_DEFINITION_PATH
- ECCODES_SAMPLES_PATH=$cpath/samples
- export ECCODES_SAMPLES_PATH
- tools_dir=$cpath/tools
- examples_dir=$cpath/examples/python
- data_dir=$cpath/data
- examples_src=$examples_dir
-
- PYTHONPATH=$cpath/python:$cpath/python/.libs:$PYTHONPATH
- export PYTHONPATH
-
- HAVE_MEMFS=0
- ECCODES_ON_WINDOWS=0
-
- # Download the data needed for tests
- ${data_dir}/download.sh "${data_dir}"
-
- set -u
-
-fi
diff --git a/fortran/CMakeLists.txt b/fortran/CMakeLists.txt
index 650296c06..979ad0652 100644
--- a/fortran/CMakeLists.txt
+++ b/fortran/CMakeLists.txt
@@ -38,9 +38,6 @@ if( HAVE_FORTRAN )
COMMAND cat ${srcdir}/eccodes_f90_head.f90 ${srcdir}/${_long_int_interface_ec} ${srcdir}/${_sizet_int_interface_ec} ${srcdir}/eccodes_f90_tail.f90 > eccodes_f90.f90
DEPENDS eccodes_f90_head.f90 eccodes_f90_tail.f90 grib_kinds.h ${_long_int_interface_ec} ${_sizet_int_interface_ec} )
- #ecbuild_add_library( TARGET eccodes_f77
- # SOURCES grib_fortran.c grib_f77.c
- # LIBS eccodes )
# Note: $ will be present only while building (for the whole bundle),
# whereas $ is only present once you install the package / bundle
@@ -82,7 +79,7 @@ if( HAVE_FORTRAN )
ecbuild_add_resources( TARGET fortran_resources
PACK
- grib_fortran_prototypes.h grib_api_constants.h grib_api_externals.h
+ grib_api_constants.h grib_api_externals.h
grib_api_visibility.h grib_types.f90 create_grib_f90.sh
grib_f90.f90.head grib_f90.f90.tail grib_f90_int.f90 grib_f90_long_int.f90
grib_f90_int_size_t.f90 grib_f90_long_size_t.f90
diff --git a/fortran/eccodes_f90_tail.f90 b/fortran/eccodes_f90_tail.f90
index faf4e7e36..24551f8de 100644
--- a/fortran/eccodes_f90_tail.f90
+++ b/fortran/eccodes_f90_tail.f90
@@ -2597,8 +2597,8 @@
real(kind=kindOfDouble), intent(in) :: inlon
real(kind=kindOfDouble), intent(out) :: outlat
real(kind=kindOfDouble), intent(out) :: outlon
- real(kind=kindOfDouble), intent(out) :: distance
real(kind=kindOfDouble), intent(out) :: value
+ real(kind=kindOfDouble), intent(out) :: distance
integer(kind=kindOfInt), intent(out) :: kindex
integer(kind=kindOfInt), optional, intent(out) :: status
diff --git a/fortran/fortranCtypes/sizes.c b/fortran/fortranCtypes/sizes.c
index 913437fb6..63f4e5ba8 100644
--- a/fortran/fortranCtypes/sizes.c
+++ b/fortran/fortranCtypes/sizes.c
@@ -5,41 +5,40 @@ void grib_check_fortran_char(char* a) {
*a='f';
}
void grib_check_fortran_char_(char* a) {grib_check_fortran_char(a);}
-void grib_check_fortran_char__(char* a) {grib_check_fortran_char(a);}
+
void check_double(double *x,double *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_double_(double *x,double *y,char* ret) {check_double(x,y,ret);}
-void check_double__(double *x,double *y,char* ret) {check_double(x,y,ret);}
+
void check_float(float *x,float *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_float_(float *x,float *y,char* ret) { check_float(x,y,ret); }
-void check_float__(float *x,float *y,char* ret) { check_float(x,y,ret); }
+
void check_int(int *x,int *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_int_(int *x,int *y,char* ret) { check_int(x,y,ret); }
-void check_int__(int *x,int *y,char* ret) { check_int(x,y,ret); }
+
void check_long(long *x,long *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_long_(long *x,long *y,char* ret) {check_long(x,y,ret);}
-void check_long__(long *x,long *y,char* ret) {check_long(x,y,ret);}
+
void check_size_t(size_t *x,size_t *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_size_t_(size_t *x,size_t *y,char* ret) {check_size_t(x,y,ret);}
-void check_size_t__(size_t *x,size_t *y,char* ret) {check_size_t(x,y,ret);}
+
void check_long_long(long long *x,long long *y,char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
void check_long_long_(long long *x,long long *y,char* ret) {check_long_long(x,y,ret);}
-void check_long_long__(long long *x,long long *y,char* ret) {check_long_long(x,y,ret);}
diff --git a/fortran/grib_api_externals.h b/fortran/grib_api_externals.h
index f41562c02..f789fb92e 100644
--- a/fortran/grib_api_externals.h
+++ b/fortran/grib_api_externals.h
@@ -20,7 +20,7 @@ integer, external :: grib_f_skip_computed, &
integer, external :: grib_f_keys_iterator_get_name, &
grib_f_keys_iterator_rewind
integer, external :: grib_f_new_from_message, &
- grib_f_new_from_message_copy, &
+ grib_f_new_from_message_int, &
grib_f_new_from_samples, &
codes_bufr_f_new_from_samples, &
grib_f_read_any_from_file, &
diff --git a/fortran/grib_f77.c b/fortran/grib_f77.c
deleted file mode 100644
index 8c10c44b9..000000000
--- a/fortran/grib_f77.c
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * (C) Copyright 2005- 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.
- */
-
-#include "grib_api_internal.h"
-#include "grib_fortran_prototypes.h"
-
-int grib_read_file_(int* fid, char* buffer, size_t* nbytes) {
- return grib_f_read_file_(fid,buffer,nbytes);
-}
-
-int grib_read_file__(int* fid, char* buffer, size_t* nbytes) {
- return grib_f_read_file_(fid,buffer,nbytes);
-}
-
-int grib_open_file_(int* fid, char* name , char* op, int lname, int lop){
- return grib_f_open_file_( fid, name , op, lname, lop);
-}
-
-int grib_open_file__(int* fid, char* name , char* op, int lname, int lop){
- return grib_f_open_file_( fid, name , op, lname, lop);
-}
-
-int grib_close_file_(int* fid){
- return grib_f_close_file_(fid);
-}
-
-int grib_close_file__(int* fid){
- return grib_f_close_file_(fid);
-}
-
-int grib_multi_support_on_(){
- return grib_f_multi_support_on_();
-}
-
-int grib_multi_support_on__(){
- return grib_f_multi_support_on_();
-}
-
-int grib_multi_support_off_(){
- return grib_f_multi_support_off_();
-}
-
-int grib_multi_support_off__(){
- return grib_f_multi_support_off_();
-}
-
-int grib_iterator_new_(int* gid,int* iterid,int* mode) {
- return grib_f_iterator_new_(gid,iterid,mode);
-}
-
-int grib_iterator_new__(int* gid,int* iterid,int* mode) {
- return grib_f_iterator_new_(gid,iterid,mode);
-}
-
-int grib_iterator_next_(int* iterid,double* lat,double* lon,double* value) {
- return grib_f_iterator_next_(iterid,lat,lon,value);
-}
-
-int grib_iterator_next__(int* iterid,double* lat,double* lon,double* value) {
- return grib_f_iterator_next_(iterid,lat,lon,value);
-}
-
-int grib_iterator_delete_(int* iterid) {
- return grib_f_iterator_delete_(iterid);
-}
-
-int grib_iterator_delete__(int* iterid) {
- return grib_f_iterator_delete_(iterid);
-}
-
-int grib_keys_iterator_new__(int* gid,int* iterid,char* name_space,int len) {
- return grib_f_keys_iterator_new_(gid,iterid,name_space,len);
-}
-
-int grib_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) {
- return grib_f_keys_iterator_new_(gid,iterid,name_space,len);
-}
-
-int grib_keys_iterator_next_(int* iterid) {
- return grib_f_keys_iterator_next_(iterid);
-}
-
-int grib_keys_iterator_next__(int* iterid) {
- return grib_f_keys_iterator_next_(iterid);
-}
-
-int grib_keys_iterator_delete_(int* iterid) {
- return grib_f_keys_iterator_delete_(iterid);
-}
-
-int grib_keys_iterator_delete__(int* iterid) {
- return grib_f_keys_iterator_delete_(iterid);
-}
-
-int grib_gribex_mode_on_() {
- grib_gribex_mode_on(0);
- return GRIB_SUCCESS;
-}
-
-int grib_gribex_mode_on__() {
- grib_gribex_mode_on(0);
- return GRIB_SUCCESS;
-}
-
-int grib_gribex_mode_off_() {
- grib_gribex_mode_off(0);
- return GRIB_SUCCESS;
-}
-
-int grib_gribex_mode_off__() {
- grib_gribex_mode_off(0);
- return GRIB_SUCCESS;
-}
-
-int grib_skip_computed_(int* iterid) {
- return grib_skip_computed_(iterid);
-}
-
-int grib_skip_computed__(int* iterid) {
- return grib_skip_computed_(iterid);
-}
-
-int grib_skip_coded_(int* iterid) {
- return grib_f_skip_coded_(iterid);
-}
-
-int grib_skip_coded__(int* iterid) {
- return grib_f_skip_coded_(iterid);
-}
-
-int grib_skip_edition_specific_(int* iterid) {
- return grib_f_skip_edition_specific_(iterid);
-}
-
-int grib_skip_edition_specific__(int* iterid) {
- return grib_f_skip_edition_specific_(iterid);
-}
-
-int grib_skip_duplicates_(int* iterid) {
- return grib_f_skip_duplicates_(iterid);
-}
-
-int grib_skip_duplicates__(int* iterid) {
- return grib_f_skip_duplicates_(iterid);
-}
-
-int grib_skip_read_only_(int* iterid) {
- return grib_f_skip_read_only_(iterid);
-}
-
-int grib_skip_read_only__(int* iterid) {
- return grib_f_skip_read_only_(iterid);
-}
-
-int grib_skip_function_(int* iterid) {
- return grib_f_skip_function_(iterid);
-}
-
-int grib_skip_function__(int* iterid) {
- return grib_f_skip_function_(iterid);
-}
-
-int grib_keys_iterator_get_name_(int* kiter,char* name,int len) {
- return grib_f_keys_iterator_get_name_(kiter,name,len);
-}
-
-int grib_keys_iterator_get_name__(int* kiter,char* name,int len) {
- return grib_f_keys_iterator_get_name_(kiter,name,len);
-}
-
-int grib_keys_iterator_rewind_(int* kiter) {
- return grib_f_keys_iterator_rewind_(kiter);
-}
-
-int grib_keys_iterator_rewind__(int* kiter) {
- return grib_f_keys_iterator_rewind_(kiter);
-}
-
-int grib_new_from_message_(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_(gid, buffer , bufsize);
-}
-
-int grib_new_from_message__(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_(gid, buffer , bufsize);
-}
-
-int grib_new_from_message_copy_(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_copy_(gid, buffer , bufsize);
-}
-
-int grib_new_from_message_copy__(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_copy_(gid, buffer , bufsize);
-}
-
-int grib_new_from_samples_(int* gid, char* name , int lname){
- return grib_f_new_from_samples_( gid, name , lname);
-}
-
-int grib_new_from_samples__(int* gid, char* name , int lname){
- return grib_f_new_from_samples_( gid, name , lname);
-}
-
-int grib_clone_(int* gidsrc,int* giddest){
- return grib_f_clone_(gidsrc, giddest);
-}
-
-int grib_clone__(int* gidsrc,int* giddest){
- return grib_f_clone_(gidsrc, giddest);
-}
-
-int grib_new_from_file_(int* fid, int* gid){
- return grib_f_new_from_file_( fid, gid);
-}
-
-int grib_new_from_file__(int* fid, int* gid){
- return grib_f_new_from_file_( fid, gid);
-}
-
-int grib_release_(int* hid){
- return grib_f_release_( hid);
-}
-
-int grib_release__(int* hid){
- return grib_f_release_( hid);
-}
-
-int grib_dump_(int* gid){
- return grib_f_dump_( gid);
-}
-
-int grib_dump__(int* gid){
- return grib_f_dump_( gid);
-}
-
-int grib_get_error_string_(int* err, char* buf, int len){
- return grib_f_get_error_string_(err,buf,len);
-}
-
-int grib_get_error_string__(int* err, char* buf, int len){
- return grib_f_get_error_string_(err,buf,len);
-}
-
-int grib_get_size_(int* gid, char* key, int* val, int len){
- return grib_f_get_size_int_( gid, key, val, len);
-}
-
-int grib_get_size__(int* gid, char* key, int* val, int len){
- return grib_f_get_size_int_( gid, key, val, len);
-}
-
-int grib_get_int_(int* gid, char* key, int* val, int len){
- return grib_f_get_int_( gid, key, val, len);
-}
-
-int grib_get_int__(int* gid, char* key, int* val, int len){
- return grib_f_get_int_( gid, key, val, len);
-}
-
-int grib_get_int_array_(int* gid, char* key, int*val, int* size, int len){
- return grib_f_get_int_array_( gid, key, val, size, len);
-}
-
-int grib_get_int_array__(int* gid, char* key, int*val, int* size, int len){
- return grib_f_get_int_array_( gid, key, val, size, len);
-}
-
-int grib_set_int_array_(int* gid, char* key, int* val, int* size, int len){
- return grib_f_set_int_array_( gid, key, val, size, len);
-}
-
-int grib_set_int_array__(int* gid, char* key, int* val, int* size, int len){
- return grib_f_set_int_array_( gid, key, val, size, len);
-}
-
-int grib_set_int_(int* gid, char* key, int* val, int len){
- return grib_f_set_int_( gid, key, val, len);
-}
-
-int grib_set_int__(int* gid, char* key, int* val, int len){
- return grib_f_set_int_( gid, key, val, len);
-}
-
-int grib_set_missing_(int* gid, char* key, int len){
- return grib_f_set_missing_( gid, key, len);
-}
-
-int grib_set_missing__(int* gid, char* key, int len){
- return grib_f_set_missing_( gid, key, len);
-}
-
-int grib_set_real4_(int* gid, char* key, float* val, int len){
- return grib_f_set_real4_( gid, key, val, len);
-}
-
-int grib_set_real4__(int* gid, char* key, float* val, int len){
- return grib_f_set_real4_( gid, key, val, len);
-}
-
-int grib_get_real4_(int* gid, char* key, float* val, int len){
- return grib_f_get_real4_( gid, key, val, len);
-}
-
-int grib_get_real4__(int* gid, char* key, float* val, int len){
- return grib_f_get_real4_( gid, key, val, len);
-}
-
-int grib_get_real4_array_(int* gid, char* key, float* val, int* size, int len){
- return grib_f_get_real4_array_( gid, key, val, size, len);
-}
-
-int grib_get_real4_element_(int* gid, char* key, int* index,float* val, int len){
- return grib_f_get_real4_element_( gid, key, index,val, len);
-}
-
-int grib_get_real4_element__(int* gid, char* key,int* index, float* val, int len){
- return grib_f_get_real4_element_( gid, key, index, val, len);
-}
-
-int grib_get_real4_elements__(int* gid, char* key,int* index, float* val,int* len,int size){
- return grib_f_get_real4_elements_( gid, key, index, val, len,size);
-}
-
-int grib_get_real4_elements_(int* gid, char* key,int* index, float* val,int* len,int size){
- return grib_f_get_real4_elements_( gid, key, index, val, len,size);
-}
-
-int grib_get_real4_array__(int* gid, char* key, float* val, int* size, int len){
- return grib_f_get_real4_array_( gid, key, val, size, len);
-}
-
-int grib_set_real4_array_(int* gid, char* key, float*val, int* size, int len){
- return grib_f_set_real4_array_( gid, key, val, size, len);
-}
-
-int grib_set_real4_array__(int* gid, char* key, float*val, int* size, int len){
- return grib_f_set_real4_array_( gid, key, val, size, len);
-}
-
-int grib_set_real8_(int* gid, char* key, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_set_real8_( gid, key, val, len);
-}
-
-int grib_set_real8__(int* gid, char* key, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_set_real8_( gid, key, val, len);
-}
-
-int grib_get_real8_(int* gid, char* key, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_( gid, key, val, len);
-}
-
-int grib_get_real8__(int* gid, char* key, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_( gid, key, val, len);
-}
-
-int grib_get_real8_element_(int* gid, char* key,int* index, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_element_( gid, key, index,val, len);
-}
-
-int grib_get_real8_element__(int* gid, char* key,int* index, double* val, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_element_( gid, key, index,val, len);
-}
-
-int grib_get_real8_elements_(int* gid, char* key, int* index,double* val, int* len,int size){
- return grib_f_get_real8_elements_( gid, key, index, val,len,size);
-}
-
-int grib_get_real8_elements__(int* gid, char* key, int* index,double* val, int* len,int size){
- return grib_f_get_real8_elements_( gid, key, index, val,len,size);
-}
-
-
-int grib_get_real8_array_(int* gid, char* key, double*val, int* size, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_array_( gid, key, val, size, len);
-}
-
-int grib_get_real8_array__(int* gid, char* key, double*val, int* size, int len){
- Assert(sizeof(double) == 8);
- return grib_f_get_real8_array_( gid, key, val, size, len);
-}
-
-int grib_set_real8_array_(int* gid, char* key, double *val, int* size, int len){
- Assert(sizeof(double) == 8);
- return grib_f_set_real8_array_( gid, key, val, size, len);
-}
-
-int grib_set_real8_array__(int* gid, char* key, double *val, int* size, int len){
- Assert(sizeof(double) == 8);
- return grib_f_set_real8_array_( gid, key, val, size, len);
-}
-
-int grib_get_string_(int* gid, char* key, char* val, int len, int len2){
- return grib_f_get_string_( gid, key, val, len, len2);
-}
-
-int grib_get_string__(int* gid, char* key, char* val, int len, int len2){
- return grib_f_get_string_( gid, key, val, len, len2);
-}
-
-int grib_set_string_(int* gid, char* key, char* val, int len, int len2){
- return grib_f_set_string_( gid, key, val, len, len2);
-}
-
-int grib_set_string__(int* gid, char* key, char* val, int len, int len2){
- return grib_f_set_string_( gid, key, val, len, len2);
-}
-
-int grib_get_message_size_(int* gid, size_t *len){
- return grib_f_get_message_size_( gid, len);
-}
-
-int grib_get_message_size__(int* gid, size_t *len){
- return grib_f_get_message_size_( gid, len);
-}
-
-void grib_check_(int* err){
- grib_f_check_(err,"","",0,0);
-}
-
-void grib_check__(int* err){
- grib_f_check_(err,"","",0,0);
-}
-
-int grib_write_(int* gid, int* fid) {
- return grib_f_write_(gid,fid);
-}
-
-int grib_write__(int* gid, int* fid) {
- return grib_f_write_(gid,fid);
-}
-
-int grib_multi_write_(int* gid, int* fid) {
- return grib_f_multi_write_(gid,fid);
-}
-
-int grib_multi_write__(int* gid, int* fid) {
- return grib_f_multi_write_(gid,fid);
-}
-
-int grib_multi_append_(int* ingid, int* sec,int* mgid) {
- return grib_f_multi_append_(ingid,sec,mgid);
-}
-
-int grib_multi_append__(int* ingid, int* sec,int* mgid) {
- return grib_f_multi_append_(ingid,sec,mgid);
-}
-
-int grib_find_nearest_multiple_(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes, int* npoints) {
-
- return grib_f_find_nearest_multiple_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes,npoints);
-}
-int grib_find_nearest_multiple__(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes, int* npoints) {
-
- return grib_f_find_nearest_multiple_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes,npoints);
-}
-
-int grib_find_nearest_single_(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
-int grib_find_nearest_single__(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
-
-int grib_copy_message_(int* gid, void* mess,size_t* len){
- return grib_f_copy_message_(gid, mess,len);
-}
-int grib_copy_message__(int* gid, void* mess,size_t* len){
- return grib_f_copy_message_(gid, mess,len);
-}
-
-
diff --git a/fortran/grib_f90_tail.f90 b/fortran/grib_f90_tail.f90
index 600e621a5..c178eedbe 100644
--- a/fortran/grib_f90_tail.f90
+++ b/fortran/grib_f90_tail.f90
@@ -1365,7 +1365,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'new_from_message', '')
+ call grib_check(iret, 'new_from_message_char', '')
end if
end subroutine grib_new_from_message_char
@@ -1394,11 +1394,13 @@
integer(kind=kindOfInt) :: iret
size_bytes = size(message, dim=1)*sizeOfInteger4
- iret = grib_f_new_from_message(gribid, message, size_bytes)
+ ! See SUP-3893
+ !iret = grib_f_new_from_message(gribid, message, size_bytes)
+ iret = grib_f_new_from_message_int(gribid, message, size_bytes)
if (present(status)) then
status = iret
else
- call grib_check(iret, 'new_from_message', '')
+ call grib_check(iret, 'new_from_message_int4', '')
end if
end subroutine grib_new_from_message_int4
@@ -2314,7 +2316,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'get', key)
+ call grib_check(iret, 'get_real4_elements', key)
end if
end subroutine grib_get_real4_elements
@@ -2346,7 +2348,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'get', key)
+ call grib_check(iret, 'get_real8_elements', key)
end if
end subroutine grib_get_real8_elements
@@ -2647,7 +2649,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'set', key)
+ call grib_check(iret, 'set_force_real4_array', key)
end if
end subroutine grib_set_force_real4_array
@@ -2663,12 +2665,12 @@
!> @param value real(8) array value
!> @param status GRIB_SUCCESS if OK, integer value on error
subroutine grib_set_force_real8_array(gribid, key, value, status)
- integer(kind=kindOfInt), intent(in) :: gribid
- character(len=*), intent(in) :: key
- real(kind=kindOfDouble), dimension(:), intent(in) :: value
- integer(kind=kindOfInt), optional, intent(out) :: status
- integer(kind=kindOfInt) :: iret
- integer(kind=kindOfInt) :: nb_values
+ integer(kind=kindOfInt), intent(in) :: gribid
+ character(len=*), intent(in) :: key
+ real(kind=kindOfDouble), dimension(:), intent(in) :: value
+ integer(kind=kindOfInt), optional, intent(out) :: status
+ integer(kind=kindOfInt) :: iret
+ integer(kind=kindOfInt) :: nb_values
nb_values = size(value)
iret = grib_f_set_force_real8_array(gribid, key, value, nb_values)
@@ -2678,7 +2680,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'set', key)
+ call grib_check(iret, 'set_force_real8_array', key)
end if
end subroutine grib_set_force_real8_array
@@ -2694,10 +2696,10 @@
!> @param status GRIB_SUCCESS if OK, integer value on error
subroutine grib_set_string(gribid, key, value, status)
integer(kind=kindOfInt), intent(in) :: gribid
- character(len=*), intent(in) :: key
- character(len=*), intent(in) :: value
+ character(len=*), intent(in) :: key
+ character(len=*), intent(in) :: value
integer(kind=kindOfInt), optional, intent(out) :: status
- integer(kind=kindOfInt) :: iret
+ integer(kind=kindOfInt) :: iret
iret = grib_f_set_string(gribid, key, value)
if (iret /= 0) then
@@ -2720,8 +2722,8 @@
!> @param nbytes size in bytes of the message
!> @param status GRIB_SUCCESS if OK, integer value on error
subroutine grib_get_message_size_int(gribid, nbytes, status)
- integer(kind=kindOfInt), intent(in) :: gribid
- integer(kind=kindOfInt), intent(out) :: nbytes
+ integer(kind=kindOfInt), intent(in) :: gribid
+ integer(kind=kindOfInt), intent(out) :: nbytes
integer(kind=kindOfInt), optional, intent(out) :: status
integer(kind=kindOfInt) :: iret
integer(kind=kindOfSize_t) :: ibytes
@@ -2751,10 +2753,10 @@
!> @param nbytes size in bytes of the message
!> @param status GRIB_SUCCESS if OK, integer value on error
subroutine grib_get_message_size_size_t(gribid, nbytes, status)
- integer(kind=kindOfInt), intent(in) :: gribid
+ integer(kind=kindOfInt), intent(in) :: gribid
integer(kind=kindOfSize_t), intent(out) :: nbytes
integer(kind=kindOfInt), optional, intent(out) :: status
- integer(kind=kindOfInt) :: iret
+ integer(kind=kindOfInt) :: iret
iret = grib_f_get_message_size(gribid, nbytes)
if (iret /= 0) then
@@ -2777,7 +2779,7 @@
!> @param message array containing the coded message to be copied
!> @param status GRIB_SUCCESS if OK, integer value on error
subroutine grib_copy_message(gribid, message, status)
- integer(kind=kindOfInt), intent(in) :: gribid
+ integer(kind=kindOfInt), intent(in) :: gribid
character(len=1), dimension(:), intent(out) :: message
integer(kind=kindOfInt), optional, intent(out) :: status
integer(kind=kindOfInt) :: iret
@@ -2808,7 +2810,6 @@
integer(kind=kindOfInt), intent(in) :: gribid
integer(kind=kindOfInt), intent(in) :: ifile
integer(kind=kindOfInt), optional, intent(out) :: status
-
integer(kind=kindOfInt) :: iret
iret = grib_f_write(gribid, ifile)
@@ -2832,7 +2833,7 @@
integer(kind=kindOfInt), intent(in) :: multigribid
integer(kind=kindOfInt), intent(in) :: ifile
integer(kind=kindOfInt), optional, intent(out) :: status
- integer(kind=kindOfInt) :: iret
+ integer(kind=kindOfInt) :: iret
iret = grib_f_multi_write(multigribid, ifile)
if (present(status)) then
@@ -2936,13 +2937,13 @@
inlat, inlon, outlat, outlon, &
value, distance, kindex, status)
integer(kind=kindOfInt), intent(in) :: gribid
- logical, intent(in) :: is_lsm
+ logical, intent(in) :: is_lsm
real(kind=kindOfDouble), intent(in) :: inlat
real(kind=kindOfDouble), intent(in) :: inlon
real(kind=kindOfDouble), intent(out) :: outlat
real(kind=kindOfDouble), intent(out) :: outlon
- real(kind=kindOfDouble), intent(out) :: distance
real(kind=kindOfDouble), intent(out) :: value
+ real(kind=kindOfDouble), intent(out) :: distance
integer(kind=kindOfInt), intent(out) :: kindex
integer(kind=kindOfInt), optional, intent(out) :: status
integer(kind=kindOfInt) :: iret
@@ -3056,7 +3057,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'grib_gribex_mode_on', '')
+ call grib_check(iret, 'gribex_mode_on', '')
end if
end subroutine grib_gribex_mode_on
@@ -3076,7 +3077,7 @@
if (present(status)) then
status = iret
else
- call grib_check(iret, 'grib_gribex_mode_off', '')
+ call grib_check(iret, 'gribex_mode_off', '')
end if
end subroutine grib_gribex_mode_off
diff --git a/fortran/grib_fortran.c b/fortran/grib_fortran.c
index 751f28460..3cb17739a 100644
--- a/fortran/grib_fortran.c
+++ b/fortran/grib_fortran.c
@@ -9,7 +9,6 @@
*/
#include "grib_api_internal.h"
-#include "grib_fortran_prototypes.h"
#if HAVE_SYS_TYPES_H
# include
@@ -27,9 +26,9 @@
#include
-/* Have file ids distinct from grib ids, in order to be
- * protected against user errors where a file id is given
- * instead of a grib id or viceversa
+/* Have file ids distinct from GRIB/BUFR ids, in order to be
+ * protected against user errors where a file id is given
+ * instead of a GRIB/BUFR id or vice versa
*/
#define MIN_FILE_ID 50000
@@ -42,7 +41,7 @@ static pthread_mutex_t multi_handle_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t iterator_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t keys_iterator_mutex = PTHREAD_MUTEX_INITIALIZER;
-static void init() {
+static void init(void) {
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
@@ -67,9 +66,8 @@ static omp_nest_lock_t keys_iterator_mutex;
static void init()
{
GRIB_OMP_CRITICAL(lock_fortran)
- {
- if (once == 0)
- {
+ {
+ if (once == 0) {
omp_init_nest_lock(&handle_mutex);
omp_init_nest_lock(&index_mutex);
omp_init_nest_lock(&read_mutex);
@@ -78,7 +76,7 @@ static void init()
omp_init_nest_lock(&keys_iterator_mutex);
once = 1;
}
- }
+ }
}
#endif
@@ -88,9 +86,8 @@ typedef enum FileMode {
FILE_MODE_APPEND
} FileMode;
-int GRIB_NULL=-1;
-int GRIB_NULL_NEAREST=-1;
-/*extern int errno;*/
+int GRIB_NULL = -1;
+int GRIB_NULL_NEAREST = -1;
typedef struct l_grib_file l_grib_file;
@@ -751,6 +748,7 @@ static int _clear_index(int index_id)
return GRIB_SUCCESS;
}
+#if 0
static int _clear_multi_handle(int multi_handle_id)
{
l_grib_multi_handle* current = multi_handle_set;
@@ -764,6 +762,7 @@ static int _clear_multi_handle(int multi_handle_id)
}
return GRIB_SUCCESS;
}
+#endif
static int clear_handle(int handle_id)
{
@@ -785,6 +784,7 @@ static int clear_index(int index_id)
return ret;
}
+#if 0
static int clear_multi_handle(int multi_handle_id)
{
int ret=0;
@@ -794,6 +794,7 @@ static int clear_multi_handle(int multi_handle_id)
GRIB_MUTEX_UNLOCK(&multi_handle_mutex);
return ret;
}
+#endif
static int _clear_keys_iterator(int keys_iterator_id)
{
@@ -843,7 +844,9 @@ static int clear_bufr_keys_iterator(int keys_iterator_id)
}
/*****************************************************************************/
-int grib_f_read_any_headers_only_from_file_(int* fid, char* buffer, size_t* nbytes) {
+#if 0
+int grib_f_read_any_headers_only_from_file_(int* fid, char* buffer, size_t* nbytes)
+{
grib_context* c;
int err=0;
FILE* f=get_file(*fid);
@@ -856,15 +859,11 @@ int grib_f_read_any_headers_only_from_file_(int* fid, char* buffer, size_t* nbyt
return GRIB_INVALID_FILE;
}
}
-int grib_f_read_any_headers_only_from_file__(int* fid, char* buffer, size_t* nbytes) {
- return grib_f_read_any_headers_only_from_file_(fid,buffer,nbytes);
-}
-int grib_f_read_any_headers_only_from_file(int* fid, char* buffer, size_t* nbytes) {
- return grib_f_read_any_headers_only_from_file_(fid,buffer,nbytes);
-}
+#endif
/*****************************************************************************/
-int grib_f_read_any_from_file_(int* fid, void* buffer, size_t* nbytes) {
+int grib_f_read_any_from_file_(int* fid, void* buffer, size_t* nbytes)
+{
grib_context* c;
int err=0;
FILE* f=get_file(*fid);
@@ -877,15 +876,10 @@ int grib_f_read_any_from_file_(int* fid, void* buffer, size_t* nbytes) {
return GRIB_INVALID_FILE;
}
}
-int grib_f_read_any_from_file__(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_read_any_from_file_(fid,buffer,nbytes);
-}
-int grib_f_read_any_from_file(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_read_any_from_file_(fid,buffer,nbytes);
-}
/*****************************************************************************/
-int grib_f_write_file_(int* fid, void* buffer, size_t* nbytes) {
+int grib_f_write_file_(int* fid, void* buffer, size_t* nbytes)
+{
grib_context* c;
FILE* f=get_file(*fid);
@@ -902,15 +896,10 @@ int grib_f_write_file_(int* fid, void* buffer, size_t* nbytes) {
return GRIB_INVALID_FILE;
}
}
-int grib_f_write_file__(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_write_file_(fid,buffer,nbytes);
-}
-int grib_f_write_file(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_write_file_(fid,buffer,nbytes);
-}
/*****************************************************************************/
-int grib_f_read_file_(int* fid, void* buffer, size_t* nbytes) {
+int grib_f_read_file_(int* fid, void* buffer, size_t* nbytes)
+{
grib_context* c;
FILE* f=get_file(*fid);
@@ -927,15 +916,10 @@ int grib_f_read_file_(int* fid, void* buffer, size_t* nbytes) {
return GRIB_INVALID_FILE;
}
}
-int grib_f_read_file__(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_read_file_(fid,buffer,nbytes);
-}
-int grib_f_read_file(int* fid, void* buffer, size_t* nbytes) {
- return grib_f_read_file_(fid,buffer,nbytes);
-}
/*****************************************************************************/
-int grib_f_open_file_(int* fid, char* name , char* op, int lname, int lop) {
+int grib_f_open_file_(int* fid, char* name , char* op, int lname, int lop)
+{
FILE* f = NULL;
int ioerr=0;
char oper[1024]; /* GRIB-576: open mode */
@@ -980,23 +964,12 @@ int grib_f_open_file_(int* fid, char* name , char* op, int lname, int lop) {
}
return ret;
}
-int grib_f_open_file__(int* fid, char* name , char* op, int lname, int lop){
- return grib_f_open_file_( fid, name , op, lname, lop);
-}
-int grib_f_open_file(int* fid, char* name , char* op, int lname, int lop){
- return grib_f_open_file_( fid, name , op, lname, lop);
-}
/*****************************************************************************/
-int grib_f_close_file_(int* fid){
+int grib_f_close_file_(int* fid)
+{
return clear_file(*fid);
}
-int grib_f_close_file__(int* fid){
- return grib_f_close_file_(fid);
-}
-int grib_f_close_file(int* fid){
- return grib_f_close_file_(fid);
-}
/*****************************************************************************/
static int file_count=0;
@@ -1022,32 +995,18 @@ void grib_f_write_on_fail(int* gid) {
void grib_f_write_on_fail_(int* gid) {
grib_f_write_on_fail(gid);
}
-void grib_f_write_on_fail__(int* gid) {
- grib_f_write_on_fail(gid);
-}
-
/*****************************************************************************/
-int grib_f_multi_support_on_(){
+int grib_f_multi_support_on_(void)
+{
grib_multi_support_on(0);
return GRIB_SUCCESS;
}
-int grib_f_multi_support_on__(){
- return grib_f_multi_support_on_();
-}
-int grib_f_multi_support_on(){
- return grib_f_multi_support_on_();
-}
-int grib_f_multi_support_off_(){
+int grib_f_multi_support_off_(void)
+{
grib_multi_support_off(0);
return GRIB_SUCCESS;
}
-int grib_f_multi_support_off__(){
- return grib_f_multi_support_off_();
-}
-int grib_f_multi_support_off(){
- return grib_f_multi_support_off_();
-}
/*****************************************************************************/
#ifdef FORTRAN_GEOITERATOR_SUPPORT
@@ -1164,38 +1123,21 @@ int grib_f_iterator_new_(int* gid,int* iterid,int* mode) {
GRIB_MUTEX_UNLOCK(&iterator_mutex)
return ret;
}
-int grib_f_iterator_new__(int* gid,int* iterid,int* mode) {
- return grib_f_iterator_new_(gid,iterid,mode);
-}
-int grib_f_iterator_new(int* gid,int* iterid,int* mode) {
- return grib_f_iterator_new_(gid,iterid,mode);
-}
/*****************************************************************************/
int grib_f_iterator_next_(int* iterid,double* lat,double* lon,double* value) {
grib_iterator* iter=get_iterator(*iterid);
if (!iter) return GRIB_INVALID_ITERATOR;
return grib_iterator_next(iter,lat,lon,value);
}
-int grib_f_iterator_next__(int* iterid,double* lat,double* lon,double* value) {
- return grib_f_iterator_next_(iterid,lat,lon,value);
-}
-int grib_f_iterator_next(int* iterid,double* lat,double* lon,double* value) {
- return grib_f_iterator_next_(iterid,lat,lon,value);
-}
/*****************************************************************************/
int grib_f_iterator_delete_(int* iterid) {
return clear_iterator(*iterid);
}
-int grib_f_iterator_delete__(int* iterid) {
- return grib_f_iterator_delete_(iterid);
-}
-int grib_f_iterator_delete(int* iterid) {
- return grib_f_iterator_delete_(iterid);
-}
#endif /*FORTRAN_GEOITERATOR_SUPPORT*/
/*****************************************************************************/
-static int _grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) {
+static int _grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len)
+{
int err=0;
char buf[1024];
grib_handle* h;
@@ -1213,7 +1155,8 @@ static int _grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int
*iterid=-1;
return err;
}
-int grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) {
+int grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len)
+{
int ret=0;
GRIB_MUTEX_INIT_ONCE(&once,&init)
GRIB_MUTEX_LOCK(&keys_iterator_mutex)
@@ -1221,183 +1164,115 @@ int grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) {
GRIB_MUTEX_UNLOCK(&keys_iterator_mutex)
return ret;
}
-int grib_f_keys_iterator_new__(int* gid,int* iterid,char* name_space,int len) {
- return grib_f_keys_iterator_new_(gid,iterid,name_space,len);
-}
-int grib_f_keys_iterator_new(int* gid,int* iterid,char* name_space,int len) {
- return grib_f_keys_iterator_new_(gid,iterid,name_space,len);
-}
/*****************************************************************************/
-int grib_f_keys_iterator_next_(int* iterid) {
+int grib_f_keys_iterator_next_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_next(iter);
}
-int grib_f_keys_iterator_next__(int* iterid) {
- return grib_f_keys_iterator_next_(iterid);
-}
-int grib_f_keys_iterator_next(int* iterid) {
- return grib_f_keys_iterator_next_(iterid);
-}
/*****************************************************************************/
-int grib_f_keys_iterator_delete_(int* iterid) {
+int grib_f_keys_iterator_delete_(int* iterid)
+{
return clear_keys_iterator(*iterid);
}
-int grib_f_keys_iterator_delete__(int* iterid) {
- return grib_f_keys_iterator_delete_(iterid);
-}
-int grib_f_keys_iterator_delete(int* iterid) {
- return grib_f_keys_iterator_delete_(iterid);
-}
/*****************************************************************************/
-int grib_f_gribex_mode_on_() {
- grib_gribex_mode_on(0);
- return GRIB_SUCCESS;
-}
-int grib_f_gribex_mode_on__() {
- grib_gribex_mode_on(0);
- return GRIB_SUCCESS;
-}
-int grib_f_gribex_mode_on() {
+int grib_f_gribex_mode_on_(void)
+{
grib_gribex_mode_on(0);
return GRIB_SUCCESS;
}
-int grib_f_gribex_mode_off_() {
- grib_gribex_mode_off(0);
- return GRIB_SUCCESS;
-}
-int grib_f_gribex_mode_off__() {
- grib_gribex_mode_off(0);
- return GRIB_SUCCESS;
-}
-int grib_f_gribex_mode_off() {
+int grib_f_gribex_mode_off_(void)
+{
grib_gribex_mode_off(0);
return GRIB_SUCCESS;
}
/*****************************************************************************/
-int grib_f_skip_computed_(int* iterid) {
+int grib_f_skip_computed_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_COMPUTED);
}
-int grib_f_skip_computed__(int* iterid) {
- return grib_f_skip_computed_(iterid);
-}
-int grib_f_skip_computed(int* iterid) {
- return grib_f_skip_computed_(iterid);
-}
-int grib_f_skip_coded_(int* iterid) {
+int grib_f_skip_coded_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_CODED);
}
-int grib_f_skip_coded__(int* iterid) {
- return grib_f_skip_coded_(iterid);
-}
-int grib_f_skip_coded(int* iterid) {
- return grib_f_skip_coded_(iterid);
-}
-int grib_f_skip_edition_specific_(int* iterid) {
+int grib_f_skip_edition_specific_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC);
}
-int grib_f_skip_edition_specific__(int* iterid) {
- return grib_f_skip_edition_specific_(iterid);
-}
-int grib_f_skip_edition_specific(int* iterid) {
- return grib_f_skip_edition_specific_(iterid);
-}
-int grib_f_skip_duplicates_(int* iterid) {
+int grib_f_skip_duplicates_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_DUPLICATES);
}
-int grib_f_skip_duplicates__(int* iterid) {
- return grib_f_skip_duplicates_(iterid);
-}
-int grib_f_skip_duplicates(int* iterid) {
- return grib_f_skip_duplicates_(iterid);
-}
-int grib_f_skip_read_only_(int* iterid) {
+int grib_f_skip_read_only_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_READ_ONLY);
}
-int grib_f_skip_read_only__(int* iterid) {
- return grib_f_skip_read_only_(iterid);
-}
-int grib_f_skip_read_only(int* iterid) {
- return grib_f_skip_read_only_(iterid);
-}
-int grib_f_skip_function_(int* iterid) {
+int grib_f_skip_function_(int* iterid)
+{
grib_keys_iterator* iter=get_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_FUNCTION);
}
-int grib_f_skip_function__(int* iterid) {
- return grib_f_skip_function_(iterid);
-}
-int grib_f_skip_function(int* iterid) {
- return grib_f_skip_function_(iterid);
-}
/*****************************************************************************/
-int grib_f_keys_iterator_get_name_(int* iterid,char* name,int len) {
- size_t lsize=len;
+int grib_f_keys_iterator_get_name_(int* iterid,char* name,int len)
+{
+ size_t input_len = len;
+ size_t lsize = len;
char buf[1024]={0,};
grib_keys_iterator* kiter=get_keys_iterator(*iterid);
if (!kiter) return GRIB_INVALID_KEYS_ITERATOR;
- fort_char_clean(name,len);
+ fort_char_clean(name, len);
sprintf(buf,"%s",grib_keys_iterator_get_name(kiter));
- lsize=strlen(buf);
- if (len < lsize) return GRIB_ARRAY_TOO_SMALL;
+ lsize = strlen(buf);
+ if (input_len < lsize) return GRIB_ARRAY_TOO_SMALL;
- memcpy(name,buf,lsize);
+ memcpy(name, buf, lsize);
- czstr_to_fortran(name,len);
+ czstr_to_fortran(name, len);
return 0;
}
-int grib_f_keys_iterator_get_name__(int* kiter,char* name,int len) {
- return grib_f_keys_iterator_get_name_(kiter,name,len);
-}
-int grib_f_keys_iterator_get_name(int* kiter,char* name,int len) {
- return grib_f_keys_iterator_get_name_(kiter,name,len);
-}
/*****************************************************************************/
-int grib_f_keys_iterator_rewind_(int* kiter) {
+int grib_f_keys_iterator_rewind_(int* kiter)
+{
grib_keys_iterator* i=get_keys_iterator(*kiter);
if (!i) return GRIB_INVALID_KEYS_ITERATOR;
return grib_keys_iterator_rewind(i);
}
-int grib_f_keys_iterator_rewind__(int* kiter) {
- return grib_f_keys_iterator_rewind_(kiter);
-}
-int grib_f_keys_iterator_rewind(int* kiter) {
- return grib_f_keys_iterator_rewind_(kiter);
-}
/* BUFR keys iterator */
/*****************************************************************************/
-static int _codes_f_bufr_keys_iterator_new_(int* gid,int* iterid) {
+static int _codes_f_bufr_keys_iterator_new_(int* gid,int* iterid)
+{
int err=0;
grib_handle* h;
bufr_keys_iterator* iter;
@@ -1415,7 +1290,8 @@ static int _codes_f_bufr_keys_iterator_new_(int* gid,int* iterid) {
*iterid=-1;
return err;
}
-int codes_f_bufr_keys_iterator_new_(int* gid,int* iterid) {
+int codes_f_bufr_keys_iterator_new_(int* gid,int* iterid)
+{
int ret=0;
GRIB_MUTEX_INIT_ONCE(&once,&init)
GRIB_MUTEX_LOCK(&keys_iterator_mutex)
@@ -1423,162 +1299,119 @@ int codes_f_bufr_keys_iterator_new_(int* gid,int* iterid) {
GRIB_MUTEX_UNLOCK(&keys_iterator_mutex)
return ret;
}
-int codes_f_bufr_keys_iterator_new__(int* gid,int* iterid) {
- return codes_f_bufr_keys_iterator_new_(gid,iterid);
-}
-int codes_f_bufr_keys_iterator_new(int* gid,int* iterid) {
- return codes_f_bufr_keys_iterator_new_(gid,iterid);
-}
/*****************************************************************************/
-int codes_f_bufr_keys_iterator_next_(int* iterid) {
+int codes_f_bufr_keys_iterator_next_(int* iterid)
+{
bufr_keys_iterator* iter=get_bufr_keys_iterator(*iterid);
if (!iter) return GRIB_INVALID_KEYS_ITERATOR;
return codes_bufr_keys_iterator_next(iter);
}
-int codes_f_bufr_keys_iterator_next__(int* iterid) {
- return codes_f_bufr_keys_iterator_next_(iterid);
-}
-int codes_f_bufr_keys_iterator_next(int* iterid) {
- return codes_f_bufr_keys_iterator_next_(iterid);
-}
-/*****************************************************************************/
-int codes_f_bufr_keys_iterator_get_name_(int* iterid,char* name,int len) {
- size_t lsize=len;
- char buf[1024]={0,};
- bufr_keys_iterator* kiter=get_bufr_keys_iterator(*iterid);
+/*****************************************************************************/
+int codes_f_bufr_keys_iterator_get_name_(int* iterid, char* name, int len)
+{
+ size_t input_len = len;
+ size_t lsize = len;
+ char buf[1024] = {0,};
+
+ bufr_keys_iterator* kiter = get_bufr_keys_iterator(*iterid);
if (!kiter) return GRIB_INVALID_KEYS_ITERATOR;
- fort_char_clean(name,len);
+ fort_char_clean(name, len);
- sprintf(buf,"%s",codes_bufr_keys_iterator_get_name(kiter));
- lsize=strlen(buf);
- if (len < lsize) return GRIB_ARRAY_TOO_SMALL;
+ sprintf(buf, "%s", codes_bufr_keys_iterator_get_name(kiter));
+ lsize = strlen(buf);
+ if (input_len < lsize) return GRIB_ARRAY_TOO_SMALL;
- memcpy(name,buf,lsize);
+ memcpy(name, buf, lsize);
- czstr_to_fortran(name,len);
+ czstr_to_fortran(name, len);
return 0;
}
-int codes_f_bufr_keys_iterator_get_name__(int* kiter,char* name,int len) {
- return codes_f_bufr_keys_iterator_get_name_(kiter,name,len);
-}
-int codes_f_bufr_keys_iterator_get_name(int* kiter,char* name,int len) {
- return codes_f_bufr_keys_iterator_get_name_(kiter,name,len);
-}
/*****************************************************************************/
-int codes_f_bufr_keys_iterator_rewind_(int* kiter) {
+int codes_f_bufr_keys_iterator_rewind_(int* kiter)
+{
bufr_keys_iterator* i=get_bufr_keys_iterator(*kiter);
if (!i) return GRIB_INVALID_KEYS_ITERATOR;
return codes_bufr_keys_iterator_rewind(i);
}
-int codes_f_bufr_keys_iterator_rewind__(int* kiter) {
- return codes_f_bufr_keys_iterator_rewind_(kiter);
-}
-int codes_f_bufr_keys_iterator_rewind(int* kiter) {
- return codes_f_bufr_keys_iterator_rewind_(kiter);
-}
+
/*****************************************************************************/
-int codes_f_bufr_keys_iterator_delete_(int* iterid) {
+int codes_f_bufr_keys_iterator_delete_(int* iterid)
+{
return clear_bufr_keys_iterator(*iterid);
}
-int codes_f_bufr_keys_iterator_delete__(int* iterid) {
- return codes_f_bufr_keys_iterator_delete_(iterid);
-}
-int codes_f_bufr_keys_iterator_delete(int* iterid) {
- return codes_f_bufr_keys_iterator_delete_(iterid);
-}
/*****************************************************************************/
-int grib_f_new_from_message_(int* gid, void* buffer , size_t* bufsize){
+int grib_f_new_from_message_(int* gid, void* buffer, size_t* bufsize)
+{
+ grib_handle *h = NULL;
+ h = grib_handle_new_from_message_copy(0, buffer, *bufsize);
+ if (h){
+ push_handle(h,gid);
+ return GRIB_SUCCESS;
+ }
+ *gid = -1;
+ return GRIB_INTERNAL_ERROR;
+}
+
+/* See SUP-3893: Need to provide an 'int' version */
+int grib_f_new_from_message_int_(int* gid, int* buffer , size_t* bufsize)
+{
+ /* Call the version with void pointer */
+ return grib_f_new_from_message_(gid, (void*)buffer, bufsize);
+}
+/*****************************************************************************/
+#if 0
+int grib_f_new_from_message_copy_(int* gid, void* buffer, size_t* bufsize)
+{
grib_handle *h = NULL;
h = grib_handle_new_from_message_copy(0, buffer, *bufsize);
if(h){
push_handle(h,gid);
return GRIB_SUCCESS;
}
-
*gid = -1;
return GRIB_INTERNAL_ERROR;
}
-int grib_f_new_from_message__(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_(gid, buffer , bufsize);
-}
-int grib_f_new_from_message(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_(gid, buffer , bufsize);
-}
-
+#endif
/*****************************************************************************/
-int grib_f_new_from_message_copy_(int* gid, void* buffer , size_t* bufsize){
- grib_handle *h = NULL;
- h = grib_handle_new_from_message_copy(0, buffer, *bufsize);
- if(h){
- push_handle(h,gid);
- return GRIB_SUCCESS;
- }
-
- *gid = -1;
- return GRIB_INTERNAL_ERROR;
-}
-int grib_f_new_from_message_copy__(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_copy_(gid, buffer , bufsize);
-}
-int grib_f_new_from_message_copy(int* gid, void* buffer , size_t* bufsize){
- return grib_f_new_from_message_copy_(gid, buffer , bufsize);
-}
-
-/*****************************************************************************/
-int grib_f_new_from_samples_(int* gid, char* name , int lname){
+int grib_f_new_from_samples_(int* gid, char* name, int lname)
+{
char fname[1024];
- grib_handle *h = NULL;
-
- h = grib_handle_new_from_samples(NULL,cast_char(fname,name,lname));
+ grib_handle *h = grib_handle_new_from_samples(NULL,cast_char(fname,name,lname));
/* grib_context_set_debug(h->context,1);*/
if(h){
push_handle(h,gid);
return GRIB_SUCCESS;
}
-
*gid = -1;
return GRIB_FILE_NOT_FOUND;
}
-int grib_f_new_from_samples__(int* gid, char* name , int lname){
- return grib_f_new_from_samples_( gid, name , lname);
-}
-int grib_f_new_from_samples(int* gid, char* name , int lname){
- return grib_f_new_from_samples_( gid, name , lname);
-}
/*****************************************************************************/
-int codes_bufr_f_new_from_samples_(int* gid, char* name, int lname){
+int codes_bufr_f_new_from_samples_(int* gid, char* name, int lname)
+{
char fname[1024];
- grib_handle *h = NULL;
-
- h = codes_bufr_handle_new_from_samples(NULL,cast_char(fname,name,lname));
+ grib_handle* h = codes_bufr_handle_new_from_samples(NULL,cast_char(fname,name,lname));
/* grib_context_set_debug(h->context,1);*/
if(h){
push_handle(h,gid);
return GRIB_SUCCESS;
}
-
*gid = -1;
return GRIB_FILE_NOT_FOUND;
}
-int codes_bufr_f_new_from_samples__(int* gid, char* name, int lname){
- return codes_bufr_f_new_from_samples_( gid, name, lname);
-}
-int codes_bufr_f_new_from_samples(int* gid, char* name, int lname){
- return codes_bufr_f_new_from_samples_( gid, name, lname);
-}
/*****************************************************************************/
-int grib_f_clone_(int* gidsrc,int* giddest){
+int grib_f_clone_(int* gidsrc,int* giddest)
+{
grib_handle *src = get_handle(*gidsrc);
grib_handle *dest = NULL;
@@ -1593,12 +1426,6 @@ int grib_f_clone_(int* gidsrc,int* giddest){
*giddest = -1;
return GRIB_INVALID_GRIB;
}
-int grib_f_clone__(int* gidsrc,int* giddest){
- return grib_f_clone_(gidsrc, giddest);
-}
-int grib_f_clone(int* gidsrc,int* giddest){
- return grib_f_clone_(gidsrc, giddest);
-}
/*****************************************************************************/
int grib_f_copy_key_(int* gidsrc, char* key, int* giddest, int len)
@@ -1615,36 +1442,27 @@ int grib_f_copy_key_(int* gidsrc, char* key, int* giddest, int len)
return GRIB_INVALID_GRIB;
}
-int grib_f_copy_key__(int* gidsrc, char* name, int* giddest, int len){
- return grib_f_copy_key_(gidsrc, name, giddest, len);
-}
-int grib_f_copy_key(int* gidsrc, char* name, int* giddest, int len){
- return grib_f_copy_key_(gidsrc, name, giddest, len);
-}
-/*****************************************************************************/
-int grib_f_util_sections_copy_(int* gidfrom,int* gidto,int* what,int *gidout){
- int err=0;
- grib_handle *hfrom = get_handle(*gidfrom);
- grib_handle *hto = get_handle(*gidto);
- grib_handle *out =0;
- if(hfrom && hto) out=grib_util_sections_copy(hfrom,hto,*what,&err);
- if(out){
- push_handle(out,gidout);
+/*****************************************************************************/
+int grib_f_util_sections_copy_(int* gidfrom, int* gidto, int* what, int* gidout)
+{
+ int err = 0;
+ grib_handle* hfrom = get_handle(*gidfrom);
+ grib_handle* hto = get_handle(*gidto);
+ grib_handle* out = 0;
+
+ if (hfrom && hto) out = grib_util_sections_copy(hfrom, hto, *what, &err);
+ if (out) {
+ push_handle(out, gidout);
return GRIB_SUCCESS;
}
return err;
}
-int grib_f_util_sections_copy__(int* gidfrom,int* gidto,int* what,int *gidout){
- return grib_f_util_sections_copy_(gidfrom,gidto,what,gidout);
-}
-int grib_f_util_sections_copy(int* gidfrom,int* gidto,int* what,int *gidout){
- return grib_f_util_sections_copy_(gidfrom,gidto,what,gidout);
-}
/*****************************************************************************/
-int grib_f_copy_namespace_(int* gidsrc,char* name,int* giddest,int len){
+int grib_f_copy_namespace_(int* gidsrc,char* name,int* giddest,int len)
+{
char buf[1024]={0,};
grib_handle *src = get_handle(*gidsrc);
grib_handle *dest = get_handle(*giddest);
@@ -1654,15 +1472,10 @@ int grib_f_copy_namespace_(int* gidsrc,char* name,int* giddest,int len){
return GRIB_INVALID_GRIB;
}
-int grib_f_copy_namespace__(int* gidsrc,char* name,int* giddest,int len){
- return grib_f_copy_namespace_(gidsrc,name,giddest,len);
-}
-int grib_f_copy_namespace(int* gidsrc,char* name,int* giddest,int len){
- return grib_f_copy_namespace_(gidsrc,name,giddest,len);
-}
/*****************************************************************************/
-int any_f_scan_file(int* fid,int* n) {
+int any_f_scan_file_(int* fid, int* n)
+{
int err = 0;
off_t offset=0;
void *data = NULL;
@@ -1672,190 +1485,164 @@ int any_f_scan_file(int* fid,int* n) {
grib_context* c=grib_context_get_default();
/* this needs a callback to a destructor*/
- /* grib_oarray_delete_content(c,binary_messages); */
+ /* grib_oarray_delete_content(c, info_messages); */
- grib_oarray_delete(c,info_messages);
- info_messages=grib_oarray_new(c,1000,1000);
+ grib_oarray_delete(c, info_messages);
+ info_messages=grib_oarray_new(c, 1000, 1000);
if (f) {
while (err!=GRIB_END_OF_FILE) {
- data = wmo_read_any_from_file_malloc ( f, 0,&olen,&offset,&err );
+ data = wmo_read_any_from_file_malloc ( f, 0, &olen, &offset, &err );
msg=(l_message_info*)grib_context_malloc_clear(c,sizeof(l_message_info));
- msg->offset=offset;
- msg->size=olen;
-
- if (err==0 && data) grib_oarray_push(c,info_messages,msg);
- grib_context_free(c,data);
+ msg->offset = offset;
+ msg->size = olen;
+
+ if (err == 0 && data) grib_oarray_push(c, info_messages, msg);
+ grib_context_free(c, data);
}
- if (err==GRIB_END_OF_FILE) err=0;
+ if (err == GRIB_END_OF_FILE) err = 0;
}
- *n=info_messages->n;
+ *n = info_messages->n;
return err;
}
-int any_f_scan_file_(int* fid,int* n) {
- return any_f_scan_file(fid,n);
-}
-int any_f_scan_file__(int* fid,int* n) {
- return any_f_scan_file(fid,n);
-}
-int any_f_new_from_scanned_file(int* fid,int* msgid,int* gid)
+/*****************************************************************************/
+int any_f_new_from_scanned_file_(int* fid, int* msgid, int* gid)
{
grib_handle *h = NULL;
- grib_context* c=grib_context_get_default();
- int err=0;
+ grib_context* c = grib_context_get_default();
+ int err = 0;
FILE* f = get_file(*fid);
+ l_message_info* msg = NULL;
- /* fortran convention of 1 based index*/
- const int n=*msgid-1;
+ /* fortran convention of 1-based index */
+ const int n = *msgid - 1;
- l_message_info* msg=(l_message_info*)grib_oarray_get(info_messages,n);
+ if (info_messages == NULL) {
+ return GRIB_INVALID_ARGUMENT;
+ }
+ if (*msgid < 1 || *msgid > info_messages->n) {
+ return GRIB_INVALID_ARGUMENT;
+ }
+
+ msg = (l_message_info*)grib_oarray_get(info_messages, n);
if (msg && f) {
- GRIB_MUTEX_INIT_ONCE(&once,&init);
+ GRIB_MUTEX_INIT_ONCE(&once, &init);
GRIB_MUTEX_LOCK(&read_mutex);
- fseeko(f,msg->offset,SEEK_SET);
- h=any_new_from_file (c,f,&err);
+ fseeko(f, msg->offset, SEEK_SET);
+ h = any_new_from_file (c, f, &err);
GRIB_MUTEX_UNLOCK(&read_mutex);
}
if (err) return err;
- if(h){
- push_handle(h,gid);
+ if (h) {
+ push_handle(h, gid);
return GRIB_SUCCESS;
} else {
- *gid=-1;
+ *gid = -1;
return GRIB_END_OF_FILE;
}
}
-int any_f_new_from_scanned_file_(int* fid,int* msgid,int* gid){
- return any_f_new_from_scanned_file(fid,msgid,gid);
-}
-int any_f_new_from_scanned_file__(int* fid,int* msgid,int* gid){
- return any_f_new_from_scanned_file(fid,msgid,gid);
-}
-
/*****************************************************************************/
-int any_f_load_all_from_file(int* fid,int* n) {
+int any_f_load_all_from_file_(int* fid, int* n)
+{
int err = 0;
off_t offset=0;
- void *data = NULL;
+ void* data = NULL;
size_t olen = 0;
l_binary_message* msg=0;
FILE* f = get_file(*fid);
- grib_context* c=grib_context_get_default();
+ grib_context* c = grib_context_get_default();
/* this needs a callback to a destructor*/
- /* grib_oarray_delete_content(c,binary_messages); */
+ /* grib_oarray_delete_content(c, binary_messages); */
- grib_oarray_delete(c,binary_messages);
- binary_messages=grib_oarray_new(c,1000,1000);
+ grib_oarray_delete(c, binary_messages);
+ binary_messages = grib_oarray_new(c, 1000, 1000);
if (f) {
- while (err!=GRIB_END_OF_FILE) {
- data = wmo_read_any_from_file_malloc ( f, 0,&olen,&offset,&err );
- msg=(l_binary_message*)grib_context_malloc_clear(c,sizeof(l_binary_message));
- msg->data=data;
- msg->size=olen;
+ while (err != GRIB_END_OF_FILE) {
+ data = wmo_read_any_from_file_malloc (f, 0,&olen, &offset, &err);
+ msg = (l_binary_message*)grib_context_malloc_clear(c,sizeof(l_binary_message));
+ msg->data = data;
+ msg->size = olen;
- if (err==0 && data) grib_oarray_push(c,binary_messages,msg);
+ if (err == 0 && data) grib_oarray_push(c, binary_messages, msg);
}
- if (err==GRIB_END_OF_FILE) err=0;
+ if (err == GRIB_END_OF_FILE) err = 0;
}
- *n=binary_messages->n;
+ *n = binary_messages->n;
return err;
}
-int any_f_load_all_from_file_(int* fid,int* n) {
- return any_f_load_all_from_file(fid,n);
-}
-int any_f_load_all_from_file__(int* fid,int* n) {
- return any_f_load_all_from_file(fid,n);
-}
-int any_f_new_from_loaded(int* msgid,int* gid)
+/*****************************************************************************/
+int any_f_new_from_loaded_(int* msgid, int* gid)
{
- grib_handle *h = NULL;
- grib_context* c=grib_context_get_default();
+ grib_handle* h = NULL;
+ grib_context* c = grib_context_get_default();
/* fortran convention of 1 based index*/
- const int n=*msgid-1;
+ const int n = *msgid - 1;
- l_binary_message* msg=(l_binary_message*)grib_oarray_get(binary_messages,n);
+ l_binary_message* msg = (l_binary_message*)grib_oarray_get(binary_messages, n);
if (msg && msg->data)
- h=grib_handle_new_from_message_copy (c,msg->data,msg->size);
+ h = grib_handle_new_from_message_copy(c, msg->data, msg->size);
- if(h){
- push_handle(h,gid);
+ if (h) {
+ push_handle(h, gid);
return GRIB_SUCCESS;
- } else {
- *gid=-1;
+ }
+ else {
+ *gid = -1;
return GRIB_END_OF_FILE;
}
}
-int any_f_new_from_loaded_(int* msgid,int* gid){
- return any_f_new_from_loaded(msgid,gid);
-}
-int any_f_new_from_loaded__(int* msgid,int* gid){
- return any_f_new_from_loaded(msgid,gid);
-}
-
-int codes_f_clear_loaded_from_file(void) {
- grib_context* c=grib_context_get_default();
+/*****************************************************************************/
+int codes_f_clear_loaded_from_file_(void)
+{
/* grib_oarray_delete_content(c,binary_messages); */
- grib_oarray_delete(c,binary_messages);
+ grib_oarray_delete(grib_context_get_default(), binary_messages);
return GRIB_SUCCESS;
}
-int codes_f_clear_loaded_from_file_(void) {
- return codes_f_clear_loaded_from_file();
-}
-int codes_f_clear_loaded_from_file__(void) {
- return codes_f_clear_loaded_from_file();
-}
+
/*****************************************************************************/
-int grib_f_count_in_file(int* fid,int* n) {
+int grib_f_count_in_file_(int* fid,int* n)
+{
int err = 0;
FILE* f = get_file(*fid);
- if (f) err=grib_count_in_file(0, f,n);
+ if (f) err = grib_count_in_file(0, f, n);
return err;
}
-int grib_f_count_in_file_(int* fid,int* n) {
- return grib_f_count_in_file(fid,n);
-}
-int grib_f_count_in_file__(int* fid,int* n) {
- return grib_f_count_in_file(fid,n);
-}
/*****************************************************************************/
-int any_f_new_from_file_(int* fid, int* gid){
- int err = 0;
- FILE* f = get_file(*fid);
- grib_handle *h = NULL;
+int any_f_new_from_file_(int* fid, int* gid)
+{
+ int err = 0;
+ FILE* f = get_file(*fid);
+ grib_handle* h = NULL;
- if(f){
- h = codes_handle_new_from_file(0,f,PRODUCT_ANY,&err);
- if(h){
- push_handle(h,gid);
+ if (f) {
+ h = codes_handle_new_from_file(0, f, PRODUCT_ANY, &err);
+ if (h) {
+ push_handle(h, gid);
return GRIB_SUCCESS;
- } else {
- *gid=-1;
+ }
+ else {
+ *gid = -1;
return GRIB_END_OF_FILE;
}
}
- *gid=-1;
+ *gid = -1;
return GRIB_INVALID_FILE;
}
-int any_f_new_from_file__(int* fid, int* gid){
- return any_f_new_from_file_( fid, gid);
-}
-int any_f_new_from_file(int* fid, int* gid){
- return any_f_new_from_file_( fid, gid);
-}
/*****************************************************************************/
-int bufr_f_new_from_file_(int* fid, int* gid){
+int bufr_f_new_from_file_(int* fid, int* gid)
+{
int err = 0;
FILE* f = get_file(*fid);
@@ -1872,19 +1659,13 @@ int bufr_f_new_from_file_(int* fid, int* gid){
}
}
- *gid=-1;
+ *gid = -1;
return GRIB_INVALID_FILE;
}
-int bufr_f_new_from_file__(int* fid, int* gid){
- return bufr_f_new_from_file_( fid, gid);
-}
-int bufr_f_new_from_file(int* fid, int* gid){
- return bufr_f_new_from_file_( fid, gid);
-}
-
/*****************************************************************************/
-int grib_f_new_from_file_(int* fid, int* gid){
+int grib_f_new_from_file_(int* fid, int* gid)
+{
int err = 0;
FILE* f = get_file(*fid);
@@ -1904,82 +1685,64 @@ int grib_f_new_from_file_(int* fid, int* gid){
*gid=-1;
return GRIB_INVALID_FILE;
}
-int grib_f_new_from_file__(int* fid, int* gid){
- return grib_f_new_from_file_( fid, gid);
-}
-int grib_f_new_from_file(int* fid, int* gid){
- return grib_f_new_from_file_( fid, gid);
-}
/*****************************************************************************/
-int grib_f_headers_only_new_from_file_(int* fid, int* gid){
+int grib_f_headers_only_new_from_file_(int* fid, int* gid)
+{
int err = 0;
FILE* f = get_file(*fid);
-
grib_handle *h = NULL;
+ const int headers_only = 1;
- if(f){
- h=grib_new_from_file ( 0, f,1,&err);
- if(h){
+ if (f){
+ h=grib_new_from_file (0, f, headers_only, &err);
+ if (h){
push_handle(h,gid);
return GRIB_SUCCESS;
} else {
- *gid=-1;
+ *gid = -1;
return GRIB_END_OF_FILE;
}
}
- *gid=-1;
+ *gid = -1;
return GRIB_INVALID_FILE;
}
-int grib_f_headers_only_new_from_file__(int* fid, int* gid){
- return grib_f_headers_only_new_from_file_( fid, gid);
-}
-int grib_f_headers_only_new_from_file(int* fid, int* gid){
- return grib_f_headers_only_new_from_file_( fid, gid);
-}
/*****************************************************************************/
-int grib_f_new_from_index_(int* iid, int* gid){
+int grib_f_new_from_index_(int* index_id, int* gid)
+{
int err = 0;
- grib_index* i = get_index(*iid);
-
+ grib_index* i = get_index(*index_id);
grib_handle *h = NULL;
- if(i){
- h = grib_handle_new_from_index(i,&err);
- if(h){
+ if (i) {
+ h = grib_handle_new_from_index(i, &err);
+ if (h){
push_handle(h,gid);
return GRIB_SUCCESS;
} else {
- *gid=-1;
+ *gid = -1;
return GRIB_END_OF_INDEX;
}
}
- *gid=-1;
+ *gid = -1;
return GRIB_INVALID_INDEX;
}
-int grib_f_new_from_index__(int* iid, int* gid){
- return grib_f_new_from_index_(iid,gid);
-}
-int grib_f_new_from_index(int* iid, int* gid){
- return grib_f_new_from_index_(iid,gid);
-}
-
/*****************************************************************************/
-int grib_f_index_new_from_file_(char* file ,char* keys ,int* gid, int lfile, int lkeys){
+int grib_f_index_new_from_file_(char* file, char* keys, int* gid, int lfile, int lkeys)
+{
int err = 0;
- char fname[1024]={0,};
- char knames[1024]={0,};
-
+ char fname[1024] = {0,};
+ char knames[1024] = {0,};
grib_index *i = NULL;
- if(*file){
+ if (*file){
i = grib_index_new_from_file(0,cast_char(fname,file,lfile),
cast_char(knames,keys,lkeys),&err);
- if(i){
+ if (i) {
push_index(i,gid);
return GRIB_SUCCESS;
} else {
@@ -1988,40 +1751,27 @@ int grib_f_index_new_from_file_(char* file ,char* keys ,int* gid, int lfile, int
}
}
- *gid=-1;
+ *gid = -1;
return GRIB_INVALID_FILE;
}
-int grib_f_index_new_from_file__(char* file, char* keys, int* gid, int lfile, int lkeys){
- return grib_f_index_new_from_file_(file ,keys ,gid, lfile, lkeys);
-}
-int grib_f_index_new_from_file(char* file, char* keys, int* gid, int lfile, int lkeys){
- return grib_f_index_new_from_file_(file ,keys ,gid, lfile, lkeys);
-}
/*****************************************************************************/
-int grib_f_index_add_file_(int* iid, char* file, int lfile) {
- grib_index *i = get_index(*iid);
- int err = GRIB_SUCCESS;
+int grib_f_index_add_file_(int* index_id, char* file, int lfile)
+{
+ grib_index *i = get_index(*index_id);
char buf[1024];
if (!i) {
return GRIB_INVALID_INDEX;
} else {
- err = grib_index_add_file(i,cast_char(buf,file,lfile));
+ int err = grib_index_add_file(i,cast_char(buf,file,lfile));
return err;
}
}
-int grib_f_index_add_file__(int* iid, char* file, int lfile) {
- return grib_f_index_add_file_(iid,file,lfile);
-}
-
-int grib_f_index_add_file(int* iid, char* file, int lfile) {
- return grib_f_index_add_file_(iid,file,lfile);
-}
-
/*****************************************************************************/
-int grib_f_index_read_(char* file, int* gid, int lfile) {
+int grib_f_index_read_(char* file, int* gid, int lfile)
+{
int err = 0;
char fname[1024]={0,};
@@ -2041,15 +1791,10 @@ int grib_f_index_read_(char* file, int* gid, int lfile) {
*gid=-1;
return GRIB_INVALID_FILE;
}
-int grib_f_index_read__(char* file, int* gid, int lfile) {
- return grib_f_index_read_(file,gid,lfile);
-}
-int grib_f_index_read(char* file, int* gid, int lfile) {
- return grib_f_index_read_(file,gid,lfile);
-}
/*****************************************************************************/
-int grib_f_index_write_(int* gid, char* file, int lfile) {
+int grib_f_index_write_(int* gid, char* file, int lfile)
+{
grib_index *i = get_index(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2061,48 +1806,21 @@ int grib_f_index_write_(int* gid, char* file, int lfile) {
return err;
}
}
-int grib_f_index_write__(int* gid, char* file, int lfile) {
- return grib_f_index_write_(gid,file,lfile);
-}
-int grib_f_index_write(int* gid, char* file, int lfile) {
- return grib_f_index_write_(gid,file,lfile);
-}
/*****************************************************************************/
-int grib_f_index_release_(int* hid){
+int grib_f_index_release_(int* hid)
+{
return clear_index(*hid);
}
-int grib_f_index_release__(int* hid){
- return grib_f_index_release_(hid);
-}
-
-int grib_f_index_release(int* hid){
- return grib_f_index_release_(hid);
-}
-
-int grib_f_multi_handle_release_(int* hid){
+/* int grib_f_multi_handle_release_(int* hid){
return clear_multi_handle(*hid);
-}
+} */
-int grib_f_multi_handle_release__(int* hid){
- return grib_f_multi_handle_release_(hid);
-}
-
-int grib_f_multi_handle_release(int* hid){
- return grib_f_multi_handle_release_(hid);
-}
-
-/*****************************************************************************/
-int grib_f_release_(int* hid){
+int grib_f_release_(int* hid)
+{
return clear_handle(*hid);
}
-int grib_f_release__(int* hid){
- return grib_f_release_( hid);
-}
-int grib_f_release(int* hid){
- return grib_f_release_( hid);
-}
/*****************************************************************************/
static void do_the_dump(grib_handle* h)
@@ -2126,9 +1844,9 @@ static void do_the_dump(grib_handle* h)
grib_dump_content(h,stdout, "wmo", dump_flags, NULL);
}
}
-int grib_f_dump_(int* gid){
+int grib_f_dump_(int* gid)
+{
grib_handle *h = get_handle(*gid);
-
if(!h)
return GRIB_INVALID_GRIB;
else
@@ -2136,16 +1854,11 @@ int grib_f_dump_(int* gid){
return GRIB_SUCCESS;
}
-int grib_f_dump__(int* gid){
- return grib_f_dump_( gid);
-}
-int grib_f_dump(int* gid){
- return grib_f_dump_( gid);
-}
/*****************************************************************************/
#ifdef USE_GRIB_PRINT
-int grib_f_print_(int* gid, char* key, int len){
+int grib_f_print_(int* gid, char* key, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
grib_dumper* d = NULL;
@@ -2160,85 +1873,62 @@ int grib_f_print_(int* gid, char* key, int len){
return err;
}
}
-int grib_f_print__(int* gid, char* key, int len){
- return grib_f_print_(gid, key, len);
-}
-int grib_f_print(int* gid, char* key, int len){
- return grib_f_print_(gid, key, len);
-}
#endif
/*****************************************************************************/
-int grib_f_get_error_string_(int* err, char* buf, int len){
+int grib_f_get_error_string_(int* err, char* buf, int len)
+{
const char* err_msg = grib_get_error_message(*err);
const size_t erlen = strlen(err_msg);
if( len < erlen) return GRIB_ARRAY_TOO_SMALL;
strncpy(buf, err_msg, (size_t)erlen); /* ECC-1488 */
return GRIB_SUCCESS;
}
-int grib_f_get_error_string__(int* err, char* buf, int len){
- return grib_f_get_error_string_(err, buf, len);
-}
-int grib_f_get_error_string(int* err, char* buf, int len){
- return grib_f_get_error_string_(err, buf, len);
-}
/*****************************************************************************/
-int grib_f_get_api_version_(int* apiVersion,int len){
+int grib_f_get_api_version_(int* apiVersion,int len)
+{
*apiVersion = grib_get_api_version();
return GRIB_SUCCESS;
}
-int grib_f_get_api_version__(int* apiVersion, int len){
- return grib_f_get_api_version_(apiVersion, len);
+
+/*****************************************************************************/
+int grib_f_get_size_int_(int* gid, char* key, int* val, int len)
+{
+ grib_handle* h = get_handle(*gid);
+ int err = GRIB_SUCCESS;
+ char buf[1024];
+ size_t tsize = 0;
+
+ if (!h) {
+ return GRIB_INVALID_GRIB;
+ }
+ else {
+ err = grib_get_size(h, cast_char(buf, key, len), &tsize);
+ *val = tsize;
+ return err;
+ }
}
-int grib_f_get_api_version(int* apiVersion, int len){
- return grib_f_get_api_version_(apiVersion, len);
+
+int grib_f_get_size_long_(int* gid, char* key, long* val, int len)
+{
+ grib_handle *h = get_handle(*gid);
+ int err = GRIB_SUCCESS;
+ char buf[1024];
+ size_t tsize = 0;
+
+ if(!h){
+ return GRIB_INVALID_GRIB;
+ }else{
+ err = grib_get_size(h, cast_char(buf,key,len), &tsize);
+ *val = tsize;
+ return err;
+ }
}
/*****************************************************************************/
-int grib_f_get_size_int_(int* gid, char* key, int* val, int len){
- grib_handle *h = get_handle(*gid);
- int err = GRIB_SUCCESS;
- char buf[1024];
- size_t tsize = 0;
-
- if(!h){
- return GRIB_INVALID_GRIB;
- }else{
- err = grib_get_size(h, cast_char(buf,key,len), &tsize);
- *val = tsize;
- return err;
- }
-}
-int grib_f_get_size_int__(int* gid, char* key, int* val, int len){
- return grib_f_get_size_int_( gid, key, val, len);
-}
-int grib_f_get_size_int(int* gid, char* key, int* val, int len){
- return grib_f_get_size_int_( gid, key, val, len);
-}
-
-int grib_f_get_size_long_(int* gid, char* key, long* val, int len){
- grib_handle *h = get_handle(*gid);
- int err = GRIB_SUCCESS;
- char buf[1024];
- size_t tsize = 0;
-
- if(!h){
- return GRIB_INVALID_GRIB;
- }else{
- err = grib_get_size(h, cast_char(buf,key,len), &tsize);
- *val = tsize;
- return err;
- }
-}
-int grib_f_get_size_long__(int* gid, char* key, long* val, int len){
- return grib_f_get_size_long_( gid, key, val, len);
-}
-int grib_f_get_size_long(int* gid, char* key, long* val, int len){
- return grib_f_get_size_long_( gid, key, val, len);
-}
-
-int grib_f_index_get_size_int_(int* gid, char* key, int* val, int len){
- grib_index *h = get_index(*gid);
+int grib_f_index_get_size_int_(int* index_id, char* key, int* val, int len)
+{
+ grib_index *h = get_index(*index_id);
int err = GRIB_SUCCESS;
char buf[1024];
size_t tsize = 0;
@@ -2251,35 +1941,25 @@ int grib_f_index_get_size_int_(int* gid, char* key, int* val, int len){
return err;
}
}
-int grib_f_index_get_size_int__(int* gid, char* key, int* val, int len){
- return grib_f_index_get_size_int_( gid, key, val, len);
-}
-int grib_f_index_get_size_int(int* gid, char* key, int* val, int len){
- return grib_f_index_get_size_int_( gid, key, val, len);
-}
-int grib_f_index_get_size_long_(int* gid, char* key, long* val, int len){
- grib_index *h = get_index(*gid);
- int err = GRIB_SUCCESS;
+int grib_f_index_get_size_long_(int* index_id, char* key, long* val, int len)
+{
+ grib_index *h = get_index(*index_id);
char buf[1024];
size_t tsize = 0;
- if(!h){
+ if (!h){
return GRIB_INVALID_GRIB;
- }else{
- err = grib_index_get_size(h, cast_char(buf,key,len), &tsize);
+ } else{
+ int err = grib_index_get_size(h, cast_char(buf,key,len), &tsize);
*val = tsize;
- return err;
+ return err;
}
}
-int grib_f_index_get_size_long__(int* gid, char* key, long* val, int len){
- return grib_f_index_get_size_long_( gid, key, val, len);
-}
-int grib_f_index_get_size_long(int* gid, char* key, long* val, int len){
- return grib_f_index_get_size_long_( gid, key, val, len);
-}
-int grib_f_get_int_(int* gid, char* key, int* val, int len){
+/*****************************************************************************/
+int grib_f_get_int_(int* gid, char* key, int* val, int len)
+{
grib_handle *h = get_handle(*gid);
long long_val;
int err = GRIB_SUCCESS;
@@ -2290,14 +1970,9 @@ int grib_f_get_int_(int* gid, char* key, int* val, int len){
*val = long_val;
return err;
}
-int grib_f_get_int__(int* gid, char* key, int* val, int len){
- return grib_f_get_int_( gid, key, val, len);
-}
-int grib_f_get_int(int* gid, char* key, int* val, int len){
- return grib_f_get_int_( gid, key, val, len);
-}
-int grib_f_get_long_(int* gid, char* key, long* val, int len){
+int grib_f_get_long_(int* gid, char* key, long* val, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2306,35 +1981,24 @@ int grib_f_get_long_(int* gid, char* key, long* val, int len){
err = grib_get_long(h, cast_char(buf,key,len),val);
return err;
}
-int grib_f_get_long__(int* gid, char* key, long* val, int len){
- return grib_f_get_long_( gid, key, val, len);
-}
-int grib_f_get_long(int* gid, char* key, long* val, int len){
- return grib_f_get_long_( gid, key, val, len);
-}
/*****************************************************************************/
-int grib_f_get_native_type_(int* gid, char* key, int* val, int len){
+int grib_f_get_native_type_(int* gid, char* key, int* val, int len)
+{
grib_handle *h = get_handle(*gid);
int type_val = 0;
int err = GRIB_SUCCESS;
char buf[1024];
- if(!h) return GRIB_INVALID_GRIB;
+ if (!h) return GRIB_INVALID_GRIB;
err = grib_get_native_type(h, cast_char(buf,key,len), &type_val);
*val = type_val;
return err;
}
-int grib_f_get_native_type__(int* gid, char* key, int* val, int len){
- return grib_f_get_native_type_( gid, key, val, len);
-}
-int grib_f_get_native_type(int* gid, char* key, int* val, int len){
- return grib_f_get_native_type_( gid, key, val, len);
-}
/*****************************************************************************/
-int grib_f_get_int_array_(int* gid, char* key, int *val, int* size, int len){
-
+int grib_f_get_int_array_(int* gid, char* key, int *val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
long* long_val = NULL;
int err = GRIB_SUCCESS;
@@ -2363,15 +2027,9 @@ int grib_f_get_int_array_(int* gid, char* key, int *val, int* size, int len){
grib_context_free(h->context,long_val);
return err;
}
-int grib_f_get_int_array__(int* gid, char* key, int*val, int* size, int len){
- return grib_f_get_int_array_( gid, key, val, size, len);
-}
-int grib_f_get_int_array(int* gid, char* key, int*val, int* size, int len){
- return grib_f_get_int_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
-int grib_f_get_long_array_(int* gid, char* key, long *val, int* size, int len){
-
+int grib_f_get_long_array_(int* gid, char* key, long *val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2384,16 +2042,10 @@ int grib_f_get_long_array_(int* gid, char* key, long *val, int* size, int len){
return err;
}
-int grib_f_get_long_array__(int* gid, char* key, long *val, int* size, int len){
- return grib_f_get_long_array_( gid, key, val, size, len);
-}
-int grib_f_get_long_array(int* gid, char* key, long *val, int* size, int len){
- return grib_f_get_long_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
-int grib_f_get_byte_array_(int* gid, char* key, unsigned char *val, int* size, int len, int lenv){
-
+int grib_f_get_byte_array_(int* gid, char* key, unsigned char *val, int* size, int len, int lenv)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2406,17 +2058,11 @@ int grib_f_get_byte_array_(int* gid, char* key, unsigned char *val, int* size, i
return err;
}
-int grib_f_get_byte_array__(int* gid, char* key, unsigned char *val, int* size, int len, int lenv){
- return grib_f_get_byte_array_( gid, key, val, size, len, lenv);
-}
-int grib_f_get_byte_array(int* gid, char* key, unsigned char *val, int* size, int len, int lenv){
- return grib_f_get_byte_array_( gid, key, val, size, len, lenv);
-}
/*****************************************************************************/
-int grib_f_index_get_string_(int* gid, char* key, char* val, int *eachsize,int* size, int len){
-
- grib_index *h = get_index(*gid);
+int grib_f_index_get_string_(int* index_id, char* key, char* val, int *eachsize,int* size, int len)
+{
+ grib_index *h = get_index(*index_id);
int err = GRIB_SUCCESS;
int i;
char buf[1024];
@@ -2437,7 +2083,8 @@ int grib_f_index_get_string_(int* gid, char* key, char* val, int *eachsize,int*
int l=strlen(bufval[i]);
int j;
if (*eachsize < l ) {
- printf("eachsize=%d strlen(bufval[i])=%ld\n",*eachsize,(long)strlen(bufval[i]));
+ fprintf(stderr, "eachsize=%d strlen(bufval[i])=%zu\n",
+ *eachsize, strlen(bufval[i]));
grib_context_free(h->context,bufval);
return GRIB_ARRAY_TOO_SMALL;
}
@@ -2452,42 +2099,29 @@ int grib_f_index_get_string_(int* gid, char* key, char* val, int *eachsize,int*
return err;
}
-int grib_f_index_get_string__(int* gid, char* key, char *val, int* eachsize, int* size, int len){
- return grib_f_index_get_string_(gid,key,val,eachsize,size,len);
-}
-int grib_f_index_get_string(int* gid, char* key, char* val, int* eachsize, int* size, int len){
- return grib_f_index_get_string_(gid,key,val,eachsize,size,len);
-}
/*****************************************************************************/
-int grib_f_index_get_long_(int* gid, char* key, long *val, int* size, int len){
-
- grib_index *h = get_index(*gid);
- int err = GRIB_SUCCESS;
+int grib_f_index_get_long_(int* index_id, char* key, long *val, int* size, int len)
+{
+ int err = 0;
+ grib_index* h = get_index(*index_id);
char buf[1024];
size_t lsize = *size;
- if(!h) return GRIB_INVALID_GRIB;
+ if (!h) return GRIB_INVALID_GRIB;
err = grib_index_get_long(h, cast_char(buf,key,len), val, &lsize);
*size = lsize;
- return err;
-}
-int grib_f_index_get_long__(int* gid, char* key, long *val, int* size, int len){
- return grib_f_index_get_long_(gid,key,val,size,len);
-}
-int grib_f_index_get_long(int* gid, char* key, long *val, int* size, int len){
- return grib_f_index_get_long_(gid,key,val,size,len);
+ return err;
}
/*****************************************************************************/
-int grib_f_index_get_int_(int* gid, char* key, int *val, int* size, int len){
-
- grib_index *h = get_index(*gid);
+int grib_f_index_get_int_(int* index_id, char* key, int *val, int* size, int len)
+{
+ grib_index *h = get_index(*index_id);
int err = GRIB_SUCCESS;
char buf[1024];
- size_t lsize = *size;
+ size_t lsize = *size, i = 0;
long* lval=0;
- int i;
if(!h) return GRIB_INVALID_GRIB;
@@ -2501,35 +2135,24 @@ int grib_f_index_get_int_(int* gid, char* key, int *val, int* size, int len){
grib_context_free(h->context, lval);
return err;
}
-int grib_f_index_get_int__(int* gid, char* key, int *val, int* size, int len){
- return grib_f_index_get_int_(gid,key,val,size,len);
-}
-int grib_f_index_get_int(int* gid, char* key, int *val, int* size, int len){
- return grib_f_index_get_int_(gid,key,val,size,len);
-}
/*****************************************************************************/
-int grib_f_index_get_real8_(int* gid, char* key, double *val, int* size, int len){
-
- grib_index *h = get_index(*gid);
- int err = GRIB_SUCCESS;
+int grib_f_index_get_real8_(int* index_id, char* key, double *val, int* size, int len)
+{
+ int err = 0;
+ grib_index* h = get_index(*index_id);
char buf[1024];
size_t lsize = *size;
- if(!h) return GRIB_INVALID_GRIB;
+ if (!h) return GRIB_INVALID_GRIB;
err = grib_index_get_double(h, cast_char(buf,key,len), val, &lsize);
*size = lsize;
- return err;
-}
-int grib_f_index_get_real8__(int* gid, char* key, double *val, int* size, int len){
- return grib_f_index_get_real8_(gid,key,val,size,len);
-}
-int grib_f_index_get_real8(int* gid, char* key, double *val, int* size, int len){
- return grib_f_index_get_real8_(gid,key,val,size,len);
+ return err;
}
/*****************************************************************************/
-int grib_f_set_int_array_(int* gid, char* key, int* val, int* size, int len){
+int grib_f_set_int_array_(int* gid, char* key, int* val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2558,15 +2181,10 @@ int grib_f_set_int_array_(int* gid, char* key, int* val, int* size, int len){
grib_context_free(h->context,long_val);
return err;
}
-int grib_f_set_int_array__(int* gid, char* key, int* val, int* size, int len){
- return grib_f_set_int_array_( gid, key, val, size, len);
-}
-int grib_f_set_int_array(int* gid, char* key, int* val, int* size, int len){
- return grib_f_set_int_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
-int grib_f_set_long_array_(int* gid, char* key, long* val, int* size, int len){
+int grib_f_set_long_array_(int* gid, char* key, long* val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
size_t lsize = *size;
@@ -2575,15 +2193,10 @@ int grib_f_set_long_array_(int* gid, char* key, long* val, int* size, int len){
return grib_set_long_array(h, cast_char(buf,key,len), val, lsize);
}
-int grib_f_set_long_array__(int* gid, char* key, long* val, int* size, int len){
- return grib_f_set_long_array_( gid, key, val, size, len);
-}
-int grib_f_set_long_array(int* gid, char* key, long* val, int* size, int len){
- return grib_f_set_long_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
-int grib_f_set_byte_array_(int* gid, char* key, unsigned char* val, int* size, int len, int lenv){
+int grib_f_set_byte_array_(int* gid, char* key, unsigned char* val, int* size, int len, int lenv)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2596,43 +2209,28 @@ int grib_f_set_byte_array_(int* gid, char* key, unsigned char* val, int* size, i
return err;
}
-int grib_f_set_byte_array__(int* gid, char* key, unsigned char* val, int* size, int len, int lenv){
- return grib_f_set_byte_array_( gid, key, val, size, len, lenv);
-}
-int grib_f_set_byte_array(int* gid, char* key, unsigned char* val, int* size, int len, int lenv){
- return grib_f_set_byte_array_( gid, key, val, size, len, lenv);
-}
/*****************************************************************************/
-int grib_f_set_int_(int* gid, char* key, int* val, int len){
+int grib_f_set_int_(int* gid, char* key, int* val, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
long long_val = *val;
if(!h) return GRIB_INVALID_GRIB;
return grib_set_long(h, cast_char(buf,key,len), long_val);
}
-int grib_f_set_int__(int* gid, char* key, int* val, int len){
- return grib_f_set_int_( gid, key, val, len);
-}
-int grib_f_set_int(int* gid, char* key, int* val, int len){
- return grib_f_set_int_( gid, key, val, len);
-}
-int grib_f_set_long_(int* gid, char* key, long* val, int len){
+int grib_f_set_long_(int* gid, char* key, long* val, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
if(!h) return GRIB_INVALID_GRIB;
return grib_set_long(h, cast_char(buf,key,len), *val);
}
-int grib_f_set_long__(int* gid, char* key, long* val, int len){
- return grib_f_set_long_( gid, key, val, len);
-}
-int grib_f_set_long(int* gid, char* key, long* val, int len){
- return grib_f_set_long_( gid, key, val, len);
-}
/*****************************************************************************/
-int grib_f_set_missing_(int* gid, char* key,int len){
+int grib_f_set_missing_(int* gid, char* key,int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
@@ -2640,14 +2238,9 @@ int grib_f_set_missing_(int* gid, char* key,int len){
return grib_set_missing(h, cast_char(buf,key,len));
}
-int grib_f_set_missing__(int* gid, char* key, int len){
- return grib_f_set_missing_( gid, key, len);
-}
-int grib_f_set_missing(int* gid, char* key, int len){
- return grib_f_set_missing_( gid, key, len);
-}
-int grib_f_is_missing_(int* gid, char* key,int* isMissing,int len){
+int grib_f_is_missing_(int* gid, char* key,int* isMissing,int len)
+{
int err=0;
grib_handle *h = get_handle(*gid);
char buf[1024];
@@ -2656,15 +2249,10 @@ int grib_f_is_missing_(int* gid, char* key,int* isMissing,int len){
*isMissing=grib_is_missing(h, cast_char(buf,key,len),&err);
return err;
}
-int grib_f_is_missing__(int* gid, char* key,int* isMissing,int len){
- return grib_f_is_missing_(gid,key,isMissing,len);
-}
-int grib_f_is_missing(int* gid, char* key,int* isMissing,int len){
- return grib_f_is_missing_(gid,key,isMissing,len);
-}
/*****************************************************************************/
-int grib_f_is_defined_(int* gid, char* key,int* isDefined,int len){
+int grib_f_is_defined_(int* gid, char* key,int* isDefined,int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
if(!h) return GRIB_INVALID_GRIB;
@@ -2672,16 +2260,10 @@ int grib_f_is_defined_(int* gid, char* key,int* isDefined,int len){
*isDefined=grib_is_defined(h, cast_char(buf,key,len));
return GRIB_SUCCESS;
}
-int grib_f_is_defined__(int* gid, char* key,int* isDefined,int len){
- return grib_f_is_defined_(gid,key,isDefined,len);
-}
-int grib_f_is_defined(int* gid, char* key,int* isDefined,int len){
- return grib_f_is_defined_(gid,key,isDefined,len);
-}
/*****************************************************************************/
-int grib_f_set_real4_(int* gid, char* key, float* val, int len){
-
+int grib_f_set_real4_(int* gid, char* key, float* val, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
double val8 = *val;
@@ -2689,15 +2271,9 @@ int grib_f_set_real4_(int* gid, char* key, float* val, int len){
return grib_set_double(h, cast_char(buf,key,len), val8);
}
-int grib_f_set_real4__(int* gid, char* key, float* val, int len){
- return grib_f_set_real4_( gid, key, val, len);
-}
-int grib_f_set_real4(int* gid, char* key, float* val, int len){
- return grib_f_set_real4_( gid, key, val, len);
-}
-
-int grib_f_get_real4_element_(int* gid, char* key, int* index,float* val, int len){
+int grib_f_get_real4_element_(int* gid, char* key, int* index,float* val, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -2709,20 +2285,14 @@ int grib_f_get_real4_element_(int* gid, char* key, int* index,float* val, int le
*val = val8;
return err;
}
-int grib_f_get_real4_element__(int* gid, char* key,int* index, float* val,int len){
- return grib_f_get_real4_element_( gid, key, index, val, len);
-}
-int grib_f_get_real4_element(int* gid, char* key,int* index, float* val,int len){
- return grib_f_get_real4_element_( gid, key, index, val, len);
-}
-
-int grib_f_get_real4_elements_(int* gid, char* key,int* index, float *val,int* size, int len){
+int grib_f_get_real4_elements_(int* gid, char* key,int* index, float *val,int* size, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
size_t lsize = *size;
- long i=0;
+ size_t i = 0;
double* val8 = NULL;
if(!h) return GRIB_INVALID_GRIB;
@@ -2734,7 +2304,6 @@ int grib_f_get_real4_elements_(int* gid, char* key,int* index, float *val,int* s
if(!val8) return GRIB_OUT_OF_MEMORY;
-
err = grib_get_double_elements(h, cast_char(buf,key,len), index,(long)lsize,val8);
for(i=0;icontext,val8);
return err;
}
-int grib_f_set_force_real4_array__(int* gid, char* key, float*val, int* size, int len){
- return grib_f_set_force_real4_array_( gid, key, val, size, len);
-}
-int grib_f_set_force_real4_array(int* gid, char* key, float*val, int* size, int len){
- return grib_f_set_force_real4_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
int grib_f_set_real4_array_(int* gid, char* key, float* val, int* size, int len)
@@ -2887,33 +2433,21 @@ int grib_f_set_real4_array_(int* gid, char* key, float* val, int* size, int len)
return err;
}
-int grib_f_set_real4_array__(int* gid, char* key, float* val, int* size, int len) {
- return grib_f_set_real4_array_(gid, key, val, size, len);
-}
-int grib_f_set_real4_array(int* gid, char* key, float* val, int* size, int len) {
- return grib_f_set_real4_array_(gid, key, val, size, len);
-}
/*****************************************************************************/
-int grib_f_index_select_real8_(int* gid, char* key, double* val, int len)
+int grib_f_index_select_real8_(int* index_id, char* key, double* val, int len)
{
- grib_index *h = get_index(*gid);
+ grib_index *h = get_index(*index_id);
char buf[1024];
if(!h) return GRIB_INVALID_GRIB;
return grib_index_select_double(h, cast_char(buf,key,len), *val);
}
-int grib_f_index_select_real8__(int* gid, char* key, double* val, int len){
- return grib_f_index_select_real8_(gid,key,val,len);
-}
-int grib_f_index_select_real8(int* gid, char* key, double* val, int len){
- return grib_f_index_select_real8_(gid,key,val,len);
-}
/*****************************************************************************/
-int grib_f_index_select_string_(int* gid, char* key, char* val, int len, int vallen)
+int grib_f_index_select_string_(int* index_id, char* key, char* val, int len, int vallen)
{
- grib_index *h = get_index(*gid);
+ grib_index *h = get_index(*index_id);
char buf[1024];
char bufval[1024];
@@ -2926,44 +2460,26 @@ int grib_f_index_select_string_(int* gid, char* key, char* val, int len, int val
return grib_index_select_string(h, cast_char(buf,key,len), bufval);
}
-int grib_f_index_select_string__(int* gid, char* key, char* val, int len, int vallen){
- return grib_f_index_select_string_(gid,key,val,len,vallen);
-}
-int grib_f_index_select_string(int* gid, char* key, char* val, int len, int vallen){
- return grib_f_index_select_string_(gid,key,val,len,vallen);
+
+/*****************************************************************************/
+int grib_f_index_select_int_(int* index_id, char* key, int* val, int len)
+{
+ grib_index *h = get_index(*index_id);
+ long lval = *val;
+ char buf[1024] = {0,};
+
+ if (!h) return GRIB_INVALID_GRIB;
+ return grib_index_select_long(h, cast_char(buf, key, len), lval);
}
/*****************************************************************************/
-int grib_f_index_select_int_(int* gid, char* key, int* val, int len)
+int grib_f_index_select_long_(int* index_id, char* key, long* val, int len)
{
- grib_index *h = get_index(*gid);
- long lval=*val;
- char buf[1024];
+ grib_index *h = get_index(*index_id);
+ char buf[1024] = {0,};
- if(!h) return GRIB_INVALID_GRIB;
- return grib_index_select_long(h, cast_char(buf,key,len), lval);
-}
-int grib_f_index_select_int__(int* gid, char* key, int* val, int len){
- return grib_f_index_select_int_(gid,key,val,len);
-}
-int grib_f_index_select_int(int* gid, char* key, int* val, int len){
- return grib_f_index_select_int_(gid,key,val,len);
-}
-
-/*****************************************************************************/
-int grib_f_index_select_long_(int* gid, char* key, long* val, int len)
-{
- grib_index *h = get_index(*gid);
- char buf[1024];
-
- if(!h) return GRIB_INVALID_GRIB;
- return grib_index_select_long(h, cast_char(buf,key,len), *val);
-}
-int grib_f_index_select_long__(int* gid, char* key, long* val, int len){
- return grib_f_index_select_long_(gid,key,val,len);
-}
-int grib_f_index_select_long(int* gid, char* key, long* val, int len){
- return grib_f_index_select_long_(gid,key,val,len);
+ if (!h) return GRIB_INVALID_GRIB;
+ return grib_index_select_long(h, cast_char(buf, key, len), *val);
}
/*****************************************************************************/
@@ -2975,12 +2491,6 @@ int grib_f_set_real8_(int* gid, char* key, double* val, int len)
if(!h) return GRIB_INVALID_GRIB;
return grib_set_double(h, cast_char(buf,key,len), *val);
}
-int grib_f_set_real8__(int* gid, char* key, double* val, int len){
- return grib_f_set_real8_( gid, key, val, len);
-}
-int grib_f_set_real8(int* gid, char* key, double* val, int len){
- return grib_f_set_real8_( gid, key, val, len);
-}
int grib_f_get_real8_(int* gid, char* key, double* val, int len)
{
@@ -2990,47 +2500,28 @@ int grib_f_get_real8_(int* gid, char* key, double* val, int len)
if(!h) return GRIB_INVALID_GRIB;
return grib_get_double(h, cast_char(buf,key,len), val);
-
-}
-int grib_f_get_real8__(int* gid, char* key, double* val, int len){
- return grib_f_get_real8_( gid, key, val, len);
-}
-int grib_f_get_real8(int* gid, char* key, double* val, int len){
- return grib_f_get_real8_( gid, key, val, len);
}
-int grib_f_get_real8_element_(int* gid, char* key,int* index, double* val, int len){
-
+/*****************************************************************************/
+int grib_f_get_real8_element_(int* gid, char* key,int* index, double* val, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
if(!h) return GRIB_INVALID_GRIB;
return grib_get_double_element(h, cast_char(buf,key,len), *index,val);
-
-}
-int grib_f_get_real8_element__(int* gid, char* key, int* index,double* val, int len){
- return grib_f_get_real8_element_( gid, key, index, val,len);
-}
-int grib_f_get_real8_element(int* gid, char* key, int* index,double* val, int len){
- return grib_f_get_real8_element_( gid, key, index, val,len);
}
-int grib_f_get_real8_elements_(int* gid, char* key,int* index, double* val, int *size, int len){
-
+/*****************************************************************************/
+int grib_f_get_real8_elements_(int* gid, char* key,int* index, double* val, int *size, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
if(!h) return GRIB_INVALID_GRIB;
return grib_get_double_elements(h, cast_char(buf,key,len), index,*size,val);
-
-}
-int grib_f_get_real8_elements__(int* gid, char* key, int* index,double* val, int* len,int size){
- return grib_f_get_real8_elements_( gid, key, index, val,len,size);
-}
-int grib_f_get_real8_elements(int* gid, char* key, int* index,double* val, int* len,int size){
- return grib_f_get_real8_elements_( gid, key, index, val,len,size);
}
/*****************************************************************************/
@@ -3057,102 +2548,40 @@ int grib_f_find_nearest_four_single_(int* gid,int* is_lsm,
grib_nearest_delete(nearest);
return result;
}
-int grib_f_find_nearest_four_single__(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_four_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
-int grib_f_find_nearest_four_single(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_four_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
/*****************************************************************************/
int grib_f_find_nearest_single_(int* gid,int* is_lsm,
double* inlats,double* inlons,
double* outlats,double* outlons,
double* values,double* distances,
- int* indexes) {
-
+ int* indexes)
+{
grib_handle *h = get_handle(*gid);
-
if(!h) return GRIB_INVALID_GRIB;
return grib_nearest_find_multiple(h,*is_lsm,
inlats,inlons,1,outlats,outlons,
values,distances,indexes);
}
-int grib_f_find_nearest_single__(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
-int grib_f_find_nearest_single(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes) {
-
- return grib_f_find_nearest_single_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes);
-}
/*****************************************************************************/
int grib_f_find_nearest_multiple_(int* gid,int* is_lsm,
double* inlats,double* inlons,
double* outlats,double* outlons,
double* values,double* distances,
- int* indexes, int* npoints) {
-
+ int* indexes, int* npoints)
+{
grib_handle *h = get_handle(*gid);
-
if(!h) return GRIB_INVALID_GRIB;
return grib_nearest_find_multiple(h,*is_lsm,
inlats,inlons,*npoints,outlats,outlons,
values,distances,indexes);
}
-int grib_f_find_nearest_multiple__(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes, int* npoints) {
-
- return grib_f_find_nearest_multiple_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes,npoints);
-}
-int grib_f_find_nearest_multiple(int* gid,int* is_lsm,
- double* inlats,double* inlons,
- double* outlats,double* outlons,
- double* values,double* distances,
- int* indexes, int* npoints) {
-
- return grib_f_find_nearest_multiple_(gid,is_lsm,
- inlats,inlons,outlats,outlons,values,
- distances,indexes,npoints);
-}
/*****************************************************************************/
-int grib_f_get_real8_array_(int* gid, char* key, double*val, int* size, int len){
-
+int grib_f_get_real8_array_(int* gid, char* key, double*val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -3166,35 +2595,22 @@ int grib_f_get_real8_array_(int* gid, char* key, double*val, int* size, int len)
return err;
}
}
-int grib_f_get_real8_array__(int* gid, char* key, double*val, int* size, int len){
- return grib_f_get_real8_array_( gid, key, val, size, len);
-}
-int grib_f_get_real8_array(int* gid, char* key, double*val, int* size, int len){
- return grib_f_get_real8_array_( gid, key, val, size, len);
-}
-
-int grib_f_set_force_real8_array__(int* gid, char* key, double *val, int* size, int len){
- return grib_f_set_force_real8_array_( gid, key, val, size, len);
-}
-int grib_f_set_force_real8_array(int* gid, char* key, double *val, int* size, int len){
- return grib_f_set_force_real8_array_( gid, key, val, size, len);
-}
-
-int grib_f_set_force_real8_array_(int* gid, char* key, double*val, int* size, int len){
+/*****************************************************************************/
+int grib_f_set_force_real8_array_(int* gid, char* key, double*val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
size_t lsize = *size;
- if(!h) return GRIB_INVALID_GRIB;
+ if(!h) return GRIB_INVALID_GRIB;
return grib_set_force_double_array(h, cast_char(buf,key,len), val, lsize);
-
}
/*****************************************************************************/
-int grib_f_set_real8_array_(int* gid, char* key, double*val, int* size, int len){
-
+int grib_f_set_real8_array_(int* gid, char* key, double*val, int* size, int len)
+{
grib_handle *h = get_handle(*gid);
char buf[1024];
size_t lsize = *size;
@@ -3203,12 +2619,6 @@ int grib_f_set_real8_array_(int* gid, char* key, double*val, int* size, int len)
return grib_set_double_array(h, cast_char(buf,key,len), val, lsize);
}
-int grib_f_set_real8_array__(int* gid, char* key, double *val, int* size, int len){
- return grib_f_set_real8_array_( gid, key, val, size, len);
-}
-int grib_f_set_real8_array(int* gid, char* key, double *val, int* size, int len){
- return grib_f_set_real8_array_( gid, key, val, size, len);
-}
/*****************************************************************************/
int grib_f_get_string_array_(int* gid, char* key, char* val,int* nvals,int* slen, int len)
@@ -3240,13 +2650,6 @@ int grib_f_get_string_array_(int* gid, char* key, char* val,int* nvals,int* slen
return err;
}
-int grib_f_get_string_array__(int* gid, char* key, char* val,int* nvals,int* slen, int len){
- return grib_f_get_string_array_( gid, key, val,nvals,slen,len);
-}
-int grib_f_get_string_array(int* gid, char* key, char* val,int* nvals,int* slen, int len){
- return grib_f_get_string_array_( gid, key, val, nvals, slen, len);
-}
-
/*****************************************************************************/
int codes_f_bufr_copy_data_(int* gid1,int* gid2)
{
@@ -3261,13 +2664,6 @@ int codes_f_bufr_copy_data_(int* gid1,int* gid2)
return err;
}
-int codes_f_bufr_copy_data__(int* gid1,int* gid2){
- return codes_f_bufr_copy_data_(gid1, gid2);
-}
-int codes_f_bufr_copy_data(int* gid1,int* gid2){
- return codes_f_bufr_copy_data_(gid1, gid2);
-}
-
/*****************************************************************************/
int grib_f_set_string_array_(int* gid, char* key, char* val,int* nvals,int* slen, int len)
@@ -3302,16 +2698,9 @@ int grib_f_set_string_array_(int* gid, char* key, char* val,int* nvals,int* slen
return err;
}
-int grib_f_set_string_array__(int* gid, char* key, char* val,int* nvals,int* slen, int len){
- return grib_f_set_string_array_( gid, key, val,nvals,slen,len);
-}
-int grib_f_set_string_array(int* gid, char* key, char* val,int* nvals,int* slen, int len){
- return grib_f_set_string_array_( gid, key, val, nvals, slen, len);
-}
-
/*****************************************************************************/
-int grib_f_get_string_(int* gid, char* key, char* val,int len, int len2){
-
+int grib_f_get_string_(int* gid, char* key, char* val,int len, int len2)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
char buf[1024];
@@ -3328,13 +2717,6 @@ int grib_f_get_string_(int* gid, char* key, char* val,int len, int len2){
return err;
}
-int grib_f_get_string__(int* gid, char* key, char* val, int len, int len2){
- return grib_f_get_string_( gid, key, val, len, len2);
-}
-int grib_f_get_string(int* gid, char* key, char* val, int len, int len2){
- return grib_f_get_string_( gid, key, val, len, len2);
-}
-
static int is_all_spaces(const char *s)
{
while (*s != '\0') {
@@ -3343,8 +2725,10 @@ static int is_all_spaces(const char *s)
}
return 1;
}
-int grib_f_set_string_(int* gid, char* key, char* val, int len, int len2){
+/*****************************************************************************/
+int grib_f_set_string_(int* gid, char* key, char* val, int len, int len2)
+{
grib_handle *h = get_handle(*gid);
char* val_str = NULL;
@@ -3364,16 +2748,9 @@ int grib_f_set_string_(int* gid, char* key, char* val, int len, int len2){
return grib_set_string(h, cast_char(buf,key,len), val_str, &lsize);
}
-int grib_f_set_string__(int* gid, char* key, char* val, int len, int len2){
- return grib_f_set_string_( gid, key, val, len, len2);
-}
-int grib_f_set_string(int* gid, char* key, char* val, int len, int len2){
- return grib_f_set_string_( gid, key, val, len, len2);
-}
-
/*****************************************************************************/
-int grib_f_get_data_real4_(int* gid,float* lats, float* lons,float* values,size_t* size) {
-
+int grib_f_get_data_real4_(int* gid,float* lats, float* lons,float* values,size_t* size)
+{
grib_handle *h = get_handle(*gid);
int err = GRIB_SUCCESS;
double *lat8=NULL,*lon8=NULL,*val8 = NULL;
@@ -3401,72 +2778,44 @@ int grib_f_get_data_real4_(int* gid,float* lats, float* lons,float* values,size_
grib_context_free(h->context,lon8);
return err;
-
-}
-int grib_f_get_data_real4__(int* gid,float* lats, float* lons,float* values,size_t* size) {
- return grib_f_get_data_real4_(gid,lats,lons,values,size);
-}
-int grib_f_get_data_real4(int* gid,float* lats, float* lons,float* values,size_t* size) {
- return grib_f_get_data_real4_(gid,lats,lons,values,size);
}
-int grib_f_get_data_real8_(int* gid,double* lats, double* lons,double* values,size_t* size) {
-
+int grib_f_get_data_real8_(int* gid,double* lats, double* lons,double* values,size_t* size)
+{
grib_handle *h = get_handle(*gid);
return grib_get_data(h,lats,lons,values);
-
-}
-int grib_f_get_data_real8__(int* gid,double* lats, double* lons,double* values,size_t* size) {
- return grib_f_get_data_real8_(gid,lats,lons,values,size);
-}
-int grib_f_get_data_real8(int* gid,double* lats, double* lons,double* values,size_t* size) {
- return grib_f_get_data_real8_(gid,lats,lons,values,size);
}
/*****************************************************************************/
-int grib_f_get_message_size_(int* gid, size_t *len){
+int grib_f_get_message_size_(int* gid, size_t *len)
+{
grib_handle *h = get_handle(*gid);
if(!h) return GRIB_INVALID_GRIB;
-
*len = h->buffer->ulength;
return GRIB_SUCCESS;
-
-}
-int grib_f_get_message_size__(int* gid, size_t *len){
- return grib_f_get_message_size_( gid, len);
-}
-int grib_f_get_message_size(int* gid, size_t *len){
- return grib_f_get_message_size_( gid, len);
}
/*****************************************************************************/
-int grib_f_copy_message_(int* gid, void* mess,size_t* len){
+int grib_f_copy_message_(int* gid, void* mess, size_t* len)
+{
grib_handle *h = get_handle(*gid);
if(!h)
return GRIB_INVALID_GRIB;
if(*len < h->buffer->ulength) {
grib_context_log(h->context,GRIB_LOG_ERROR,
- "grib_copy_message: buffer=%ld message size=%ld",*len,h->buffer->ulength);
+ "grib_copy_message: buffer=%zu message size=%zu", *len, h->buffer->ulength);
return GRIB_BUFFER_TOO_SMALL;
}
-
memcpy(mess,h->buffer->data,h->buffer->ulength);
*len=h->buffer->ulength;
return GRIB_SUCCESS;
-
-}
-
-int grib_f_copy_message__(int* gid, void* mess,size_t* len){
- return grib_f_copy_message_( gid, mess, len);
-}
-int grib_f_copy_message(int* gid, void* mess,size_t* len){
- return grib_f_copy_message_( gid, mess, len);
}
/*****************************************************************************/
-void grib_f_check_(int* err,char* call,char* str,int lencall,int lenstr){
+void grib_f_check_(int* err,char* call,char* str,int lencall,int lenstr)
+{
char bufstr[1024]={0,};
char bufcall[1024]={0,};
grib_context* c=grib_context_get_default();
@@ -3480,15 +2829,9 @@ void grib_f_check_(int* err,char* call,char* str,int lencall,int lenstr){
exit(*err);
}
-void grib_f_check__(int* err,char* call, char* key, int lencall, int lenkey){
- grib_f_check_(err,call,key,lencall,lenkey);
-}
-void grib_f_check(int* err,char* call, char* key, int lencall, int lenkey){
- grib_f_check_(err,call,key,lencall,lenkey);
-}
-
/*****************************************************************************/
-int grib_f_write_(int* gid, int* fid) {
+int grib_f_write_(int* gid, int* fid)
+{
grib_handle *h = get_handle(*gid);
FILE* f = get_file(*fid);
const void* mess = NULL;
@@ -3499,22 +2842,16 @@ int grib_f_write_(int* gid, int* fid) {
grib_get_message(h,&mess,&mess_len);
if(fwrite(mess,1, mess_len,f) != mess_len) {
- perror("grib_write");
+ perror("write");
return GRIB_IO_PROBLEM;
}
return GRIB_SUCCESS;
}
-int grib_f_write__(int* gid, int* fid) {
- return grib_f_write_(gid,fid);
-}
-
-int grib_f_write(int* gid, int* fid) {
- return grib_f_write_(gid,fid);
-}
/*****************************************************************************/
-int grib_f_multi_write_(int* gid, int* fid) {
+int grib_f_multi_write_(int* gid, int* fid)
+{
grib_multi_handle *h = get_multi_handle(*gid);
FILE* f = get_file(*fid);
@@ -3524,16 +2861,8 @@ int grib_f_multi_write_(int* gid, int* fid) {
return grib_multi_handle_write(h,f);
}
-
-int grib_f_multi_write__(int* gid, int* fid) {
- return grib_f_multi_write_(gid,fid);
-}
-
-int grib_f_multi_write(int* gid, int* fid) {
- return grib_f_multi_write_(gid,fid);
-}
-
-int grib_f_multi_append_(int* ingid, int* sec,int* mgid) {
+int grib_f_multi_append_(int* ingid, int* sec,int* mgid)
+{
grib_handle *h = get_handle(*ingid);
grib_multi_handle *mh = get_multi_handle(*mgid);
@@ -3547,84 +2876,45 @@ int grib_f_multi_append_(int* ingid, int* sec,int* mgid) {
return grib_multi_handle_append(h,*sec,mh);
}
-int grib_f_multi_append(int* ingid, int* sec,int* mgid) {
- return grib_f_multi_append_(ingid, sec, mgid);
-}
-
-int grib_f_multi_append__(int* ingid, int* sec,int* mgid) {
- return grib_f_multi_append_(ingid, sec, mgid);
-}
-
-
/*****************************************************************************/
-int codes_f_bufr_multi_element_constant_arrays_on_() {
+int codes_f_bufr_multi_element_constant_arrays_on_(void)
+{
codes_bufr_multi_element_constant_arrays_on(NULL);
return GRIB_SUCCESS;
}
-int codes_f_bufr_multi_element_constant_arrays_on__() {
- return codes_f_bufr_multi_element_constant_arrays_on_();
-}
-int codes_f_bufr_multi_element_constant_arrays_on() {
- return codes_f_bufr_multi_element_constant_arrays_on_();
-}
-int codes_f_bufr_multi_element_constant_arrays_off_() {
+int codes_f_bufr_multi_element_constant_arrays_off_(void)
+{
codes_bufr_multi_element_constant_arrays_off(NULL);
return GRIB_SUCCESS;
}
-int codes_f_bufr_multi_element_constant_arrays_off__() {
- return codes_f_bufr_multi_element_constant_arrays_off_();
-}
-int codes_f_bufr_multi_element_constant_arrays_off() {
- return codes_f_bufr_multi_element_constant_arrays_off_();
-}
-
/*****************************************************************************/
-int grib_f_set_definitions_path_(char* path, int len){
+int grib_f_set_definitions_path_(char* path, int len)
+{
grib_context* c = grib_context_get_default();
char buf[1024];
grib_context_set_definitions_path(c, cast_char(buf,path,len));
return GRIB_SUCCESS;
}
-int grib_f_set_definitions_path__(char* path, int len){
- return grib_f_set_definitions_path_(path, len);
-}
-int grib_f_set_definitions_path(char* path, int len){
- return grib_f_set_definitions_path_(path, len);
-}
-
-int grib_f_set_samples_path_(char* path, int len){
+/*****************************************************************************/
+int grib_f_set_samples_path_(char* path, int len)
+{
grib_context* c = grib_context_get_default();
char buf[1024];
grib_context_set_samples_path(c, cast_char(buf,path,len));
return GRIB_SUCCESS;
}
-int grib_f_set_samples_path__(char* path, int len){
- return grib_f_set_samples_path_(path, len);
-}
-int grib_f_set_samples_path(char* path, int len){
- return grib_f_set_samples_path_(path, len);
-}
-int grib_f_julian_to_datetime(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second) {
- return grib_julian_to_datetime(*jd,year,month,day,hour,minute,second);
-}
-int grib_f_julian_to_datetime_(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second) {
- return grib_julian_to_datetime(*jd,year,month,day,hour,minute,second);
-}
-int grib_f_julian_to_datetime__(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second) {
+/*****************************************************************************/
+int grib_f_julian_to_datetime_(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second)
+{
return grib_julian_to_datetime(*jd,year,month,day,hour,minute,second);
}
-int grib_f_datetime_to_julian(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd) {
+/*****************************************************************************/
+int grib_f_datetime_to_julian_(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd)
+{
return grib_datetime_to_julian(*year,*month,*day,*hour,*minute,*second,jd);
}
-int grib_f_datetime_to_julian_(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd) {
- return grib_datetime_to_julian(*year,*month,*day,*hour,*minute,*second,jd);
-}
-int grib_f_datetime_to_julian__(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd) {
- return grib_datetime_to_julian(*year,*month,*day,*hour,*minute,*second,jd);
-}
-
diff --git a/fortran/grib_fortran_kinds.c b/fortran/grib_fortran_kinds.c
index 413a0d164..5835a53d2 100644
--- a/fortran/grib_fortran_kinds.c
+++ b/fortran/grib_fortran_kinds.c
@@ -14,45 +14,29 @@
extern "C" {
#endif
-void f_sizeof(void *x,void *y, int *size) {
- *size=((char*)y)-((char*)x);
-}
-void f_sizeof_(void *x,void *y, int *size) {
- *size=((char*)y)-((char*)x);
-}
-void f_sizeof__(void *x,void *y, int *size) {
+void f_sizeof_(void *x, void *y, int *size) {
*size=((char*)y)-((char*)x);
}
-void check_double(double *x,double *y,char* ret) {
+void check_double_(double *x, double* y, char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
-void check_double_(double *x,double *y,char* ret) {check_double(x,y,ret);}
-void check_double__(double *x,double *y,char* ret) {check_double(x,y,ret);}
-void check_float(float *x,float *y,char* ret) {
+void check_float_(float* x, float* y, char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
-void check_float_(float *x,float *y,char* ret) { check_float(x,y,ret); }
-void check_float__(float *x,float *y,char* ret) { check_float(x,y,ret); }
-void check_int(int *x,int *y,char* ret) {
+void check_int_(int* x, int* y, char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
-void check_int_(int *x,int *y,char* ret) { check_int(x,y,ret); }
-void check_int__(int *x,int *y,char* ret) { check_int(x,y,ret); }
-void check_long(long *x,long *y,char* ret) {
+void check_long_(long* x, long * y, char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
-void check_long_(long *x,long *y,char* ret) {check_long(x,y,ret);}
-void check_long__(long *x,long *y,char* ret) {check_long(x,y,ret);}
-void check_size_t(size_t *x,size_t *y,char* ret) {
+void check_size_t_(size_t* x, size_t* y, char* ret) {
*ret = ((char*)y)-((char*)x) == sizeof(*x) ? 't' : 'f';
}
-void check_size_t_(size_t *x,size_t *y,char* ret) {check_size_t(x,y,ret);}
-void check_size_t__(size_t *x,size_t *y,char* ret) {check_size_t(x,y,ret);}
#ifdef __cplusplus
}
diff --git a/fortran/grib_fortran_prototypes.h b/fortran/grib_fortran_prototypes.h
deleted file mode 100644
index f0267cc79..000000000
--- a/fortran/grib_fortran_prototypes.h
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * (C) Copyright 2005- 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.
- */
-
-/* grib_fortran.c */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int grib_f_read_any_headers_only_from_file_(int *fid, char *buffer, size_t *nbytes);
-int grib_f_read_any_headers_only_from_file__(int *fid, char *buffer, size_t *nbytes);
-int grib_f_read_any_headers_only_from_file(int *fid, char *buffer, size_t *nbytes);
-int grib_f_read_any_from_file_(int *fid, void *buffer, size_t *nbytes);
-int grib_f_read_any_from_file__(int *fid, void *buffer, size_t *nbytes);
-int grib_f_read_any_from_file(int *fid, void *buffer, size_t *nbytes);
-int grib_f_write_file_(int *fid, void *buffer, size_t *nbytes);
-int grib_f_write_file__(int *fid, void *buffer, size_t *nbytes);
-int grib_f_write_file(int *fid, void *buffer, size_t *nbytes);
-int grib_f_read_file_(int *fid, void *buffer, size_t *nbytes);
-int grib_f_read_file__(int *fid, void *buffer, size_t *nbytes);
-int grib_f_read_file(int *fid, void *buffer, size_t *nbytes);
-int grib_f_open_file_(int *fid, char *name, char *op, int lname, int lop);
-int grib_f_open_file__(int *fid, char *name, char *op, int lname, int lop);
-int grib_f_open_file(int *fid, char *name, char *op, int lname, int lop);
-int grib_f_close_file_(int *fid);
-int grib_f_close_file__(int *fid);
-int grib_f_close_file(int *fid);
-void grib_f_write_on_fail(int *gid);
-void grib_f_write_on_fail_(int* gid);
-void grib_f_write_on_fail__(int* gid);
-int grib_f_multi_support_on_(void);
-int grib_f_multi_support_on__(void);
-int grib_f_multi_support_on(void);
-int grib_f_multi_support_off_(void);
-int grib_f_multi_support_off__(void);
-int grib_f_multi_support_off(void);
-
-/* GRIB keys iterator */
-int grib_f_keys_iterator_new_(int *gid, int *iterid, char *name_space, int len);
-int grib_f_keys_iterator_new__(int *gid, int *iterid, char *name_space, int len);
-int grib_f_keys_iterator_new(int *gid, int *iterid, char *name_space, int len);
-int grib_f_keys_iterator_next_(int *iterid);
-int grib_f_keys_iterator_next__(int *iterid);
-int grib_f_keys_iterator_next(int *iterid);
-int grib_f_keys_iterator_delete_(int *iterid);
-int grib_f_keys_iterator_delete__(int *iterid);
-int grib_f_keys_iterator_delete(int *iterid);
-int grib_f_keys_iterator_get_name_(int *iterid, char *name, int len);
-int grib_f_keys_iterator_get_name__(int *kiter, char *name, int len);
-int grib_f_keys_iterator_get_name(int *kiter, char *name, int len);
-int grib_f_keys_iterator_rewind_(int *kiter);
-int grib_f_keys_iterator_rewind__(int *kiter);
-int grib_f_keys_iterator_rewind(int *kiter);
-
-/* BUFR keys iterator */
-int codes_f_bufr_keys_iterator_new_(int *gid, int *iterid);
-int codes_f_bufr_keys_iterator_new__(int *gid, int *iterid);
-int codes_f_bufr_keys_iterator_new(int *gid, int *iterid);
-int codes_f_bufr_keys_iterator_next_(int *iterid);
-int codes_f_bufr_keys_iterator_next__(int *iterid);
-int codes_f_bufr_keys_iterator_next(int *iterid);
-int codes_f_bufr_keys_iterator_get_name_(int *iterid, char *name, int len);
-int codes_f_bufr_keys_iterator_get_name__(int *kiter, char *name, int len);
-int codes_f_bufr_keys_iterator_get_name(int *kiter, char *name, int len);
-int codes_f_bufr_keys_iterator_rewind_(int *kiter);
-int codes_f_bufr_keys_iterator_rewind__(int *kiter);
-int codes_f_bufr_keys_iterator_rewind(int *kiter);
-int codes_f_bufr_keys_iterator_delete_(int *iterid);
-int codes_f_bufr_keys_iterator_delete__(int *iterid);
-int codes_f_bufr_keys_iterator_delete(int *iterid);
-
-int grib_f_gribex_mode_on_(void);
-int grib_f_gribex_mode_on__(void);
-int grib_f_gribex_mode_on(void);
-int grib_f_gribex_mode_off_(void);
-int grib_f_gribex_mode_off__(void);
-int grib_f_gribex_mode_off(void);
-int grib_f_skip_computed_(int *iterid);
-int grib_f_skip_computed__(int *iterid);
-int grib_f_skip_computed(int *iterid);
-int grib_f_skip_coded_(int *iterid);
-int grib_f_skip_coded__(int *iterid);
-int grib_f_skip_coded(int *iterid);
-int grib_f_skip_edition_specific_(int *iterid);
-int grib_f_skip_edition_specific__(int *iterid);
-int grib_f_skip_edition_specific(int *iterid);
-int grib_f_skip_duplicates_(int *iterid);
-int grib_f_skip_duplicates__(int *iterid);
-int grib_f_skip_duplicates(int *iterid);
-int grib_f_skip_read_only_(int *iterid);
-int grib_f_skip_read_only__(int *iterid);
-int grib_f_skip_read_only(int *iterid);
-int grib_f_skip_function_(int *iterid);
-int grib_f_skip_function__(int *iterid);
-int grib_f_skip_function(int *iterid);
-int grib_f_new_from_message_(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_message__(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_message(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_message_copy_(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_message_copy__(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_message_copy(int *gid, void *buffer, size_t *bufsize);
-int grib_f_new_from_samples_(int *gid, char *name, int lname);
-int grib_f_new_from_samples__(int *gid, char *name, int lname);
-int grib_f_new_from_samples(int *gid, char *name, int lname);
-int codes_bufr_f_new_from_samples_(int *gid, char *name, int lname);
-int codes_bufr_f_new_from_samples__(int *gid, char *name, int lname);
-int codes_bufr_f_new_from_samples(int *gid, char *name, int lname);
-int grib_f_clone_(int *gidsrc, int *giddest);
-int grib_f_clone__(int *gidsrc, int *giddest);
-int grib_f_clone(int *gidsrc, int *giddest);
-int grib_f_util_sections_copy_(int *gidfrom, int *gidto, int *what, int *gidout);
-int grib_f_util_sections_copy__(int *gidfrom, int *gidto, int *what, int *gidout);
-int grib_f_util_sections_copy(int *gidfrom, int *gidto, int *what, int *gidout);
-int grib_f_copy_namespace_(int *gidsrc, char *name, int *giddest, int len);
-int grib_f_copy_namespace__(int *gidsrc, char *name, int *giddest, int len);
-int grib_f_copy_namespace(int *gidsrc, char *name, int *giddest, int len);
-
-int grib_f_copy_key_ (int *gidsrc, char *name, int *giddest, int len);
-int grib_f_copy_key__(int *gidsrc, char *name, int *giddest, int len);
-int grib_f_copy_key (int *gidsrc, char *name, int *giddest, int len);
-
-int grib_f_count_in_file(int *fid, int *n);
-int grib_f_count_in_file_(int *fid, int *n);
-int grib_f_count_in_file__(int *fid, int *n);
-
-int any_f_new_from_file_(int *fid, int *gid);
-int any_f_new_from_file__(int *fid, int *gid);
-int any_f_new_from_file(int *fid, int *gid);
-
-int any_f_scan_file_(int* fid,int* n);
-int any_f_scan_file__(int* fid,int* n);
-int any_f_scan_file(int* fid,int* n);
-
-int any_f_new_from_scanned_file_(int* fid,int* msgid,int* gid);
-int any_f_new_from_scanned_file__(int* fid,int* msgid,int* gid);
-int any_f_new_from_scanned_file(int* fid,int* msgid,int* gid);
-
-int any_f_load_all_from_file_(int* fid,int* n);
-int any_f_load_all_from_file__(int* fid,int* n);
-int any_f_load_all_from_file(int* fid,int* n);
-
-int any_f_new_from_loaded_(int* msgid,int* gid);
-int any_f_new_from_loaded__(int* msgid,int* gid);
-int any_f_new_from_loaded(int* msgid,int* gid);
-
-int codes_f_clear_loaded_from_file_(void);
-int codes_f_clear_loaded_from_file__(void);
-int codes_f_clear_loaded_from_file(void);
-
-int grib_f_new_from_file_(int *fid, int *gid);
-int grib_f_new_from_file__(int *fid, int *gid);
-int grib_f_new_from_file(int *fid, int *gid);
-
-int bufr_f_new_from_file_(int *fid, int *gid);
-int bufr_f_new_from_file__(int *fid, int *gid);
-int bufr_f_new_from_file(int *fid, int *gid);
-
-int grib_f_headers_only_new_from_file_(int *fid, int *gid);
-int grib_f_headers_only_new_from_file__(int *fid, int *gid);
-int grib_f_headers_only_new_from_file(int *fid, int *gid);
-int grib_f_new_from_index_(int *iid, int *gid);
-int grib_f_new_from_index__(int *iid, int *gid);
-int grib_f_new_from_index(int *iid, int *gid);
-int grib_f_index_new_from_file_(char *file, char *keys, int *gid, int lfile, int lkeys);
-int grib_f_index_new_from_file__(char *file, char *keys, int *gid, int lfile, int lkeys);
-int grib_f_index_new_from_file(char *file, char *keys, int *gid, int lfile, int lkeys);
-int grib_f_index_add_file_(int* iid, char* file, int lfile);
-int grib_f_index_add_file__(int* iid, char* file, int lfile);
-int grib_f_index_add_file(int* iid, char* file, int lfile);
-int grib_f_index_read_(char *file, int *gid, int lfile);
-int grib_f_index_read__(char *file, int *gid, int lfile);
-int grib_f_index_read(char *file, int *gid, int lfile);
-int grib_f_index_write_(int *gid, char *file, int lfile);
-int grib_f_index_write__(int *gid, char *file, int lfile);
-int grib_f_index_write(int *gid, char *file, int lfile);
-int grib_f_index_release_(int *hid);
-int grib_f_index_release__(int *hid);
-int grib_f_index_release(int *hid);
-int grib_f_multi_handle_release_(int *hid);
-int grib_f_multi_handle_release__(int *hid);
-int grib_f_multi_handle_release(int *hid);
-int grib_f_release_(int *hid);
-int grib_f_release__(int *hid);
-int grib_f_release(int *hid);
-int grib_f_dump_(int *gid);
-int grib_f_dump__(int *gid);
-int grib_f_dump(int *gid);
-
-int grib_f_get_api_version_(int* apiVersion,int len);
-int grib_f_get_api_version__(int* apiVersion,int len);
-int grib_f_get_api_version(int* apiVersion,int len);
-
-int grib_f_get_error_string_(int *err, char *buf, int len);
-int grib_f_get_error_string__(int *err, char *buf, int len);
-int grib_f_get_error_string(int *err, char *buf, int len);
-int grib_f_get_size_int_(int *gid, char *key, int *val, int len);
-int grib_f_get_size_int__(int *gid, char *key, int *val, int len);
-int grib_f_get_size_int(int *gid, char *key, int *val, int len);
-int grib_f_get_size_long_(int *gid, char *key, long *val, int len);
-int grib_f_get_size_long__(int *gid, char *key, long *val, int len);
-int grib_f_get_size_long(int *gid, char *key, long *val, int len);
-int grib_f_index_get_size_int_(int *gid, char *key, int *val, int len);
-int grib_f_index_get_size_int__(int *gid, char *key, int *val, int len);
-int grib_f_index_get_size_int(int *gid, char *key, int *val, int len);
-int grib_f_index_get_size_long_(int *gid, char *key, long *val, int len);
-int grib_f_index_get_size_long__(int *gid, char *key, long *val, int len);
-int grib_f_index_get_size_long(int *gid, char *key, long *val, int len);
-int grib_f_get_int_(int *gid, char *key, int *val, int len);
-int grib_f_get_int__(int *gid, char *key, int *val, int len);
-int grib_f_get_int(int *gid, char *key, int *val, int len);
-int grib_f_get_long_(int *gid, char *key, long *val, int len);
-int grib_f_get_long__(int *gid, char *key, long *val, int len);
-int grib_f_get_long(int *gid, char *key, long *val, int len);
-
-int grib_f_get_native_type_(int* gid, char* key, int* val, int len);
-int grib_f_get_native_type__(int* gid, char* key, int* val, int len);
-int grib_f_get_native_type(int* gid, char* key, int* val, int len);
-
-int grib_f_get_int_array_(int *gid, char *key, int *val, int *size, int len);
-int grib_f_get_int_array__(int *gid, char *key, int *val, int *size, int len);
-int grib_f_get_int_array(int *gid, char *key, int *val, int *size, int len);
-int grib_f_get_long_array_(int *gid, char *key, long *val, int *size, int len);
-int grib_f_get_long_array__(int *gid, char *key, long *val, int *size, int len);
-int grib_f_get_long_array(int *gid, char *key, long *val, int *size, int len);
-int grib_f_get_byte_array_(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_get_byte_array__(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_get_byte_array(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_index_get_string_(int *gid, char *key, char *val, int *eachsize, int *size, int len);
-int grib_f_index_get_string__(int *gid, char *key, char *val, int *eachsize, int *size, int len);
-int grib_f_index_get_string(int *gid, char *key, char *val, int *eachsize, int *size, int len);
-int grib_f_index_get_long_(int *gid, char *key, long *val, int *size, int len);
-int grib_f_index_get_long__(int *gid, char *key, long *val, int *size, int len);
-int grib_f_index_get_long(int *gid, char *key, long *val, int *size, int len);
-int grib_f_index_get_int_(int *gid, char *key, int *val, int *size, int len);
-int grib_f_index_get_int__(int *gid, char *key, int *val, int *size, int len);
-int grib_f_index_get_int(int *gid, char *key, int *val, int *size, int len);
-int grib_f_index_get_real8_(int *gid, char *key, double *val, int *size, int len);
-int grib_f_index_get_real8__(int *gid, char *key, double *val, int *size, int len);
-int grib_f_index_get_real8(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_int_array_(int *gid, char *key, int *val, int *size, int len);
-int grib_f_set_int_array__(int *gid, char *key, int *val, int *size, int len);
-int grib_f_set_int_array(int *gid, char *key, int *val, int *size, int len);
-int grib_f_set_long_array_(int *gid, char *key, long *val, int *size, int len);
-int grib_f_set_long_array__(int *gid, char *key, long *val, int *size, int len);
-int grib_f_set_long_array(int *gid, char *key, long *val, int *size, int len);
-int grib_f_set_byte_array_(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_set_byte_array__(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_set_byte_array(int* gid, char* key, unsigned char *val, int* size, int len, int lenv);
-int grib_f_set_int_(int *gid, char *key, int *val, int len);
-int grib_f_set_int__(int *gid, char *key, int *val, int len);
-int grib_f_set_int(int *gid, char *key, int *val, int len);
-int grib_f_set_long_(int *gid, char *key, long *val, int len);
-int grib_f_set_long__(int *gid, char *key, long *val, int len);
-int grib_f_set_long(int *gid, char *key, long *val, int len);
-int grib_f_set_missing_(int *gid, char *key, int len);
-int grib_f_set_missing__(int *gid, char *key, int len);
-int grib_f_set_missing(int *gid, char *key, int len);
-int grib_f_is_missing_(int *gid, char *key, int *isMissing, int len);
-int grib_f_is_missing__(int *gid, char *key, int *isMissing, int len);
-int grib_f_is_missing(int *gid, char *key, int *isMissing, int len);
-int grib_f_is_defined_(int* gid, char* key,int* isDefined,int len);
-int grib_f_is_defined__(int* gid, char* key,int* isDefined,int len);
-int grib_f_is_defined(int* gid, char* key,int* isDefined,int len);
-int grib_f_set_real4_(int *gid, char *key, float *val, int len);
-int grib_f_set_real4__(int *gid, char *key, float *val, int len);
-int grib_f_set_real4(int *gid, char *key, float *val, int len);
-int grib_f_get_real4_element_(int *gid, char *key, int *index, float *val, int len);
-int grib_f_get_real4_element__(int *gid, char *key, int *index, float *val, int len);
-int grib_f_get_real4_element(int *gid, char *key, int *index, float *val, int len);
-int grib_f_get_real4_elements_(int *gid, char *key, int *index, float *val, int *size, int len);
-int grib_f_get_real4_elements__(int *gid, char *key, int *index, float *val, int *len, int size);
-int grib_f_get_real4_elements(int *gid, char *key, int *index, float *val, int *len, int size);
-int grib_f_get_real4_(int *gid, char *key, float *val, int len);
-int grib_f_get_real4__(int *gid, char *key, float *val, int len);
-int grib_f_get_real4(int *gid, char *key, float *val, int len);
-int grib_f_get_real4_array_(int *gid, char *key, float *val, int *size, int len);
-int grib_f_get_real4_array__(int *gid, char *key, float *val, int *size, int len);
-int grib_f_get_real4_array(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_real4_array_(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_real4_array__(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_real4_array(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_force_real4_array_(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_force_real4_array__(int *gid, char *key, float *val, int *size, int len);
-int grib_f_set_force_real4_array(int *gid, char *key, float *val, int *size, int len);
-int grib_f_index_select_real8_(int *gid, char *key, double *val, int len);
-int grib_f_index_select_real8__(int *gid, char *key, double *val, int len);
-int grib_f_index_select_real8(int *gid, char *key, double *val, int len);
-int grib_f_index_select_string_(int *gid, char *key, char *val, int len, int vallen);
-int grib_f_index_select_string__(int *gid, char *key, char *val, int len, int vallen);
-int grib_f_index_select_string(int *gid, char *key, char *val, int len, int vallen);
-int grib_f_index_select_int_(int *gid, char *key, int *val, int len);
-int grib_f_index_select_int__(int *gid, char *key, int *val, int len);
-int grib_f_index_select_int(int *gid, char *key, int *val, int len);
-int grib_f_index_select_long_(int *gid, char *key, long *val, int len);
-int grib_f_index_select_long__(int *gid, char *key, long *val, int len);
-int grib_f_index_select_long(int *gid, char *key, long *val, int len);
-int grib_f_set_real8_(int *gid, char *key, double *val, int len);
-int grib_f_set_real8__(int *gid, char *key, double *val, int len);
-int grib_f_set_real8(int *gid, char *key, double *val, int len);
-int grib_f_get_real8_(int *gid, char *key, double *val, int len);
-int grib_f_get_real8__(int *gid, char *key, double *val, int len);
-int grib_f_get_real8(int *gid, char *key, double *val, int len);
-int grib_f_get_real8_element_(int *gid, char *key, int *index, double *val, int len);
-int grib_f_get_real8_element__(int *gid, char *key, int *index, double *val, int len);
-int grib_f_get_real8_element(int *gid, char *key, int *index, double *val, int len);
-int grib_f_get_real8_elements_(int *gid, char *key, int *index, double *val, int *size, int len);
-int grib_f_get_real8_elements__(int *gid, char *key, int *index, double *val, int *len, int size);
-int grib_f_get_real8_elements(int *gid, char *key, int *index, double *val, int *len, int size);
-int grib_f_find_nearest_four_single_(int *gid, int *is_lsm, double *inlat, double *inlon, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_four_single__(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_four_single(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_single_(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_single__(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_single(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes);
-int grib_f_find_nearest_multiple_(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes, int *npoints);
-int grib_f_find_nearest_multiple__(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes, int *npoints);
-int grib_f_find_nearest_multiple(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes, int *npoints);
-int grib_f_get_real8_array_(int *gid, char *key, double *val, int *size, int len);
-int grib_f_get_real8_array__(int *gid, char *key, double *val, int *size, int len);
-int grib_f_get_real8_array(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_real8_array_(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_real8_array__(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_real8_array(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_force_real8_array_(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_force_real8_array__(int *gid, char *key, double *val, int *size, int len);
-int grib_f_set_force_real8_array(int *gid, char *key, double *val, int *size, int len);
-
-int grib_f_get_string_array(int* gid, char* key, char* val,int* nvals,int* slen,int len);
-int grib_f_get_string_array_(int* gid, char* key, char* val,int* nvals,int* slen,int len);
-int grib_f_get_string_array__(int* gid, char* key, char* val,int* nvals,int* slen,int len);
-int grib_f_set_string_array(int* gid, char* key, char* val,int* nvals,int* slen, int len);
-int grib_f_set_string_array_(int* gid, char* key, char* val,int* nvals,int* slen, int len);
-int grib_f_set_string_array__(int* gid, char* key, char* val,int* nvals,int* slen, int len);
-
-int grib_f_get_string_(int *gid, char *key, char *val, int len, int len2);
-int grib_f_get_string__(int *gid, char *key, char *val, int len, int len2);
-int grib_f_get_string(int *gid, char *key, char *val, int len, int len2);
-int grib_f_set_string_(int *gid, char *key, char *val, int len, int len2);
-int grib_f_set_string__(int *gid, char *key, char *val, int len, int len2);
-int grib_f_set_string(int *gid, char *key, char *val, int len, int len2);
-int grib_f_get_data_real4_(int *gid, float *lats, float *lons, float *values, size_t *size);
-int grib_f_get_data_real4__(int *gid, float *lats, float *lons, float *values, size_t *size);
-int grib_f_get_data_real4(int *gid, float *lats, float *lons, float *values, size_t *size);
-int grib_f_get_data_real8_(int *gid, double *lats, double *lons, double *values, size_t *size);
-int grib_f_get_data_real8__(int *gid, double *lats, double *lons, double *values, size_t *size);
-int grib_f_get_data_real8(int *gid, double *lats, double *lons, double *values, size_t *size);
-int grib_f_get_message_size_(int *gid, size_t *len);
-int grib_f_get_message_size__(int *gid, size_t *len);
-int grib_f_get_message_size(int *gid, size_t *len);
-int grib_f_copy_message_(int *gid, void *mess, size_t *len);
-int grib_f_copy_message__(int *gid, void *mess, size_t *len);
-int grib_f_copy_message(int *gid, void *mess, size_t *len);
-void grib_f_check_(int *err, char *call, char *str, int lencall, int lenstr);
-void grib_f_check__(int *err, char *call, char *key, int lencall, int lenkey);
-void grib_f_check(int *err, char *call, char *key, int lencall, int lenkey);
-int grib_f_write_(int *gid, int *fid);
-int grib_f_write__(int *gid, int *fid);
-int grib_f_write(int *gid, int *fid);
-int grib_f_multi_write_(int *gid, int *fid);
-int grib_f_multi_write__(int *gid, int *fid);
-int grib_f_multi_write(int *gid, int *fid);
-int grib_f_multi_append_(int *ingid, int *sec, int *mgid);
-int grib_f_multi_append(int *ingid, int *sec, int *mgid);
-int grib_f_multi_append__(int *ingid, int *sec, int *mgid);
-
-int codes_f_bufr_copy_data(int* gid1,int* gid2);
-int codes_f_bufr_copy_data_(int* gid1,int* gid2);
-int codes_f_bufr_copy_data__(int* gid1,int* gid2);
-
-int codes_f_bufr_multi_element_constant_arrays_on_(void);
-int codes_f_bufr_multi_element_constant_arrays_on__(void);
-int codes_f_bufr_multi_element_constant_arrays_on(void);
-int codes_f_bufr_multi_element_constant_arrays_off_(void);
-int codes_f_bufr_multi_element_constant_arrays_off__(void);
-int codes_f_bufr_multi_element_constant_arrays_off(void);
-
-int grib_f_set_definitions_path_(char *path, int len);
-int grib_f_set_definitions_path__(char *path, int len);
-int grib_f_set_definitions_path(char *path, int len);
-int grib_f_set_samples_path_(char *path, int len);
-int grib_f_set_samples_path__(char *path, int len);
-int grib_f_set_samples_path(char *path, int len);
-
-int grib_f_julian_to_datetime(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second);
-int grib_f_julian_to_datetime_(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second);
-int grib_f_julian_to_datetime__(double* jd,long* year,long* month,long* day,long *hour,long *minute,long *second);
-
-int grib_f_datetime_to_julian(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd);
-int grib_f_datetime_to_julian_(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd);
-int grib_f_datetime_to_julian__(long* year,long* month,long* day, long* hour,long* minute,long* second,double* jd);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/project_summary.cmake b/project_summary.cmake
index 24ccc35c8..644f7db4d 100644
--- a/project_summary.cmake
+++ b/project_summary.cmake
@@ -1,7 +1,4 @@
-#if( SWIG_FOUND )
-# message( STATUS " SWIG command : [${SWIG_EXECUTABLE}]" )
-#endif()
-
+# Third-party libraries
foreach( _tpl ${ECCODES_TPLS} )
string( TOUPPER ${_tpl} TPL )
if( ${TPL}_FOUND )
diff --git a/samples/GRIB2.tmpl b/samples/GRIB2.tmpl
index 5c7b111ce..e2f890a57 100644
Binary files a/samples/GRIB2.tmpl and b/samples/GRIB2.tmpl differ
diff --git a/samples/destine_grib2.tmpl b/samples/destine_grib2.tmpl
new file mode 100644
index 000000000..427911ce1
Binary files /dev/null and b/samples/destine_grib2.tmpl differ
diff --git a/samples/gg_sfc_grib2.tmpl b/samples/gg_sfc_grib2.tmpl
index 8a2fe54f0..48b5764e5 100644
Binary files a/samples/gg_sfc_grib2.tmpl and b/samples/gg_sfc_grib2.tmpl differ
diff --git a/samples/hdf5.tmpl b/samples/hdf5.tmpl
new file mode 100644
index 000000000..a517bc7dd
Binary files /dev/null and b/samples/hdf5.tmpl differ
diff --git a/samples/polar_stereographic_pl_grib2.tmpl b/samples/polar_stereographic_pl_grib2.tmpl
index e6d89416e..38a7c8c76 100644
Binary files a/samples/polar_stereographic_pl_grib2.tmpl and b/samples/polar_stereographic_pl_grib2.tmpl differ
diff --git a/samples/polar_stereographic_sfc_grib2.tmpl b/samples/polar_stereographic_sfc_grib2.tmpl
index d7ff2feda..f8ccb057e 100644
Binary files a/samples/polar_stereographic_sfc_grib2.tmpl and b/samples/polar_stereographic_sfc_grib2.tmpl differ
diff --git a/samples/reduced_gg_sfc_grib2.tmpl b/samples/reduced_gg_sfc_grib2.tmpl
index 1b768f222..e71b0b5f1 100644
Binary files a/samples/reduced_gg_sfc_grib2.tmpl and b/samples/reduced_gg_sfc_grib2.tmpl differ
diff --git a/samples/reduced_rotated_gg_sfc_grib2.tmpl b/samples/reduced_rotated_gg_sfc_grib2.tmpl
index 9a1316375..393a56381 100644
Binary files a/samples/reduced_rotated_gg_sfc_grib2.tmpl and b/samples/reduced_rotated_gg_sfc_grib2.tmpl differ
diff --git a/samples/regular_gg_sfc_grib2.tmpl b/samples/regular_gg_sfc_grib2.tmpl
index f7ea8927d..b0438fd00 100644
Binary files a/samples/regular_gg_sfc_grib2.tmpl and b/samples/regular_gg_sfc_grib2.tmpl differ
diff --git a/samples/regular_ll_pl_grib2.tmpl b/samples/regular_ll_pl_grib2.tmpl
index cafc54511..973c7ce77 100644
Binary files a/samples/regular_ll_pl_grib2.tmpl and b/samples/regular_ll_pl_grib2.tmpl differ
diff --git a/samples/regular_ll_sfc_grib2.tmpl b/samples/regular_ll_sfc_grib2.tmpl
index 45ddbc9c5..3c16f5743 100644
Binary files a/samples/regular_ll_sfc_grib2.tmpl and b/samples/regular_ll_sfc_grib2.tmpl differ
diff --git a/samples/rotated_gg_sfc_grib2.tmpl b/samples/rotated_gg_sfc_grib2.tmpl
index 0c0b0f226..98ffc8f81 100644
Binary files a/samples/rotated_gg_sfc_grib2.tmpl and b/samples/rotated_gg_sfc_grib2.tmpl differ
diff --git a/samples/rotated_ll_pl_grib2.tmpl b/samples/rotated_ll_pl_grib2.tmpl
index d38366dbc..1d92db8e9 100644
Binary files a/samples/rotated_ll_pl_grib2.tmpl and b/samples/rotated_ll_pl_grib2.tmpl differ
diff --git a/samples/rotated_ll_sfc_grib2.tmpl b/samples/rotated_ll_sfc_grib2.tmpl
index 1975fd175..003f5f264 100644
Binary files a/samples/rotated_ll_sfc_grib2.tmpl and b/samples/rotated_ll_sfc_grib2.tmpl differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8ce7d8f29..97cd81dfc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,7 +9,11 @@
# nor does it submit to any jurisdiction.
#
list( APPEND eccodes_src_files
+ step_unit.cc
+ step.cc
+ step_utilities.cc
grib_api.h
+ grib_timer.cc
eccodes.h
action.cc
action_class_alias.cc
@@ -76,6 +80,7 @@ list( APPEND eccodes_src_files
grib_accessor_class_hash_array.cc
grib_accessor_class_decimal_precision.cc
grib_accessor_class_divdouble.cc
+ grib_accessor_class_multdouble.cc
grib_accessor_class_budgdate.cc
grib_accessor_class_validity_date.cc
grib_accessor_class_validity_time.cc
@@ -158,6 +163,7 @@ list( APPEND eccodes_src_files
grib_accessor_class_signed_bits.cc
grib_accessor_class_section.cc
grib_accessor_class_step_in_units.cc
+ grib_accessor_class_optimal_step_units.cc
grib_accessor_class_section_length.cc
grib_accessor_class_g1_message_length.cc
grib_accessor_class_g1_section4_length.cc
@@ -253,7 +259,6 @@ list( APPEND eccodes_src_files
grib_accessor_class_abstract_long_vector.cc
grib_loader_from_handle.cc
grib_bits.cc
- grib_timer.cc
grib_ibmfloat.cc
grib_ieeefloat.cc
grib_accessor_class_reference_value_error.cc
diff --git a/src/action.cc b/src/action.cc
index 847862edc..026bca74e 100644
--- a/src/action.cc
+++ b/src/action.cc
@@ -98,22 +98,21 @@ static void grib_dump(grib_action* a, FILE* f, int l)
DEBUG_ASSERT(0);
}
-void grib_xref(grib_action* a, FILE* f, const char* path)
-{
- grib_action_class* c = a->cclass;
- init(c);
-
- while (c) {
- if (c->xref) {
- c->xref(a, f, path);
- return;
- }
- c = c->super ? *(c->super) : NULL;
- }
- printf("xref not implemented for %s\n", a->cclass->name);
- DEBUG_ASSERT(0);
-}
+// void grib_xref(grib_action* a, FILE* f, const char* path)
+// {
+// grib_action_class* c = a->cclass;
+// init(c);
+// while (c) {
+// if (c->xref) {
+// c->xref(a, f, path);
+// return;
+// }
+// c = c->super ? *(c->super) : NULL;
+// }
+// printf("xref not implemented for %s\n", a->cclass->name);
+// DEBUG_ASSERT(0);
+// }
void grib_action_delete(grib_context* context, grib_action* a)
{
@@ -214,10 +213,10 @@ void grib_dump_action_tree(grib_context* ctx, FILE* out)
grib_dump_action_branch(out, ctx->grib_reader->first->root, 0);
}
-void grib_xref_action_branch(FILE* out, grib_action* a, const char* path)
-{
- while (a) {
- grib_xref(a, out, path);
- a = a->next;
- }
-}
+// void grib_xref_action_branch(FILE* out, grib_action* a, const char* path)
+// {
+// while (a) {
+// grib_xref(a, out, path);
+// a = a->next;
+// }
+// }
diff --git a/src/action_class_alias.cc b/src/action_class_alias.cc
index 945d3aa7a..014a3f47c 100644
--- a/src/action_class_alias.cc
+++ b/src/action_class_alias.cc
@@ -19,7 +19,7 @@
START_CLASS_DEF
CLASS = action
IMPLEMENTS = create_accessor
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy
MEMBERS = char* target
END_CLASS_DEF
@@ -38,7 +38,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
@@ -60,7 +59,7 @@ static grib_action_class _grib_action_class_alias = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -268,23 +267,6 @@ static void dump(grib_action* act, FILE* f, int lvl)
grib_context_print(act->context, f, " unalias %s \n", act->name);
}
-static void xref(grib_action* act, FILE* f, const char* path)
-{
- Assert(!"xref is disabled");
-
- // grib_action_alias* a = (grib_action_alias*)act;
- // if (a->target) {
- // fprintf(f, "bless({name=>'%s', target=>'%s', path=>'%s'},'xref::alias'),\n", act->name, a->target, path);
- // if (act->name_space)
- // fprintf(f, "bless({name=>'%s.%s', target=>'%s', path=>'%s'},'xref::alias'),\n", act->name_space, act->name, a->target, path);
- // }
- // else {
- // fprintf(f, "bless({name=>'%s', path=>'%s'},'xref::unalias'),\n", act->name, path);
- // if (act->name_space)
- // fprintf(f, "bless({name=>'%s.%s', path=>'%s'},'xref::unalias'),\n", act->name_space, act->name, path);
- // }
-}
-
static void destroy(grib_context* context, grib_action* act)
{
grib_action_alias* a = (grib_action_alias*)act;
diff --git a/src/action_class_assert.cc b/src/action_class_assert.cc
index 804dedda0..4261524fd 100644
--- a/src/action_class_assert.cc
+++ b/src/action_class_assert.cc
@@ -107,12 +107,12 @@ static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
- grib_action_assert* self = (grib_action_assert*)act;
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
- grib_expression_print(act->context, self->expression, 0);
- printf("\n");
+ // int i = 0;
+ // grib_action_assert* self = (grib_action_assert*)act;
+ // for (i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
+ // grib_expression_print(act->context, self->expression, 0);
+ // printf("\n");
}
static void destroy(grib_context* context, grib_action* act)
diff --git a/src/action_class_close.cc b/src/action_class_close.cc
index 5867d6af5..3c8d51900 100644
--- a/src/action_class_close.cc
+++ b/src/action_class_close.cc
@@ -14,7 +14,6 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = char *filename
END_CLASS_DEF
@@ -32,7 +31,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -53,7 +51,7 @@ static grib_action_class _grib_action_class_close = {
0, /* init */
&destroy, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* xref */
0, /* create_accessor*/
@@ -113,10 +111,6 @@ static int execute(grib_action* act, grib_handle* h)
return GRIB_SUCCESS;
}
-static void dump(grib_action* act, FILE* f, int lvl)
-{
-}
-
static void destroy(grib_context* context, grib_action* act)
{
grib_action_close* a = (grib_action_close*)act;
diff --git a/src/action_class_concept.cc b/src/action_class_concept.cc
index 74fb25588..3f42fb9e5 100644
--- a/src/action_class_concept.cc
+++ b/src/action_class_concept.cc
@@ -128,7 +128,7 @@ grib_concept_value* action_concept_get_concept(grib_accessor* a)
int action_concept_get_nofail(grib_accessor* a)
{
- grib_action_concept* self = (grib_action_concept*)a->creator;
+ const grib_action_concept* self = (grib_action_concept*)a->creator;
return self->nofail;
}
@@ -397,9 +397,9 @@ int get_concept_condition_string(grib_handle* h, const char* key, const char* va
grib_concept_condition* concept_condition = concept_value->conditions;
if (strcmp(pValue, concept_value->name) == 0) {
while (concept_condition) {
- grib_expression* expression = concept_condition->expression;
+ //grib_expression* expression = concept_condition->expression;
const char* condition_name = concept_condition->name;
- Assert(expression);
+ //Assert(expression);
if (concept_condition_expression_true(h, concept_condition, exprVal) && strcmp(condition_name, "one") != 0) {
length += snprintf(result + length, 2048, "%s%s=%s",
(length == 0 ? "" : ","), condition_name, exprVal);
diff --git a/src/action_class_gen.cc b/src/action_class_gen.cc
index 8c5945889..641aa3c92 100644
--- a/src/action_class_gen.cc
+++ b/src/action_class_gen.cc
@@ -19,7 +19,7 @@
START_CLASS_DEF
CLASS = action
IMPLEMENTS = create_accessor
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy
IMPLEMENTS = notify_change
MEMBERS = long len
@@ -40,7 +40,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
@@ -64,7 +63,7 @@ static grib_action_class _grib_action_class_gen = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -130,11 +129,6 @@ static void dump(grib_action* act, FILE* f, int lvl)
// For xref implementation see
// src/deprecated/action_class_gen.cc
-static void xref(grib_action* act, FILE* f, const char* path)
-{
- Assert(!"xref is disabled");
-}
-
static int create_accessor(grib_section* p, grib_action* act, grib_loader* loader)
{
grib_action_gen* a = (grib_action_gen*)act;
diff --git a/src/action_class_hash_array.cc b/src/action_class_hash_array.cc
index 5ee938395..430fdd92a 100644
--- a/src/action_class_hash_array.cc
+++ b/src/action_class_hash_array.cc
@@ -25,6 +25,7 @@
MEMBERS = char* masterDir
MEMBERS = char* localDir
MEMBERS = char* ecmfDir
+ MEMBERS = char* full_path
MEMBERS = int nofail
END_CLASS_DEF
@@ -56,6 +57,7 @@ typedef struct grib_action_hash_array {
char* masterDir;
char* localDir;
char* ecmfDir;
+ char* full_path;
int nofail;
} grib_action_hash_array;
@@ -159,18 +161,21 @@ grib_action* grib_action_create_hash_array(grib_context* context,
else
a->ecmfDir = NULL;
+ a->full_path = NULL;
+
if (defaultkey)
act->defaultkey = grib_context_strdup_persistent(context, defaultkey);
a->hash_array = hash_array;
if (hash_array) {
- grib_hash_array_value* ha = hash_array;
- grib_trie* index = grib_trie_new(context);
- while (ha) {
- ha->index = index;
- grib_trie_insert_no_replace(index, ha->name, ha);
- ha = ha->next;
- }
+ grib_context_log(context, GRIB_LOG_FATAL, "%s: 'hash_array_list' not implemented", __func__);
+ // grib_hash_array_value* ha = hash_array;
+ // grib_trie* index = grib_trie_new(context);
+ // while (ha) {
+ // ha->index = index;
+ // grib_trie_insert_no_replace(index, ha->name, ha);
+ // ha = ha->next;
+ // }
}
act->name = grib_context_strdup_persistent(context, name);
@@ -181,17 +186,12 @@ grib_action* grib_action_create_hash_array(grib_context* context,
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
-
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
-
- printf("hash_array(%s) { ", act->name);
- printf("\n");
-
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
- printf("}\n");
+ // for (int i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
+ // printf("hash_array(%s) { \n", act->name);
+ // for (int i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
+ // printf("}\n");
}
@@ -199,14 +199,16 @@ static void destroy(grib_context* context, grib_action* act)
{
grib_action_hash_array* self = (grib_action_hash_array*)act;
- grib_hash_array_value* v = self->hash_array;
- if (v)
- grib_trie_delete(v->index);
- while (v) {
- grib_hash_array_value* n = v->next;
- grib_hash_array_value_delete(context, v);
- v = n;
- }
+ // This is currently unset. So assert that it is NULL
+ const grib_hash_array_value* v = self->hash_array;
+ Assert(v == NULL);
+ // if (v)
+ // grib_trie_delete(v->index);
+ // while (v) {
+ // grib_hash_array_value* n = v->next;
+ // grib_hash_array_value_delete(context, v);
+ // v = n;
+ // }
grib_context_free_persistent(context, self->masterDir);
grib_context_free_persistent(context, self->localDir);
@@ -282,6 +284,12 @@ static grib_hash_array_value* get_hash_array_impl(grib_handle* h, grib_action* a
full = grib_context_full_defs_path(context, master);
if (c) {
+ if (!full) {
+ grib_context_log(context, GRIB_LOG_ERROR,
+ "unable to find definition file %s in %s:%s:%s\nDefinition files path=\"%s\"",
+ self->basename, master, ecmf, local, context->grib_definition_files_path);
+ return NULL;
+ }
grib_hash_array_value* last = c;
while (last->next)
last = last->next;
@@ -296,6 +304,7 @@ static grib_hash_array_value* get_hash_array_impl(grib_handle* h, grib_action* a
self->basename, master, ecmf, local, context->grib_definition_files_path);
return NULL;
}
+ self->full_path = full;
grib_context_log(h->context, GRIB_LOG_DEBUG,
"Loading hash_array %s from %s", ((grib_action*)self)->name, full);
@@ -324,3 +333,9 @@ grib_hash_array_value* get_hash_array(grib_handle* h, grib_action* a)
GRIB_MUTEX_UNLOCK(&mutex);
return result;
}
+
+const char* get_hash_array_full_path(grib_action* a)
+{
+ const grib_action_hash_array* self = (grib_action_hash_array*)a;
+ return self->full_path;
+}
diff --git a/src/action_class_if.cc b/src/action_class_if.cc
index a4da2f4be..0302e0625 100644
--- a/src/action_class_if.cc
+++ b/src/action_class_if.cc
@@ -22,7 +22,6 @@
IMPLEMENTS = create_accessor
IMPLEMENTS = dump
IMPLEMENTS = destroy
- IMPLEMENTS = xref
IMPLEMENTS = reparse;execute
MEMBERS = grib_expression *expression
MEMBERS = grib_action *block_true
@@ -44,7 +43,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit);
@@ -73,7 +71,7 @@ static grib_action_class _grib_action_class_if = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -86,6 +84,7 @@ grib_action_class* grib_action_class_if = &_grib_action_class_if;
static void init_class(grib_action_class* c)
{
+ c->xref = (*(c->super))->xref;
c->notify_change = (*(c->super))->notify_change;
}
/* END_CLASS_IMP */
@@ -93,7 +92,7 @@ static void init_class(grib_action_class* c)
grib_action* grib_action_create_if(grib_context* context,
grib_expression* expression,
grib_action* block_true, grib_action* block_false, int transient,
- int lineno, char* file_being_parsed)
+ int lineno, const char* file_being_parsed)
{
char name[1024];
const size_t nameLen = sizeof(name);
@@ -272,7 +271,7 @@ static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit)
if ((ret = grib_expression_evaluate_long(grib_handle_of_accessor(acc), self->expression, &lres)) != GRIB_SUCCESS)
grib_context_log(acc->context,
- GRIB_LOG_ERROR, "if reparse grib_expression_evaluate_long %s",
+ GRIB_LOG_ERROR, "action_class_if::reparse: grib_expression_evaluate_long failed: %s",
grib_get_error_message(ret));
if (lres)
@@ -306,6 +305,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->op);
}
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_list.cc b/src/action_class_list.cc
index 0a4b8a630..163a6da55 100644
--- a/src/action_class_list.cc
+++ b/src/action_class_list.cc
@@ -10,7 +10,6 @@
/***************************************************************************
* Jean Baptiste Filippi - 01.11.2005 *
- * Enrico Fucile *
***************************************************************************/
#include "grib_api_internal.h"
/*
@@ -107,7 +106,7 @@ static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
long val = 0;
if ((ret = grib_expression_evaluate_long(p->h, a->expression, &val)) != GRIB_SUCCESS) {
- grib_context_log(p->h->context, GRIB_LOG_DEBUG, "List %s creating %d values unable to evaluate long", act->name, val);
+ grib_context_log(p->h->context, GRIB_LOG_DEBUG, "List %s creating %ld values: Unable to evaluate long", act->name, val);
return ret;
}
@@ -161,12 +160,12 @@ static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit)
{
grib_action_list* self = (grib_action_list*)a;
- int ret = 0;
long val = 0;
- if ((ret = grib_expression_evaluate_long(grib_handle_of_accessor(acc), self->expression, &val)) != GRIB_SUCCESS) {
+ int ret = grib_expression_evaluate_long(grib_handle_of_accessor(acc), self->expression, &val);
+ if (ret != GRIB_SUCCESS) {
grib_context_log(acc->context, GRIB_LOG_ERROR,
- "List %s creating %ld values, unable to evaluate long", acc->name, val);
+ "List %s creating %ld values: Unable to evaluate long", acc->name, val);
}
*doit = (val != acc->loop);
diff --git a/src/action_class_modify.cc b/src/action_class_modify.cc
index c379d7300..cc5795559 100644
--- a/src/action_class_modify.cc
+++ b/src/action_class_modify.cc
@@ -17,7 +17,6 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump;xref
IMPLEMENTS = create_accessor
IMPLEMENTS = destroy
MEMBERS = long flags
@@ -37,8 +36,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
@@ -60,8 +57,8 @@ static grib_action_class _grib_action_class_modify = {
0, /* init */
&destroy, /* destroy */
- &dump, /* dump */
- &xref, /* xref */
+ 0, /* dump */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -97,10 +94,6 @@ grib_action* grib_action_create_modify(grib_context* context, const char* name,
return act;
}
-static void dump(grib_action* act, FILE* f, int lvl)
-{
-}
-
static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
{
grib_action_modify* a = (grib_action_modify*)act;
@@ -128,6 +121,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->op);
}
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_noop.cc b/src/action_class_noop.cc
index c2b3bc2f0..aa5196a46 100644
--- a/src/action_class_noop.cc
+++ b/src/action_class_noop.cc
@@ -17,7 +17,7 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump;destroy;xref;execute
+ IMPLEMENTS = destroy;execute
END_CLASS_DEF
*/
@@ -33,8 +33,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -54,8 +52,8 @@ static grib_action_class _grib_action_class_noop = {
0, /* init */
&destroy, /* destroy */
- &dump, /* dump */
- &xref, /* xref */
+ 0, /* dump */
+ 0, /* xref */
0, /* create_accessor*/
@@ -75,36 +73,27 @@ grib_action* grib_action_create_noop(grib_context* context, const char* fname)
{
char buf[1024];
- grib_action_noop* a;
grib_action_class* c = grib_action_class_noop;
grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size);
act->op = grib_context_strdup_persistent(context, "section");
act->cclass = c;
- a = (grib_action_noop*)act;
+ grib_action_noop* a = (grib_action_noop*)act;
act->context = context;
- snprintf(buf, 1024, "_noop%p", (void*)a);
+ snprintf(buf, sizeof(buf), "_noop%p", (void*)a);
act->name = grib_context_strdup_persistent(context, buf);
return act;
}
-static void dump(grib_action* act, FILE* f, int lvl)
-{
-}
-
static void destroy(grib_context* context, grib_action* act)
{
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
-
static int execute(grib_action* act, grib_handle* h)
{
return 0;
diff --git a/src/action_class_print.cc b/src/action_class_print.cc
index f29300544..0286c636f 100644
--- a/src/action_class_print.cc
+++ b/src/action_class_print.cc
@@ -17,7 +17,6 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = char *name
MEMBERS = char *outname
@@ -36,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -58,7 +56,7 @@ static grib_action_class _grib_action_class_print = {
0, /* init */
&destroy, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* xref */
0, /* create_accessor*/
@@ -138,10 +136,6 @@ static int execute(grib_action* act, grib_handle* h)
return err;
}
-static void dump(grib_action* act, FILE* f, int lvl)
-{
-}
-
static void destroy(grib_context* context, grib_action* act)
{
grib_action_print* a = (grib_action_print*)act;
diff --git a/src/action_class_put.cc b/src/action_class_put.cc
index 49ec4bf6e..8574ab2c4 100644
--- a/src/action_class_put.cc
+++ b/src/action_class_put.cc
@@ -8,133 +8,12 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Jean Baptiste Filippi - 01.11.2005 *
- ***************************************************************************/
#include "grib_api_internal.h"
-/*
- This is used by make_class.pl
-
- START_CLASS_DEF
- CLASS = action
- IMPLEMENTS = create_accessor
- IMPLEMENTS = dump
- IMPLEMENTS = destroy
- MEMBERS = grib_arguments* args
- END_CLASS_DEF
-
- */
-
-/* START_CLASS_IMP */
-
-/*
-
-Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
-Instead edit values between START_CLASS_DEF and END_CLASS_DEF
-or edit "action.class" and rerun ./make_class.pl
-
-*/
-
-static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
-static void destroy (grib_context*,grib_action*);
-static int create_accessor(grib_section*,grib_action*,grib_loader*);
-
-
-typedef struct grib_action_put {
- grib_action act;
- /* Members defined in put */
- grib_arguments* args;
-} grib_action_put;
-
-
-static grib_action_class _grib_action_class_put = {
- 0, /* super */
- "action_class_put", /* name */
- sizeof(grib_action_put), /* size */
- 0, /* inited */
- &init_class, /* init_class */
- 0, /* init */
- &destroy, /* destroy */
-
- &dump, /* dump */
- 0, /* xref */
-
- &create_accessor, /* create_accessor*/
-
- 0, /* notify_change */
- 0, /* reparse */
- 0, /* execute */
-};
-
-grib_action_class* grib_action_class_put = &_grib_action_class_put;
-
-static void init_class(grib_action_class* c)
-{
-}
-/* END_CLASS_IMP */
-
+// No longer used: For the original intent see
+// src/deprecated/action_class_put.cc
grib_action* grib_action_create_put(grib_context* context, const char* name, grib_arguments* args)
{
- grib_action_put* a = NULL;
- grib_action_class* c = grib_action_class_put;
- grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size);
- act->next = NULL;
- act->name = grib_context_strdup_persistent(context, name);
- act->op = grib_context_strdup_persistent(context, "forward");
- act->cclass = c;
- act->context = context;
- a = (grib_action_put*)act;
- a->args = args;
- return act;
-}
-
-static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
-{
- grib_action_put* a = (grib_action_put*)act;
-
- grib_section* ts = NULL;
-
- grib_accessor* ga = NULL;
-
- ga = grib_find_accessor(p->h, grib_arguments_get_name(p->h, a->args, 1));
- if (ga)
- ts = ga->sub_section;
- /* ts = grib_get_sub_section(ga); */
- else
- return GRIB_BUFFER_TOO_SMALL;
-
- if (ts) {
- ga = grib_accessor_factory(ts, act, 0, a->args);
- if (ga)
- grib_push_accessor(ga, ts->block);
- else
- return GRIB_BUFFER_TOO_SMALL;
- }
- else {
- grib_context_log(act->context, GRIB_LOG_ERROR, "Action_class_put : create_accessor_buffer : No Section named %s to export %s ", grib_arguments_get_name(p->h, a->args, 1), grib_arguments_get_name(p->h, a->args, 0));
- }
- return GRIB_SUCCESS;
-}
-
-static void dump(grib_action* act, FILE* f, int lvl)
-{
- grib_action_put* a = (grib_action_put*)act;
-
- int i = 0;
-
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
-
- grib_context_print(act->context, f, "put %s as %s in %s\n", grib_arguments_get_name(0, a->args, 0), act->name, grib_arguments_get_name(0, a->args, 1));
-}
-
-static void destroy(grib_context* context, grib_action* act)
-{
- grib_action_put* a = (grib_action_put*)act;
-
- grib_arguments_free(context, a->args);
- grib_context_free_persistent(context, act->name);
- grib_context_free_persistent(context, act->op);
+ grib_context_log(context, GRIB_LOG_ERROR, "The 'export' statement is deprecated");
+ return NULL;
}
diff --git a/src/action_class_remove.cc b/src/action_class_remove.cc
index 853a1a648..40f5079a7 100644
--- a/src/action_class_remove.cc
+++ b/src/action_class_remove.cc
@@ -19,7 +19,7 @@
CLASS = action
IMPLEMENTS = create_accessor
IMPLEMENTS = dump
- IMPLEMENTS = destroy; xref
+ IMPLEMENTS = destroy
MEMBERS = grib_arguments* args
END_CLASS_DEF
@@ -37,7 +37,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
@@ -59,7 +58,7 @@ static grib_action_class _grib_action_class_remove = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -112,17 +111,13 @@ static void remove_accessor(grib_accessor* a)
a->next->previous = a->previous;
grib_accessor_delete(s->h->context, a);
-
- return;
}
static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
{
grib_action_remove* a = (grib_action_remove*)act;
- grib_accessor* ga = NULL;
-
- ga = grib_find_accessor(p->h, grib_arguments_get_name(p->h, a->args, 0));
+ grib_accessor* ga = grib_find_accessor(p->h, grib_arguments_get_name(p->h, a->args, 0));
if (ga) {
remove_accessor(ga);
@@ -135,15 +130,15 @@ static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
static void dump(grib_action* act, FILE* f, int lvl)
{
- grib_action_remove* a = (grib_action_remove*)act;
-
- int i = 0;
-
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
-
- grib_context_print(act->context, f, "remove %s as %s in %s\n", grib_arguments_get_name(0, a->args, 0), act->name, grib_arguments_get_name(0, a->args, 1));
+ grib_context_log(act->context, GRIB_LOG_ERROR, "%s: dump not implemented", act->name);
+ // grib_action_remove* a = (grib_action_remove*)act;
+ // int i = 0;
+ // for (i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
+ // grib_context_print(act->context, f, "remove %s as %s in %s\n",
+ // grib_arguments_get_name(0, a->args, 0), act->name, grib_arguments_get_name(0, a->args, 1));
}
+
static void destroy(grib_context* context, grib_action* act)
{
grib_action_remove* a = (grib_action_remove*)act;
@@ -152,7 +147,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_rename.cc b/src/action_class_rename.cc
index 2666c4f75..3fb65a704 100644
--- a/src/action_class_rename.cc
+++ b/src/action_class_rename.cc
@@ -19,7 +19,7 @@
CLASS = action
IMPLEMENTS = create_accessor
IMPLEMENTS = dump
- IMPLEMENTS = destroy; xref
+ IMPLEMENTS = destroy
MEMBERS = char* the_old
MEMBERS = char* the_new
END_CLASS_DEF
@@ -38,7 +38,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
@@ -61,7 +60,7 @@ static grib_action_class _grib_action_class_rename = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -113,15 +112,14 @@ static void rename_accessor(grib_accessor* a, char* name)
static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
{
grib_action_rename* a = (grib_action_rename*)act;
- grib_accessor* ga = NULL;
-
- ga = grib_find_accessor(p->h, a->the_old);
+ grib_accessor* ga = grib_find_accessor(p->h, a->the_old);
if (ga) {
rename_accessor(ga, a->the_new);
}
else {
- grib_context_log(act->context, GRIB_LOG_DEBUG, "Action_class_rename : create_accessor_buffer : No accessor named %s to rename ", a->the_old);
+ grib_context_log(act->context, GRIB_LOG_DEBUG,
+ "Action_class_rename::create_accessor: No accessor named %s to rename", a->the_old);
}
return GRIB_SUCCESS;
@@ -129,14 +127,12 @@ static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
static void dump(grib_action* act, FILE* f, int lvl)
{
- grib_action_rename* a = (grib_action_rename*)act;
+ // grib_action_rename* a = (grib_action_rename*)act;
+ // int i = 0;
+ // for (i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
- int i = 0;
-
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
-
- grib_context_print(act->context, f, "rename %s as %s in %s\n", a->the_old, act->name, a->the_new);
+ // grib_context_print(act->context, f, "rename %s as %s in %s\n", a->the_old, act->name, a->the_new);
}
static void destroy(grib_context* context, grib_action* act)
@@ -148,7 +144,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_section.cc b/src/action_class_section.cc
index fc64351df..9dda3dc30 100644
--- a/src/action_class_section.cc
+++ b/src/action_class_section.cc
@@ -10,7 +10,6 @@
/***************************************************************************
* Jean Baptiste Filippi - 01.11.2005 *
- * Enrico Fucile *
***************************************************************************/
#include "grib_api_internal.h"
@@ -20,8 +19,6 @@
START_CLASS_DEF
CLASS = action
IMPLEMENTS = notify_change
- IMPLEMENTS = reparse
- IMPLEMENTS = xref
END_CLASS_DEF
*/
@@ -37,9 +34,7 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void xref (grib_action* d, FILE* f,const char* path);
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
-static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit);
typedef struct grib_action_section {
@@ -58,12 +53,12 @@ static grib_action_class _grib_action_class_section = {
0, /* destroy */
0, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
¬ify_change, /* notify_change */
- &reparse, /* reparse */
+ 0, /* reparse */
0, /* execute */
};
@@ -232,16 +227,3 @@ static int notify_change(grib_action* act, grib_accessor* notified,
return GRIB_SUCCESS;
}
-
-static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit)
-{
- /* Should be inherited */
- printf("reparse should be inherited: %s\n", a->name);
-
- Assert(1 == 0);
- return 0;
-}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_set.cc b/src/action_class_set.cc
index 8febce99d..fee2ca406 100644
--- a/src/action_class_set.cc
+++ b/src/action_class_set.cc
@@ -8,16 +8,13 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Enrico Fucile *
- ***************************************************************************/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = grib_expression *expression
MEMBERS = char *name
@@ -38,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -62,7 +58,7 @@ static grib_action_class _grib_action_class_set = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
@@ -118,8 +114,8 @@ static int execute(grib_action* a, grib_handle* h)
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
- grib_action_set* self = (grib_action_set*)act;
+ int i = 0;
+ const grib_action_set* self = (grib_action_set*)act;
for (i = 0; i < lvl; i++)
grib_context_print(act->context, f, " ");
grib_context_print(act->context, f, self->name);
@@ -135,7 +131,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_set_darray.cc b/src/action_class_set_darray.cc
index 43d249594..bbf36f1d6 100644
--- a/src/action_class_set_darray.cc
+++ b/src/action_class_set_darray.cc
@@ -14,7 +14,7 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = grib_darray *darray
MEMBERS = char *name
@@ -34,7 +34,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -57,7 +56,7 @@ static grib_action_class _grib_action_class_set_darray = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
@@ -99,15 +98,14 @@ grib_action* grib_action_create_set_darray(grib_context* context,
static int execute(grib_action* a, grib_handle* h)
{
- grib_action_set_darray* self = (grib_action_set_darray*)a;
-
+ const grib_action_set_darray* self = (grib_action_set_darray*)a;
return grib_set_double_array(h, self->name, self->darray->v, self->darray->n);
}
static void dump(grib_action* act, FILE* f, int lvl)
{
int i = 0;
- grib_action_set_darray* self = (grib_action_set_darray*)act;
+ const grib_action_set_darray* self = (grib_action_set_darray*)act;
for (i = 0; i < lvl; i++)
grib_context_print(act->context, f, " ");
grib_context_print(act->context, f, self->name);
@@ -123,7 +121,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_set_missing.cc b/src/action_class_set_missing.cc
index 84b5fe085..03bd4ffc3 100644
--- a/src/action_class_set_missing.cc
+++ b/src/action_class_set_missing.cc
@@ -8,9 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Enrico Fucile *
- ***************************************************************************/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -73,8 +70,7 @@ static void init_class(grib_action_class* c)
}
/* END_CLASS_IMP */
-grib_action* grib_action_create_set_missing(grib_context* context,
- const char* name)
+grib_action* grib_action_create_set_missing(grib_context* context, const char* name)
{
char buf[1024];
@@ -98,19 +94,19 @@ grib_action* grib_action_create_set_missing(grib_context* context,
static int execute(grib_action* a, grib_handle* h)
{
- grib_action_set_missing* self = (grib_action_set_missing*)a;
-
+ const grib_action_set_missing* self = (grib_action_set_missing*)a;
return grib_set_missing(h, self->name);
}
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
- grib_action_set_missing* self = (grib_action_set_missing*)act;
- for (i = 0; i < lvl; i++)
- grib_context_print(act->context, f, " ");
- grib_context_print(act->context, f, self->name);
- printf("\n");
+ grib_context_log(act->context, GRIB_LOG_ERROR, "%s %s(): Not implemented", __FILE__, __func__);
+ // int i = 0;
+ // const grib_action_set_missing* self = (grib_action_set_missing*)act;
+ // for (i = 0; i < lvl; i++)
+ // grib_context_print(act->context, f, " ");
+ // grib_context_print(act->context, f, self->name);
+ // printf("\n");
}
static void destroy(grib_context* context, grib_action* act)
diff --git a/src/action_class_set_sarray.cc b/src/action_class_set_sarray.cc
index b12443f23..bc51c2475 100644
--- a/src/action_class_set_sarray.cc
+++ b/src/action_class_set_sarray.cc
@@ -8,16 +8,13 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Enrico Fucile *
- ***************************************************************************/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = grib_sarray *sarray
MEMBERS = char *name
@@ -37,7 +34,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -60,7 +56,7 @@ static grib_action_class _grib_action_class_set_sarray = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
@@ -76,9 +72,7 @@ static void init_class(grib_action_class* c)
}
/* END_CLASS_IMP */
-grib_action* grib_action_create_set_sarray(grib_context* context,
- const char* name,
- grib_sarray* sarray)
+grib_action* grib_action_create_set_sarray(grib_context* context, const char* name, grib_sarray* sarray)
{
char buf[1024];
@@ -104,14 +98,13 @@ grib_action* grib_action_create_set_sarray(grib_context* context,
static int execute(grib_action* a, grib_handle* h)
{
grib_action_set_sarray* self = (grib_action_set_sarray*)a;
-
return grib_set_string_array(h, self->name, (const char**)self->sarray->v, self->sarray->n);
}
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
- grib_action_set_sarray* self = (grib_action_set_sarray*)act;
+ int i = 0;
+ const grib_action_set_sarray* self = (grib_action_set_sarray*)act;
for (i = 0; i < lvl; i++)
grib_context_print(act->context, f, " ");
grib_context_print(act->context, f, self->name);
@@ -127,7 +120,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_switch.cc b/src/action_class_switch.cc
index 57e47dc89..b116aa846 100644
--- a/src/action_class_switch.cc
+++ b/src/action_class_switch.cc
@@ -8,9 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Enrico Fucile *
- ***************************************************************************/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -19,7 +16,6 @@
CLASS = action
SUPER = action_class_section
IMPLEMENTS = destroy
- IMPLEMENTS = xref
IMPLEMENTS = execute
MEMBERS = grib_arguments* args
MEMBERS = grib_case *Case
@@ -39,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -65,7 +60,7 @@ static grib_action_class _grib_action_class_switch = {
&destroy, /* destroy */
0, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
@@ -79,6 +74,7 @@ grib_action_class* grib_action_class_switch = &_grib_action_class_switch;
static void init_class(grib_action_class* c)
{
c->dump = (*(c->super))->dump;
+ c->xref = (*(c->super))->xref;
c->create_accessor = (*(c->super))->create_accessor;
c->notify_change = (*(c->super))->notify_change;
c->reparse = (*(c->super))->reparse;
@@ -240,7 +236,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_template.cc b/src/action_class_template.cc
index 8f240ea27..79fd2aeaf 100644
--- a/src/action_class_template.cc
+++ b/src/action_class_template.cc
@@ -10,7 +10,6 @@
/***************************************************************************
* Jean Baptiste Filippi - 01.11.2005 *
- * Enrico Fucile *
***************************************************************************/
#include "grib_api_internal.h"
@@ -115,19 +114,17 @@ static void dump(grib_action* act, FILE* f, int lvl)
grib_context_print(act->context, f, "Template %s %s\n", act->name, a->arg);
}
-grib_action* get_empty_template(grib_context* c, int* err)
+static grib_action* get_empty_template(grib_context* c, int* err)
{
char fname[] = "empty_template.def";
- char* path = 0;
-
- path = grib_context_full_defs_path(c, fname);
+ const char* path = grib_context_full_defs_path(c, fname);
if (path) {
*err = GRIB_SUCCESS;
return grib_parse_file(c, path);
}
else {
*err = GRIB_INTERNAL_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "get_empty_template: unable to get template %s", fname);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to get template %s", __func__, fname);
return NULL;
}
}
diff --git a/src/action_class_transient_darray.cc b/src/action_class_transient_darray.cc
index ce4e514f9..673f83502 100644
--- a/src/action_class_transient_darray.cc
+++ b/src/action_class_transient_darray.cc
@@ -8,9 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/***************************************************************************
- * Enrico Fucile *
- ***************************************************************************/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -18,7 +15,7 @@
START_CLASS_DEF
CLASS = action
SUPER = action_class_gen
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = grib_darray *darray
MEMBERS = char *name
@@ -38,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -65,7 +61,7 @@ static grib_action_class _grib_action_class_transient_darray = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
0, /* create_accessor*/
@@ -78,6 +74,7 @@ grib_action_class* grib_action_class_transient_darray = &_grib_action_class_tran
static void init_class(grib_action_class* c)
{
+ c->xref = (*(c->super))->xref;
c->create_accessor = (*(c->super))->create_accessor;
c->notify_change = (*(c->super))->notify_change;
c->reparse = (*(c->super))->reparse;
@@ -125,8 +122,8 @@ static int execute(grib_action* act, grib_handle* h)
static void dump(grib_action* act, FILE* f, int lvl)
{
- int i = 0;
- grib_action_transient_darray* self = (grib_action_transient_darray*)act;
+ int i = 0;
+ const grib_action_transient_darray* self = (grib_action_transient_darray*)act;
for (i = 0; i < lvl; i++)
grib_context_print(act->context, f, " ");
grib_context_print(act->context, f, self->name);
@@ -140,7 +137,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, a->name);
grib_darray_delete(context, a->darray);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_trigger.cc b/src/action_class_trigger.cc
index f4a7413dc..c62893db6 100644
--- a/src/action_class_trigger.cc
+++ b/src/action_class_trigger.cc
@@ -10,8 +10,10 @@
#include "grib_api_internal.h"
+// No longer used: For the original intent see
+// src/deprecated/action_class_trigger.cc
grib_action* grib_action_create_trigger(grib_context* context, grib_arguments* args, grib_action* block)
{
- grib_context_log(context, GRIB_LOG_FATAL, "The 'trigger' statement is deprecated");
+ grib_context_log(context, GRIB_LOG_ERROR, "The 'trigger' statement is deprecated");
return NULL;
}
diff --git a/src/action_class_when.cc b/src/action_class_when.cc
index a274a7c27..49fc325be 100644
--- a/src/action_class_when.cc
+++ b/src/action_class_when.cc
@@ -18,7 +18,7 @@
START_CLASS_DEF
CLASS = action
IMPLEMENTS = create_accessor
- IMPLEMENTS = dump;xref
+ IMPLEMENTS = dump
IMPLEMENTS = destroy;notify_change
MEMBERS = grib_expression *expression
MEMBERS = grib_action *block_true
@@ -40,7 +40,6 @@ or edit "action.class" and rerun ./make_class.pl
static void init_class (grib_action_class*);
static void dump (grib_action* d, FILE*,int);
-static void xref (grib_action* d, FILE* f,const char* path);
static void destroy (grib_context*,grib_action*);
static int create_accessor(grib_section*,grib_action*,grib_loader*);
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
@@ -66,7 +65,7 @@ static grib_action_class _grib_action_class_when = {
&destroy, /* destroy */
&dump, /* dump */
- &xref, /* xref */
+ 0, /* xref */
&create_accessor, /* create_accessor*/
@@ -232,7 +231,3 @@ static void destroy(grib_context* context, grib_action* act)
grib_context_free_persistent(context, act->name);
grib_context_free_persistent(context, act->op);
}
-
-static void xref(grib_action* d, FILE* f, const char* path)
-{
-}
diff --git a/src/action_class_while.cc b/src/action_class_while.cc
index 6ec144d15..e7d7dde75 100644
--- a/src/action_class_while.cc
+++ b/src/action_class_while.cc
@@ -14,6 +14,6 @@
// src/deprecated/action_class_while.cc
grib_action* grib_action_create_while(grib_context* context, grib_expression* expression, grib_action* block)
{
- grib_context_log(context, GRIB_LOG_FATAL, "The 'while' statement is deprecated");
+ grib_context_log(context, GRIB_LOG_ERROR, "The 'while' statement is deprecated");
return NULL;
}
diff --git a/src/action_class_write.cc b/src/action_class_write.cc
index 6b18a90d6..190264e9c 100644
--- a/src/action_class_write.cc
+++ b/src/action_class_write.cc
@@ -14,7 +14,6 @@
START_CLASS_DEF
CLASS = action
- IMPLEMENTS = dump
IMPLEMENTS = destroy;execute
MEMBERS = char *name
MEMBERS = int append
@@ -34,7 +33,6 @@ or edit "action.class" and rerun ./make_class.pl
*/
static void init_class (grib_action_class*);
-static void dump (grib_action* d, FILE*,int);
static void destroy (grib_context*,grib_action*);
static int execute(grib_action* a,grib_handle* h);
@@ -57,7 +55,7 @@ static grib_action_class _grib_action_class_write = {
0, /* init */
&destroy, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* xref */
0, /* create_accessor*/
@@ -103,7 +101,7 @@ static int execute(grib_action* act, grib_handle* h)
{
grib_action_write* a = (grib_action_write*)act;
int err = GRIB_SUCCESS;
- size_t size;
+ size_t size = 0;
const void* buffer = NULL;
const char* filename = NULL;
char string[1024] = {0,};
@@ -116,13 +114,13 @@ static int execute(grib_action* act, grib_handle* h)
}
if (strlen(a->name) != 0) {
- err = grib_recompose_name(h, NULL, a->name, string, 0);
+ err = grib_recompose_name(h, NULL, a->name, string, 0);
filename = string;
}
else {
if (act->context->outfilename) {
filename = act->context->outfilename;
- err = grib_recompose_name(h, NULL, act->context->outfilename, string, 0);
+ err = grib_recompose_name(h, NULL, act->context->outfilename, string, 0);
if (!err)
filename = string;
}
@@ -159,14 +157,16 @@ static int execute(grib_action* act, grib_handle* h)
if (a->padtomultiple) {
char* zeros = NULL;
+ if (a->padtomultiple < 0)
+ return GRIB_INVALID_ARGUMENT;
size_t padding = a->padtomultiple - size % a->padtomultiple;
- /* printf("XXX padding=%d size=%d padtomultiple=%d\n",padding,size,a->padtomultiple); */
+ /* printf("XXX padding=%zu size=%zu padtomultiple=%d\n", padding, size,a->padtomultiple); */
zeros = (char*)calloc(padding, 1);
if (!zeros)
return GRIB_OUT_OF_MEMORY;
if (fwrite(zeros, 1, padding, of->handle) != padding) {
grib_context_log(act->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR),
- "Error writing to %s", filename);
+ "Error writing to '%s'", filename);
free(zeros);
return GRIB_IO_PROBLEM;
}
@@ -174,10 +174,10 @@ static int execute(grib_action* act, grib_handle* h)
}
if (h->gts_header) {
- char gts_trailer[4] = { '\x0D', '\x0D', '\x0A', '\x03' };
+ const char gts_trailer[4] = { '\x0D', '\x0D', '\x0A', '\x03' };
if (fwrite(gts_trailer, 1, 4, of->handle) != 4) {
grib_context_log(act->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR),
- "Error writing GTS trailer to %s", filename);
+ "Error writing GTS trailer to '%s'", filename);
return GRIB_IO_PROBLEM;
}
}
@@ -191,10 +191,6 @@ static int execute(grib_action* act, grib_handle* h)
return err;
}
-static void dump(grib_action* act, FILE* f, int lvl)
-{
-}
-
static void destroy(grib_context* context, grib_action* act)
{
grib_action_write* a = (grib_action_write*)act;
diff --git a/src/bufr_keys_iterator.cc b/src/bufr_keys_iterator.cc
index cc8b1b3ca..e1ab89697 100644
--- a/src/bufr_keys_iterator.cc
+++ b/src/bufr_keys_iterator.cc
@@ -199,7 +199,7 @@ char* codes_bufr_keys_iterator_get_name(const bufr_keys_iterator* ckiter)
bufr_keys_iterator* kiter = (bufr_keys_iterator*)ckiter;
int* r = 0;
char* ret = 0;
- grib_context* c = kiter->handle->context;
+ const grib_context* c = kiter->handle->context;
DEBUG_ASSERT(kiter->current);
if (kiter->prefix) {
@@ -236,7 +236,7 @@ grib_accessor* codes_bufr_keys_iterator_get_accessor(bufr_keys_iterator* kiter)
int codes_bufr_keys_iterator_delete(bufr_keys_iterator* kiter)
{
if (kiter) {
- grib_context* c = kiter->handle->context;
+ const grib_context* c = kiter->handle->context;
kiter->key_name = NULL;
if (kiter->seen)
grib_trie_delete(kiter->seen);
diff --git a/src/bufr_util.cc b/src/bufr_util.cc
index 000435488..95ff8eeb2 100644
--- a/src/bufr_util.cc
+++ b/src/bufr_util.cc
@@ -18,7 +18,7 @@ int compute_bufr_key_rank(grib_handle* h, grib_string_list* keys, const char* ke
grib_string_list* prev = keys;
int theRank = 0;
size_t size = 0;
- grib_context* c = h->context;
+ const grib_context* c = h->context;
DEBUG_ASSERT(h->product_kind == PRODUCT_BUFR);
while (next && next->value && strcmp(next->value, key)) {
@@ -220,7 +220,7 @@ static int bufr_decode_extra_rdb_keys(const void* message, long offset_section2,
DEBUG_ASSERT(hdr->ecmwfLocalSectionPresent);
- if (hdr->rdbType == 2 || hdr->rdbType == 3 || hdr->rdbType == 8 || hdr->rdbType == 12) {
+ if (hdr->rdbType == 2 || hdr->rdbType == 3 || hdr->rdbType == 8 || hdr->rdbType == 12 || hdr->rdbType == 30) {
isSatelliteType = true;
}
if (isSatelliteType || hdr->numberOfSubsets > 1) {
@@ -1114,7 +1114,7 @@ int codes_bufr_header_get_string(codes_bufr_header* bh, const char* key, char* v
// Returns 1 if the BUFR key is in the header and 0 if it is in the data section
int codes_bufr_key_is_header(const grib_handle* h, const char* key, int* err)
{
- grib_accessor* acc = grib_find_accessor(h, key);
+ const grib_accessor* acc = grib_find_accessor(h, key);
if (!acc) {
*err = GRIB_NOT_FOUND;
return 0;
@@ -1126,7 +1126,7 @@ int codes_bufr_key_is_header(const grib_handle* h, const char* key, int* err)
// Returns 1 if the BUFR key is a coordinate descriptor
int codes_bufr_key_is_coordinate(const grib_handle* h, const char* key, int* err)
{
- grib_accessor* acc = grib_find_accessor(h, key);
+ const grib_accessor* acc = grib_find_accessor(h, key);
if (!acc) {
*err = GRIB_NOT_FOUND;
return 0;
@@ -1134,3 +1134,11 @@ int codes_bufr_key_is_coordinate(const grib_handle* h, const char* key, int* err
*err = GRIB_SUCCESS;
return ((acc->flags & GRIB_ACCESSOR_FLAG_BUFR_COORD) != 0);
}
+
+int codes_bufr_key_exclude_from_dump(const char* key)
+{
+ if (strstr(key, "percentConfidence->percentConfidence->percentConfidence->percentConfidence->percentConfidence")) {
+ return 1;
+ }
+ return 0;
+}
diff --git a/src/codes_util.cc b/src/codes_util.cc
index 61174f2f9..57613109a 100644
--- a/src/codes_util.cc
+++ b/src/codes_util.cc
@@ -133,7 +133,7 @@ char* codes_getenv(const char* name)
int codes_check_grib_ieee_packing_value(int value)
{
- grib_context* c = grib_context_get_default();
+ const grib_context* c = grib_context_get_default();
if (value != 32 && value != 64) {
grib_context_log(c, GRIB_LOG_ERROR, "Invalid value for ECCODES_GRIB_IEEE_PACKING: should be 32 or 64");
return GRIB_INVALID_ARGUMENT;
@@ -146,7 +146,7 @@ int codes_flush_sync_close_file(FILE* f)
{
int err = 0;
int fd = 0;
- grib_context* c = grib_context_get_default();
+ const grib_context* c = grib_context_get_default();
Assert(f);
fd = fileno(f);
@@ -213,6 +213,37 @@ int is_date_valid(long year, long month, long day, long hour, long minute, doubl
return 1;
}
+// Return 1 if input date is valid. Otherwise 0
+// Note: In the 24-hour time notation, the day begins at midnight, 00:00 or 0:00,
+// and the last minute of the day begins at 23:59.
+// Where convenient, the notation 24:00 may also be used to refer to midnight
+// at the end of a given date — that is, 24:00 of one day is the same time
+// as 00:00 of the following day
+int is_time_valid(long number)
+{
+ // Number should be 4 digits i.e., HHMM
+ if (number < 0 || number > 9999) {
+ return 0;
+ }
+
+ // Extract hours and minutes
+ long hours = number / 100; // Get the first two digits as hours
+ long minutes = number % 100; // Get the last two digits as minutes
+
+ // Check if hours are within the valid range (00-24)
+ if (hours < 0 || hours > 24) {
+ return 0;
+ }
+
+ // Check if minutes are within the valid range (00-59)
+ if (minutes < 0 || minutes > 59) {
+ return 0;
+ }
+
+ // All checks pass
+ return 1;
+}
+
static float float_epsilon(void)
{
float floatEps = 1.0;
diff --git a/src/deprecated/action_class_put.cc b/src/deprecated/action_class_put.cc
new file mode 100644
index 000000000..49ec4bf6e
--- /dev/null
+++ b/src/deprecated/action_class_put.cc
@@ -0,0 +1,140 @@
+/*
+ * (C) Copyright 2005- 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.
+ */
+
+/***************************************************************************
+ * Jean Baptiste Filippi - 01.11.2005 *
+ ***************************************************************************/
+#include "grib_api_internal.h"
+
+/*
+ This is used by make_class.pl
+
+ START_CLASS_DEF
+ CLASS = action
+ IMPLEMENTS = create_accessor
+ IMPLEMENTS = dump
+ IMPLEMENTS = destroy
+ MEMBERS = grib_arguments* args
+ END_CLASS_DEF
+
+ */
+
+/* START_CLASS_IMP */
+
+/*
+
+Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
+Instead edit values between START_CLASS_DEF and END_CLASS_DEF
+or edit "action.class" and rerun ./make_class.pl
+
+*/
+
+static void init_class (grib_action_class*);
+static void dump (grib_action* d, FILE*,int);
+static void destroy (grib_context*,grib_action*);
+static int create_accessor(grib_section*,grib_action*,grib_loader*);
+
+
+typedef struct grib_action_put {
+ grib_action act;
+ /* Members defined in put */
+ grib_arguments* args;
+} grib_action_put;
+
+
+static grib_action_class _grib_action_class_put = {
+ 0, /* super */
+ "action_class_put", /* name */
+ sizeof(grib_action_put), /* size */
+ 0, /* inited */
+ &init_class, /* init_class */
+ 0, /* init */
+ &destroy, /* destroy */
+
+ &dump, /* dump */
+ 0, /* xref */
+
+ &create_accessor, /* create_accessor*/
+
+ 0, /* notify_change */
+ 0, /* reparse */
+ 0, /* execute */
+};
+
+grib_action_class* grib_action_class_put = &_grib_action_class_put;
+
+static void init_class(grib_action_class* c)
+{
+}
+/* END_CLASS_IMP */
+
+grib_action* grib_action_create_put(grib_context* context, const char* name, grib_arguments* args)
+{
+ grib_action_put* a = NULL;
+ grib_action_class* c = grib_action_class_put;
+ grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size);
+ act->next = NULL;
+ act->name = grib_context_strdup_persistent(context, name);
+ act->op = grib_context_strdup_persistent(context, "forward");
+ act->cclass = c;
+ act->context = context;
+ a = (grib_action_put*)act;
+ a->args = args;
+ return act;
+}
+
+static int create_accessor(grib_section* p, grib_action* act, grib_loader* h)
+{
+ grib_action_put* a = (grib_action_put*)act;
+
+ grib_section* ts = NULL;
+
+ grib_accessor* ga = NULL;
+
+ ga = grib_find_accessor(p->h, grib_arguments_get_name(p->h, a->args, 1));
+ if (ga)
+ ts = ga->sub_section;
+ /* ts = grib_get_sub_section(ga); */
+ else
+ return GRIB_BUFFER_TOO_SMALL;
+
+ if (ts) {
+ ga = grib_accessor_factory(ts, act, 0, a->args);
+ if (ga)
+ grib_push_accessor(ga, ts->block);
+ else
+ return GRIB_BUFFER_TOO_SMALL;
+ }
+ else {
+ grib_context_log(act->context, GRIB_LOG_ERROR, "Action_class_put : create_accessor_buffer : No Section named %s to export %s ", grib_arguments_get_name(p->h, a->args, 1), grib_arguments_get_name(p->h, a->args, 0));
+ }
+ return GRIB_SUCCESS;
+}
+
+static void dump(grib_action* act, FILE* f, int lvl)
+{
+ grib_action_put* a = (grib_action_put*)act;
+
+ int i = 0;
+
+ for (i = 0; i < lvl; i++)
+ grib_context_print(act->context, f, " ");
+
+ grib_context_print(act->context, f, "put %s as %s in %s\n", grib_arguments_get_name(0, a->args, 0), act->name, grib_arguments_get_name(0, a->args, 1));
+}
+
+static void destroy(grib_context* context, grib_action* act)
+{
+ grib_action_put* a = (grib_action_put*)act;
+
+ grib_arguments_free(context, a->args);
+ grib_context_free_persistent(context, act->name);
+ grib_context_free_persistent(context, act->op);
+}
diff --git a/src/deprecated/grib_concept_index.cc b/src/deprecated/grib_concept_index.cc
new file mode 100644
index 000000000..8ca1794a4
--- /dev/null
+++ b/src/deprecated/grib_concept_index.cc
@@ -0,0 +1,192 @@
+#include "grib_api_internal.h"
+
+typedef struct grib_concept_index_keys grib_concept_index_keys;
+typedef struct grib_concept_index grib_concept_index;
+typedef struct grib_conditions_tree grib_conditions_tree;
+typedef struct grib_concept_index_entry grib_concept_index_entry;
+typedef struct grib_concept_index_keys grib_concept_index_keys;
+
+struct grib_concept_index_entry {
+ char* name;
+ char* value;
+ int type;
+ grib_concept_index_entry* next;
+};
+
+struct grib_concept_index_keys {
+ char* name;
+ int type;
+ grib_concept_index_keys* next;
+};
+
+struct grib_concept_index {
+ grib_context* context;
+ grib_concept_index_keys* keys;
+ grib_conditions_tree* conditions;
+};
+
+struct grib_conditions_tree {
+ char* value;
+ void* object;
+ grib_conditions_tree* next;
+ grib_conditions_tree* next_key;
+};
+
+
+static grib_concept_index_entry* index_entry_new(grib_context* c, grib_concept_index_keys* keys)
+{
+ grib_concept_index_entry* entry = NULL;
+ grib_concept_index_entry* e;
+
+ Assert(keys);
+
+ if (!c)
+ c = grib_context_get_default();
+
+ entry = (grib_concept_index_entry*)grib_context_malloc_clear(c, sizeof(grib_concept_index_entry));
+ if (!entry)
+ grib_context_log(c, GRIB_LOG_FATAL, "grib_concept_index_entry unable to allocate");
+ e = entry;
+
+ while (keys && keys->name) {
+ e->name = grib_context_strdup(c, keys->name);
+ e->type = keys->type;
+ e->next = (grib_concept_index_entry*)grib_context_malloc_clear(c, sizeof(grib_concept_index_entry));
+ if (!e->next)
+ grib_context_log(c, GRIB_LOG_FATAL, "grib_concept_index_entry unable to allocate");
+
+ e = e->next;
+ keys = keys->next;
+ }
+
+ return entry;
+}
+
+static void index_entry_delete(grib_context* c, grib_concept_index_entry* entry)
+{
+ grib_concept_index_entry* e;
+ while (entry) {
+ e = entry;
+ entry = entry->next;
+ grib_context_free(c, e->name);
+ grib_context_free(c, e->value);
+ grib_context_free(c, e);
+ }
+}
+
+static int index_insert_entry(grib_concept_index* index, grib_concept_index_entry* entry, void* object)
+{
+ int err = 0;
+ int found;
+ grib_conditions_tree* cur = index->conditions;
+ grib_conditions_tree* prev = index->conditions;
+ grib_concept_index_keys* keys = index->keys;
+
+ while (keys->name) {
+ if (!cur) {
+ cur = (grib_conditions_tree*)grib_context_malloc_clear_persistent(index->context, sizeof(grib_conditions_tree));
+ if (!cur)
+ grib_context_log(index->context, GRIB_LOG_FATAL, "index_insert_entry unable to allocate");
+ prev->next = cur;
+ }
+ char* value = entry->value ? entry->value : (char*)"*";
+ while (cur && (!cur->value || (found = !strcmp(cur->value, value)) == 0))
+ cur = cur->next;
+
+ if (!found) {
+ cur->next = (grib_conditions_tree*)grib_context_malloc_clear_persistent(index->context, sizeof(grib_conditions_tree));
+ Assert(cur->next);
+ cur = cur->next;
+ }
+
+ cur->value = grib_context_strdup(index->context, value);
+ entry = entry->next;
+ keys = keys->next;
+ prev = cur;
+ cur = cur->next_key;
+ }
+
+ while (cur) {
+ prev = cur;
+ cur = cur->next_key;
+ }
+
+ prev->object = object;
+
+ return err;
+}
+
+static void index_add_conditions(grib_concept_index* index, grib_concept_condition* condition)
+{
+ grib_concept_condition* c = condition;
+ char s[512] = {0,};
+ grib_concept_index_entry* e;
+ grib_concept_index_entry* entry = index_entry_new(index->context, index->keys);
+ long lres;
+ double dres;
+ int err = 0;
+
+ while (c) {
+ size_t size = 512;
+ int type;
+ e = entry;
+ type = grib_expression_native_type(0, c->expression);
+ switch (type) {
+ case GRIB_TYPE_LONG:
+ grib_expression_evaluate_long(0, c->expression, &lres);
+ snprintf(s, sizeof(s), "%ld", lres);
+ break;
+
+ case GRIB_TYPE_DOUBLE:
+ grib_expression_evaluate_double(0, c->expression, &dres);
+ snprintf(s, sizeof(s), "%g", dres);
+ break;
+
+ case GRIB_TYPE_STRING:
+ grib_expression_evaluate_string(0, c->expression, s, &size, &err);
+ break;
+
+ default:
+ Assert(0);
+ break;
+ }
+
+ while (e->name && strcmp(e->name, c->name))
+ e = e->next;
+
+ e->type = type;
+ e->value = grib_context_strdup(index->context, s);
+ if (!e->name) {
+ e->name = grib_context_strdup(index->context, c->name);
+ e->next = (grib_concept_index_entry*)grib_context_malloc_clear_persistent(index->context, sizeof(grib_concept_index_entry));
+ if (!e->next)
+ grib_context_log(index->context, GRIB_LOG_FATAL, "index_add_conditions unable to allocate");
+ }
+
+ c = c->next;
+ }
+
+ index_insert_entry(index, entry, condition->name);
+
+ index_entry_delete(index->context, entry);
+}
+
+grib_concept_index* grib_concept_index_new_from_concept(grib_context* c, grib_concept_value* concept, int* err)
+{
+ grib_concept_index* index;
+
+ if (!c)
+ c = grib_context_get_default();
+
+ index = (grib_concept_index*)grib_context_malloc_clear_persistent(c, sizeof(grib_concept_index));
+ index->keys = (grib_concept_index_keys*)grib_context_malloc_clear_persistent(c, sizeof(grib_concept_index_keys));
+ index->conditions = (grib_conditions_tree*)grib_context_malloc_clear_persistent(c, sizeof(grib_conditions_tree));
+ index->context = c;
+
+ while (concept) {
+ index_add_conditions(index, concept->conditions);
+ concept = concept->next;
+ }
+
+ return index;
+}
diff --git a/src/grib_expression_class_column.cc b/src/deprecated/grib_expression_class_column.cc
similarity index 96%
rename from src/grib_expression_class_column.cc
rename to src/deprecated/grib_expression_class_column.cc
index b683b93a5..fefdaca0a 100644
--- a/src/grib_expression_class_column.cc
+++ b/src/deprecated/grib_expression_class_column.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_api_internal.h"
/*
@@ -89,7 +84,7 @@ static void init_class(grib_expression_class* c)
static const char* get_name(grib_expression* g)
{
- grib_expression_column* e = (grib_expression_column*)g;
+ const grib_expression_column* e = (grib_expression_column*)g;
return e->name;
}
@@ -131,7 +126,6 @@ static void destroy(grib_context* c, grib_expression* g)
grib_context_free_persistent(c, e->name);
}
-
grib_expression* new_column_expression(grib_context* c, const char* name)
{
grib_expression_column* e = grib_context_malloc_clear_persistent(c, sizeof(grib_expression_column));
diff --git a/src/grib_expression_class_constant.cc b/src/deprecated/grib_expression_class_constant.cc
similarity index 87%
rename from src/grib_expression_class_constant.cc
rename to src/deprecated/grib_expression_class_constant.cc
index 7bd817678..bedacd013 100644
--- a/src/grib_expression_class_constant.cc
+++ b/src/deprecated/grib_expression_class_constant.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_api_internal.h"
/*
@@ -22,7 +17,7 @@
CLASS = expression
IMPLEMENTS = destroy
IMPLEMENTS = native_type
- IMPLEMENTS = evaluate;print
+ IMPLEMENTS = print
IMPLEMENTS = add_dependency
MEMBERS = long value
END_CLASS_DEF
@@ -83,15 +78,9 @@ static void init_class(grib_expression_class* c)
}
/* END_CLASS_IMP */
-static long evaluate(grib_expression* g, grib_handle* h)
-{
- grib_expression_constant* e = (grib_expression_constant*)g;
- return e->value;
-}
-
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_constant* e = (grib_expression_constant*)g;
+ const grib_expression_constant* e = (grib_expression_constant*)g;
printf("constant(%ld)", e->value);
}
@@ -100,7 +89,6 @@ static void destroy(grib_context* c, grib_expression* g)
/* grib_expression_constant* e = (grib_expression_constant*)g; */
}
-
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
/* grib_expression_constant* e = (grib_expression_constant*)g; */
diff --git a/src/grib_loader_from_array.cc b/src/deprecated/grib_loader_from_array.cc
similarity index 100%
rename from src/grib_loader_from_array.cc
rename to src/deprecated/grib_loader_from_array.cc
diff --git a/src/eccodes.cc b/src/eccodes.cc
index 13b23ddc0..9ec6d8073 100644
--- a/src/eccodes.cc
+++ b/src/eccodes.cc
@@ -175,6 +175,11 @@ grib_handle* codes_handle_clone(const grib_handle* h)
{
return grib_handle_clone(h);
}
+grib_handle* codes_handle_clone_headers_only(const grib_handle* h)
+{
+ return grib_handle_clone_headers_only(h);
+}
+
int codes_handle_delete(grib_handle* h)
{
return grib_handle_delete(h);
@@ -321,6 +326,10 @@ int codes_set_missing(grib_handle* h, const char* key)
{
return grib_set_missing(h, key);
}
+int codes_get_offset(const codes_handle* h, const char* key, size_t* offset)
+{
+ return grib_get_offset(h, key, offset);
+}
int codes_get_size(const grib_handle* h, const char* key, size_t* size)
{
return grib_get_size(h, key, size);
@@ -457,6 +466,11 @@ void codes_gts_header_off(grib_context* c)
{
grib_gts_header_off(c);
}
+void codes_gts_header_on(grib_context* c)
+{
+ grib_gts_header_on(c);
+}
+
void codes_gribex_mode_on(grib_context* c)
{
grib_gribex_mode_on(c);
diff --git a/src/eccodes.h b/src/eccodes.h
index d890438f2..f0b110b86 100644
--- a/src/eccodes.h
+++ b/src/eccodes.h
@@ -495,6 +495,7 @@ codes_handle* codes_handle_new_from_samples(codes_context* c, const char* sample
* @return the new handle, NULL if the message is invalid or a problem is encountered
*/
codes_handle* codes_handle_clone(const codes_handle* h);
+codes_handle* codes_handle_clone_headers_only(const codes_handle* h);
/**
* Frees a handle, also frees the message if it is not a user message
@@ -724,7 +725,7 @@ int codes_grib_nearest_find_multiple(const codes_handle* h, int is_lsm,
/*! \defgroup get_set Accessing header and data values */
/*! @{ */
/**
- * Get the number offset of a key, in a message if several keys of the same name
+ * Get the byte offset of a key, if several keys of the same name
* are present, the offset of the last one is returned
*
* @param h : the handle to get the offset from
@@ -737,7 +738,7 @@ int codes_get_offset(const codes_handle* h, const char* key, size_t* offset);
/**
* Get the number of coded value from a key, if several keys of the same name are present, the total sum is returned
*
- * @param h : the handle to get the offset from
+ * @param h : the handle to get the data from
* @param key : the key to be searched
* @param size : the address of a size_t where the size will be set
* @return 0 if OK, integer value on error
@@ -747,7 +748,7 @@ int codes_get_size(const codes_handle* h, const char* key, size_t* size);
/**
* Get the length of the string representation of the key, if several keys of the same name are present, the maximum length is returned
*
- * @param h : the handle to get the offset from
+ * @param h : the handle to get the data from
* @param key : the key to be searched
* @param length : the address of a size_t where the length will be set
* @return 0 if OK, integer value on error
@@ -809,7 +810,8 @@ int codes_get_float_elements(const codes_handle* h, const char* key, const int*
* @param h : the handle to get the data from
* @param key : the key to be searched
* @param mesg : the address of a string where the data will be retrieved
- * @param length : the address of a size_t that contains allocated length of the string on input, and that contains the actual length of the string on output
+ * @param length : the address of a size_t that contains allocated length of the string on input,
+ * and that contains the actual length of the string on output
* @return 0 if OK, integer value on error
*/
int codes_get_string(const codes_handle* h, const char* key, char* mesg, size_t* length);
@@ -821,7 +823,8 @@ int codes_get_string(const codes_handle* h, const char* key, char* mesg, size_t*
* @param h : the handle to get the data from
* @param key : the key to be searched
* @param vals : the address of a string array where the data will be retrieved
- * @param length : the address of a size_t that contains allocated length of the array on input, and that contains the actual length of the array on output
+ * @param length : the address of a size_t that contains allocated length of the array on input,
+ * and that contains the actual length of the array on output
* @return 0 if OK, integer value on error
*/
int codes_get_string_array(const codes_handle* h, const char* key, char** vals, size_t* length);
@@ -830,11 +833,12 @@ int codes_get_string_array(const codes_handle* h, const char* key, char** vals,
* Get raw bytes values from a key. If several keys of the same name are present, the last one is returned
* @see codes_set_bytes
*
- * @param h : the handle to get the data from
- * @param key : the key to be searched
- * @param bytes : the address of a byte array where the data will be retrieved
- * @param length : the address of a size_t that contains allocated length of the byte array on input, and that contains the actual length of the byte array on output
- * @return 0 if OK, integer value on error
+ * @param h : the handle to get the data from
+ * @param key : the key to be searched
+ * @param bytes : the address of a byte array where the data will be retrieved
+ * @param length : the address of a size_t that contains allocated length of the byte array on input,
+ * and that contains the actual length of the byte array on output
+ * @return 0 if OK, integer value on error
*/
int codes_get_bytes(const codes_handle* h, const char* key, unsigned char* bytes, size_t* length);
@@ -845,7 +849,8 @@ int codes_get_bytes(const codes_handle* h, const char* key, unsigned char* bytes
* @param h : the handle to get the data from
* @param key : the key to be searched
* @param vals : the address of a double array where the data will be retrieved
- * @param length : the address of a size_t that contains allocated length of the double array on input, and that contains the actual length of the double array on output
+ * @param length : the address of a size_t that contains allocated length of the double array on input,
+ * and that contains the actual length of the double array on output
* @return 0 if OK, integer value on error
*/
int codes_get_double_array(const codes_handle* h, const char* key, double* vals, size_t* length);
@@ -857,8 +862,9 @@ int codes_get_float_array(const codes_handle* h, const char* key, float* vals, s
*
* @param h : the handle to get the data from
* @param key : the key to be searched
- * @param vals : the address of a long array where the data will be retrieved
- * @param length : the address of a size_t that contains allocated length of the long array on input, and that contains the actual length of the long array on output
+ * @param vals : the address of a long array where the data will be retrieved
+ * @param length : the address of a size_t that contains allocated length of the long array on input,
+ * and that contains the actual length of the long array on output
* @return 0 if OK, integer value on error
*/
int codes_get_long_array(const codes_handle* h, const char* key, long* vals, size_t* length);
@@ -891,10 +897,10 @@ int codes_set_long(codes_handle* h, const char* key, long val);
* Set a double value from a key. If several keys of the same name are present, the last one is set
* @see codes_get_double
*
- * @param h : the handle to set the data to
- * @param key : the key to be searched
+ * @param h : the handle to set the data to
+ * @param key : the key to be searched
* @param val : a double where the data will be read
- * @return 0 if OK, integer value on error
+ * @return 0 if OK, integer value on error
*/
int codes_set_double(codes_handle* h, const char* key, double val);
@@ -902,11 +908,12 @@ int codes_set_double(codes_handle* h, const char* key, double val);
* Set a string value from a key. If several keys of the same name are present, the last one is set
* @see codes_get_string
*
- * @param h : the handle to set the data to
- * @param key : the key to be searched
+ * @param h : the handle to set the data to
+ * @param key : the key to be searched
* @param mesg : the address of a string where the data will be read
- * @param length : the address of a size_t that contains the length of the string on input, and that contains the actual packed length of the string on output
- * @return 0 if OK, integer value on error
+ * @param length : the address of a size_t that contains the length of the string on input,
+ * and that contains the actual packed length of the string on output
+ * @return 0 if OK, integer value on error
*/
int codes_set_string(codes_handle* h, const char* key, const char* mesg, size_t* length);
@@ -917,7 +924,8 @@ int codes_set_string(codes_handle* h, const char* key, const char* mesg, size_t*
* @param h : the handle to set the data to
* @param key : the key to be searched
* @param bytes : the address of a byte array where the data will be read
- * @param length : the address of a size_t that contains the length of the byte array on input, and that contains the actual packed length of the byte array on output
+ * @param length : the address of a size_t that contains the length of the byte array on input,
+ * and that contains the actual packed length of the byte array on output
* @return 0 if OK, integer value on error
*/
int codes_set_bytes(codes_handle* h, const char* key, const unsigned char* bytes, size_t* length);
@@ -1450,7 +1458,10 @@ int codes_bufr_header_get_string(codes_bufr_header* bh, const char* key, char* v
* strict_mode = If 1 means fail if any message is invalid.
* returns 0 if OK, integer value on error.
*/
-int codes_extract_offsets_malloc(codes_context* c, const char* filename, ProductKind product, off_t** offsets, int* num_messages, int strict_mode);
+int codes_extract_offsets_malloc(codes_context* c, const char* filename, ProductKind product,
+ off_t** offsets, int* num_messages, int strict_mode);
+int codes_extract_offsets_sizes_malloc(codes_context* c, const char* filename, ProductKind product,
+ off_t** offsets, size_t** sizes, int* num_messages, int strict_mode);
/* --------------------------------------- */
#ifdef __cplusplus
@@ -1520,7 +1531,7 @@ Error codes returned by the eccodes functions.
#define CODES_WRONG_STEP_UNIT GRIB_WRONG_STEP_UNIT
/** Invalid file id */
#define CODES_INVALID_FILE GRIB_INVALID_FILE
-/** Invalid grib id */
+/** Invalid GRIB id */
#define CODES_INVALID_GRIB GRIB_INVALID_GRIB
/** Invalid index id */
#define CODES_INVALID_INDEX GRIB_INVALID_INDEX
diff --git a/src/eccodes_prototypes.h b/src/eccodes_prototypes.h
index 3b405a05a..e98ae83c2 100644
--- a/src/eccodes_prototypes.h
+++ b/src/eccodes_prototypes.h
@@ -1,3 +1,13 @@
+/*
+ * (C) Copyright 2005- 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.
+ */
+
#pragma once
#ifdef ECCODES_ON_WINDOWS
@@ -5,7 +15,6 @@
#endif
/* action.cc */
-void grib_xref(grib_action* a, FILE* f, const char* path);
void grib_action_delete(grib_context* context, grib_action* a);
int grib_create_accessor(grib_section* p, grib_action* a, grib_loader* h);
int grib_action_notify_change(grib_action* a, grib_accessor* observer, grib_accessor* observed);
@@ -13,7 +22,6 @@ grib_action* grib_action_reparse(grib_action* a, grib_accessor* acc, int* doit);
int grib_action_execute(grib_action* a, grib_handle* h);
void grib_dump_action_branch(FILE* out, grib_action* a, int decay);
void grib_dump_action_tree(grib_context* ctx, FILE* out);
-void grib_xref_action_branch(FILE* out, grib_action* a, const char* path);
/* action_class_alias.cc */
grib_action* grib_action_create_alias(grib_context* context, const char* name, const char* arg1, const char* name_space, int flags);
@@ -22,95 +30,86 @@ grib_action* grib_action_create_alias(grib_context* context, const char* name, c
grib_action* grib_action_create_gen(grib_context* context, const char* name, const char* op, const long len, grib_arguments* params, grib_arguments* default_value, int flags, const char* name_space, const char* set);
/* action_class_if.cc */
-grib_action* grib_action_create_if(grib_context* context, grib_expression* expression, grib_action* block_true, grib_action* block_false, int transient, int lineno, char* file_being_parsed);
+grib_action* grib_action_create_if(grib_context* context, grib_expression* expression, grib_action* block_true, grib_action* block_false, int transient, int lineno, const char* file_being_parsed);
/* action_class_switch.cc */
grib_action* grib_action_create_switch(grib_context* context, grib_arguments* args, grib_case* Case, grib_action* Default);
grib_case* grib_case_new(grib_context* c, grib_arguments* values, grib_action* action);
-/* grib_accessor_class_g1fcperiod.cc */
-
-/* grib_accessor_class_g1end_of_interval_monthly.cc */
-
-/* grib_accessor_class_mars_param.cc */
-
-/* action_class_section.cc */
-
-/* action_class_list.cc*/
+/* action_class_list.cc */
grib_action* grib_action_create_list(grib_context* context, const char* name, grib_expression* expression, grib_action* block);
-/* action_class_while.cc*/
+/* action_class_while.cc */
grib_action* grib_action_create_while(grib_context* context, grib_expression* expression, grib_action* block);
-/* action_class_put.cc*/
+/* action_class_put.cc */
grib_action* grib_action_create_put(grib_context* context, const char* name, grib_arguments* args);
-/* action_class_meta.cc*/
+/* action_class_meta.cc */
grib_action* grib_action_create_meta(grib_context* context, const char* name, const char* op, grib_arguments* params, grib_arguments* default_value, unsigned long flags, const char* name_space);
-/* action_class_remove.cc*/
+/* action_class_remove.cc */
grib_action* grib_action_create_remove(grib_context* context, grib_arguments* args);
-/* action_class_rename.cc*/
+/* action_class_rename.cc */
grib_action* grib_action_create_rename(grib_context* context, char* the_old, char* the_new);
-/* action_class_assert.cc*/
+/* action_class_assert.cc */
grib_action* grib_action_create_assert(grib_context* context, grib_expression* expression);
-/* action_class_template.cc*/
+/* action_class_template.cc */
grib_action* grib_action_create_template(grib_context* context, int nofail, const char* name, const char* arg1);
-grib_action* get_empty_template(grib_context* c, int* err);
-/* action_class_trigger.cc*/
+/* action_class_trigger.cc */
grib_action* grib_action_create_trigger(grib_context* context, grib_arguments* args, grib_action* block);
-/* action_class_when.cc*/
+/* action_class_when.cc */
grib_action* grib_action_create_when(grib_context* context, grib_expression* expression, grib_action* block_true, grib_action* block_false);
-/* action_class_concept.cc*/
+/* action_class_concept.cc */
grib_concept_value* action_concept_get_concept(grib_accessor* a);
int action_concept_get_nofail(grib_accessor* a);
grib_action* grib_action_create_concept(grib_context* context, const char* name, grib_concept_value* concept_value, const char* basename, const char* name_space, const char* defaultkey, const char* masterDir, const char* localDir, const char* ecmfDir, int flags, int nofail);
int get_concept_condition_string(grib_handle* h, const char* key, const char* value, char* result);
-/* action_class_hash_array.cc*/
+/* action_class_hash_array.cc */
grib_action* grib_action_create_hash_array(grib_context* context, const char* name, grib_hash_array_value* hash_array, const char* basename, const char* name_space, const char* defaultkey, const char* masterDir, const char* localDir, const char* ecmfDir, int flags, int nofail);
grib_hash_array_value* get_hash_array(grib_handle* h, grib_action* a);
+const char* get_hash_array_full_path(grib_action* a);
-/* action_class_set.cc*/
+/* action_class_set.cc */
grib_action* grib_action_create_set(grib_context* context, const char* name, grib_expression* expression, int nofail);
-/* action_class_set_darray.cc*/
+/* action_class_set_darray.cc */
grib_action* grib_action_create_set_darray(grib_context* context, const char* name, grib_darray* darray);
-/* action_class_set_sarray.cc*/
+/* action_class_set_sarray.cc */
grib_action* grib_action_create_set_sarray(grib_context* context, const char* name, grib_sarray* sarray);
-/* action_class_noop.cc*/
+/* action_class_noop.cc */
grib_action* grib_action_create_noop(grib_context* context, const char* fname);
-/* action_class_write.cc*/
+/* action_class_write.cc */
grib_action* grib_action_create_write(grib_context* context, const char* name, int append, int padtomultiple);
-/* action_class_print.cc*/
+/* action_class_print.cc */
grib_action* grib_action_create_print(grib_context* context, const char* name, char* outname);
-/* action_class_close.cc*/
+/* action_class_close.cc */
grib_action* grib_action_create_close(grib_context* context, char* filename);
-/* action_class_variable.cc*/
+/* action_class_variable.cc */
grib_action* grib_action_create_variable(grib_context* context, const char* name, const char* op, const long len, grib_arguments* params, grib_arguments* default_value, int flags, const char* name_space);
-/* action_class_modify.cc*/
+/* action_class_modify.cc */
grib_action* grib_action_create_modify(grib_context* context, const char* name, long flags);
-/* action_class_transient_darray.cc*/
+/* action_class_transient_darray.cc */
grib_action* grib_action_create_transient_darray(grib_context* context, const char* name, grib_darray* darray, int flags);
-/* grib_accessor.cc*/
+/* grib_accessor.cc */
void grib_accessor_dump(grib_accessor* a, grib_dumper* f);
int grib_pack_missing(grib_accessor* a);
-int grib_pack_zero(grib_accessor* a);
int grib_is_missing_internal(grib_accessor* a);
int grib_pack_double(grib_accessor* a, const double* v, size_t* len);
int grib_pack_float(grib_accessor* a, const float* v, size_t* len);
@@ -152,38 +151,32 @@ grib_accessor* grib_next_accessor(grib_accessor* a);
void grib_resize(grib_accessor* a, size_t new_size);
int grib_compare_accessors(grib_accessor* a1, grib_accessor* a2, int compare_flags);
int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_if_clash);
-int grib_accessor_replace_attribute(grib_accessor* a, grib_accessor* attr);
-int grib_accessor_delete_attribute(grib_accessor* a, const char* name);
-grib_accessor* grib_accessor_get_attribute_by_index(grib_accessor* a, int index);
-const char* grib_accessor_get_name(grib_accessor* a);
-grib_accessor* ecc__grib_accessor_get_attribute(grib_accessor* a, const char* name, int* index);
+grib_accessor* grib_accessor_get_attribute_index(grib_accessor* a, const char* name, int* index);
int grib_accessor_has_attributes(grib_accessor* a);
grib_accessor* grib_accessor_get_attribute(grib_accessor* a, const char* name);
grib_accessors_list* grib_accessors_list_create(grib_context* c);
void grib_accessors_list_push(grib_accessors_list* al, grib_accessor* a, int rank);
grib_accessors_list* grib_accessors_list_last(grib_accessors_list* al);
-grib_accessors_list* grib_accessors_list_find(grib_accessors_list* al, const grib_accessor* a);
void grib_accessors_list_delete(grib_context* c, grib_accessors_list* al);
-/* grib_concept.cc*/
+/* grib_concept.cc */
grib_concept_value* grib_concept_value_new(grib_context* c, const char* name, grib_concept_condition* conditions);
void grib_concept_value_delete(grib_context* c, grib_concept_value* v);
grib_concept_condition* grib_concept_condition_new(grib_context* c, const char* name, grib_expression* expression, grib_iarray* iarray);
void grib_concept_condition_delete(grib_context* c, grib_concept_condition* v);
-/* grib_hash_array.cc*/
+/* grib_hash_array.cc */
grib_hash_array_value* grib_integer_hash_array_value_new(grib_context* c, const char* name, grib_iarray* array);
-void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v);
-/* grib_bufr_descriptor.cc*/
+/* grib_bufr_descriptor.cc */
bufr_descriptor* grib_bufr_descriptor_new(grib_accessor* tables_accessor, int code, int silent, int* err);
bufr_descriptor* grib_bufr_descriptor_clone(bufr_descriptor* d);
-int grib_bufr_descriptor_set_code(grib_accessor* tables_accessor, int code, bufr_descriptor* v);
+int grib_bufr_descriptor_set_code(bufr_descriptor* v, int code);
void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale);
-int grib_bufr_descriptor_can_be_missing(bufr_descriptor* v);
+int grib_bufr_descriptor_can_be_missing(const bufr_descriptor* v);
void grib_bufr_descriptor_delete(bufr_descriptor* v);
-/* grib_bufr_descriptors_array.cc*/
+/* grib_bufr_descriptors_array.cc */
bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t size, size_t incsize);
bufr_descriptor* grib_bufr_descriptors_array_pop_front(bufr_descriptors_array* a);
bufr_descriptors_array* grib_bufr_descriptors_array_push(bufr_descriptors_array* v, bufr_descriptor* val);
@@ -193,7 +186,7 @@ void grib_bufr_descriptors_array_delete(bufr_descriptors_array* v);
void grib_bufr_descriptors_array_delete_array(bufr_descriptors_array* v);
size_t grib_bufr_descriptors_array_used_size(bufr_descriptors_array* v);
-/* grib_darray.cc*/
+/* grib_darray.cc */
void grib_darray_print(const char* title, const grib_darray* darray);
grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize);
grib_darray* grib_darray_push(grib_context* c, grib_darray* v, double val);
@@ -201,7 +194,7 @@ void grib_darray_delete(grib_context* c, grib_darray* v);
int grib_darray_is_constant(grib_darray* v, double epsilon);
size_t grib_darray_used_size(grib_darray* v);
-/* grib_sarray.cc*/
+/* grib_sarray.cc */
void grib_sarray_print(const char* title, const grib_sarray* sarray);
grib_sarray* grib_sarray_new(grib_context* c, size_t size, size_t incsize);
grib_sarray* grib_sarray_push(grib_context* c, grib_sarray* v, char* val);
@@ -210,13 +203,13 @@ void grib_sarray_delete_content(grib_context* c, grib_sarray* v);
char** grib_sarray_get_array(grib_context* c, grib_sarray* v);
size_t grib_sarray_used_size(grib_sarray* v);
-/* grib_oarray.cc*/
+/* grib_oarray.cc */
grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize);
grib_oarray* grib_oarray_push(grib_context* c, grib_oarray* v, void* val);
void grib_oarray_delete(grib_context* c, grib_oarray* v);
void* grib_oarray_get(grib_oarray* v, int i);
-/* grib_iarray.cc*/
+/* grib_iarray.cc */
void grib_iarray_print(const char* title, const grib_iarray* iarray);
grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize);
long grib_iarray_pop(grib_iarray* a);
@@ -227,7 +220,7 @@ void grib_iarray_delete_array(grib_iarray* v);
long* grib_iarray_get_array(grib_iarray* v);
size_t grib_iarray_used_size(grib_iarray* v);
-/* grib_vdarray.cc*/
+/* grib_vdarray.cc */
void grib_vdarray_print(const char* title, const grib_vdarray* vdarray);
grib_vdarray* grib_vdarray_new(grib_context* c, size_t size, size_t incsize);
grib_vdarray* grib_vdarray_push(grib_context* c, grib_vdarray* v, grib_darray* val);
@@ -235,7 +228,7 @@ void grib_vdarray_delete(grib_context* c, grib_vdarray* v);
void grib_vdarray_delete_content(grib_context* c, grib_vdarray* v);
size_t grib_vdarray_used_size(grib_vdarray* v);
-/* grib_vsarray.cc*/
+/* grib_vsarray.cc */
void grib_vsarray_print(const char* title, const grib_vsarray* vdarray);
grib_vsarray* grib_vsarray_new(grib_context* c, size_t size, size_t incsize);
grib_vsarray* grib_vsarray_push(grib_context* c, grib_vsarray* v, grib_sarray* val);
@@ -243,30 +236,20 @@ void grib_vsarray_delete(grib_context* c, grib_vsarray* v);
void grib_vsarray_delete_content(grib_context* c, grib_vsarray* v);
size_t grib_vsarray_used_size(grib_vsarray* v);
-/* grib_viarray.cc*/
+/* grib_viarray.cc */
void grib_viarray_print(const char* title, const grib_viarray* viarray);
grib_viarray* grib_viarray_new(grib_context* c, size_t size, size_t incsize);
grib_viarray* grib_viarray_push(grib_context* c, grib_viarray* v, grib_iarray* val);
void grib_viarray_delete(grib_context* c, grib_viarray* v);
void grib_viarray_delete_content(grib_context* c, grib_viarray* v);
-/* grib_accessor_class_ascii.cc*/
-
-/* grib_accessor_class_bit.cc*/
-
-/* grib_accessor_class_bitmap.cc*/
-
-/* grib_accessor_class_bits.cc*/
-
-/* grib_accessor_class_bits_per_value.cc*/
-
-/* grib_accessor_class_bufr_data_array.cc*/
+/* grib_accessor_class_bufr_data_array.cc */
grib_vsarray* accessor_bufr_data_array_get_stringValues(grib_accessor* a);
grib_accessors_list* accessor_bufr_data_array_get_dataAccessors(grib_accessor* a);
grib_trie_with_rank* accessor_bufr_data_array_get_dataAccessorsTrie(grib_accessor* a);
void accessor_bufr_data_array_set_unpackMode(grib_accessor* a, int unpackMode);
-/* grib_accessor_class_bufr_data_element.cc*/
+/* grib_accessor_class_bufr_data_element.cc */
void accessor_bufr_data_element_set_index(grib_accessor* a, long index);
void accessor_bufr_data_element_set_type(grib_accessor* a, int type);
void accessor_bufr_data_element_set_numberOfSubsets(grib_accessor* a, long numberOfSubsets);
@@ -277,47 +260,11 @@ void accessor_bufr_data_element_set_numericValues(grib_accessor* a, grib_vdarray
void accessor_bufr_data_element_set_stringValues(grib_accessor* a, grib_vsarray* stringValues);
void accessor_bufr_data_element_set_elementsDescriptorsIndex(grib_accessor* a, grib_viarray* elementsDescriptorsIndex);
-/* grib_accessor_class_bufr_elements_table.cc*/
+/* grib_accessor_class_bufr_elements_table.cc */
int bufr_descriptor_is_marker(bufr_descriptor* d);
bufr_descriptor* accessor_bufr_elements_table_get_descriptor(grib_accessor* a, int code, int* err);
-/* grib_accessor_class_bufr_group.cc*/
-
-/* grib_accessor_class_bufr_string_values.cc*/
-
-/* grib_accessor_class_pack_bufr_values.cc*/
-
-/* grib_accessor_class_bufr_extract_area_subsets.cc*/
-
-/* grib_accessor_class_bufr_extract_datetime_subsets.cc*/
-
-/* grib_accessor_class_group.cc*/
-
-/* grib_accessor_class_unpack_bufr_values.cc*/
-
-/* grib_accessor_class_non_alpha.cc*/
-
-/* grib_accessor_class_g1bitmap.cc*/
-
-/* grib_accessor_class_g2bitmap.cc*/
-
-/* grib_accessor_class_concept.cc*/
-
-/* grib_accessor_class_hash_array.cc*/
-
-/* grib_accessor_class_decimal_precision.cc*/
-
-/* grib_accessor_class_divdouble.cc*/
-
-/* grib_accessor_class_budgdate.cc*/
-
-/* grib_accessor_class_validity_date.cc*/
-
-/* grib_accessor_class_validity_time.cc*/
-
-/* grib_accessor_class_bytes.cc*/
-
-/* grib_accessor_class.cc*/
+/* grib_accessor_class.cc */
grib_section* grib_create_root_section(const grib_context* context, grib_handle* h);
grib_accessor* grib_accessor_factory(grib_section* p, grib_action* creator, const long len, grib_arguments* params);
void grib_push_accessor(grib_accessor* a, grib_block_of_accessors* l);
@@ -327,325 +274,47 @@ int grib_get_block_length(grib_section* s, size_t* l);
grib_accessor* find_paddings(grib_section* s);
void grib_update_paddings(grib_section* s);
-/* grib_accessor_class_change_scanning_direction.cc*/
-
-/* grib_accessor_class_change_scanning_direction.cc*/
-
-/* grib_accessor_class_check_internal_version.cc*/
-
-/* grib_accessor_class_codeflag.cc*/
-
-/* grib_accessor_class_smart_table.cc*/
+/* grib_accessor_class_smart_table.cc */
void grib_smart_table_delete(grib_context* c);
-/* grib_accessor_class_smart_table_column.cc*/
-
-/* grib_accessor_class_codetable.cc*/
+/* grib_accessor_class_codetable.cc */
void grib_codetable_delete(grib_context* c);
+int codes_codetable_get_contents_malloc(const grib_handle* h, const char* key, code_table_entry** entries, size_t* num_entries);
+int codes_codetable_check_code_figure(const grib_handle* h, const char* key, long code_figure);
+int codes_codetable_check_abbreviation(const grib_handle* h, const char* key, const char* abbreviation);
-/* grib_accessor_class_codetable_units.cc*/
-
-/* grib_accessor_class_codetable_title.cc*/
-
-/* grib_accessor_class_count_file.cc*/
-
-/* grib_accessor_class_count_total.cc*/
-
-/* grib_accessor_class_double.cc*/
-
-/* grib_accessor_class_element.cc*/
-
-/* grib_accessor_class_evaluate.cc*/
-
-/* grib_accessor_class_g1date.cc*/
-
-/* grib_accessor_class_g1monthlydate.cc*/
-
-/* grib_accessor_class_library_version.cc*/
-
-/* grib_accessor_class_when.cc*/
-
-/* grib_accessor_class_g1verificationdate.cc*/
-
-/* grib_accessor_class_g1day_of_the_year_date.cc*/
-
-/* grib_accessor_class_g1_half_byte_codeflag.cc*/
-
-/* grib_accessor_class_g1forecastmonth.cc*/
-
-/* grib_accessor_class_g1step_range.cc*/
+/* grib_accessor_class_g1step_range.cc */
int grib_g1_step_get_steps(grib_accessor* a, long* start, long* theEnd);
-/* grib_accessor_class_g2step_range.cc*/
-
-/* grib_accessor_class_data_g22order_packing.cc*/
-
-/* grib_accessor_class_mars_step.cc*/
-
-/* grib_accessor_class_message_copy.cc*/
-
-/* grib_accessor_class_dictionary.cc*/
-
-/* grib_accessor_class_latlon_increment.cc*/
-
-/* grib_accessor_class_g2date.cc*/
-
-/* grib_accessor_class_g2level.cc*/
-
-/* grib_accessor_class_g2end_step.cc*/
-
-/* grib_accessor_class_g2latlon.cc*/
-
-/* grib_accessor_class_g2lon.cc*/
-
-/* grib_accessor_class_global_gaussian.cc*/
-
-/* grib_accessor_class_gaussian_grid_name.cc*/
-
-/* grib_accessor_class_gen.cc*/
-
-/* grib_accessor_class_gts_header.cc*/
-
-/* grib_accessor_class_ifs_param.cc*/
-
-/* grib_accessor_class_uint16.cc*/
-
-/* grib_accessor_class_uint32.cc*/
-
-/* grib_accessor_class_uint32_little_endian.cc*/
-
-/* grib_accessor_class_uint64.cc*/
-
-/* grib_accessor_class_uint64_little_endian.cc*/
-
-/* grib_accessor_class_uint8.cc*/
-
-/* grib_accessor_class_blob.cc*/
-
-/* grib_accessor_class_julian_day.cc*/
-
-/* grib_accessor_class_julian_date.cc*/
-
-/* grib_accessor_class_latlonvalues.cc*/
-
-/* grib_accessor_class_latitudes.cc*/
-
-/* grib_accessor_class_longitudes.cc*/
-
-/* grib_accessor_class_octahedral_gaussian.cc*/
-
-/* grib_accessor_class_offset_file.cc*/
-
-/* grib_accessor_class_scale.cc*/
-
-/* grib_accessor_class_rdbtime_guess_date.cc*/
-
-/* grib_accessor_class_from_scale_factor_scaled_value.cc*/
-
-/* grib_accessor_class_g2bitmap_present.cc*/
-
-/* grib_accessor_class_ibmfloat.cc*/
-
-/* grib_accessor_class_ieeefloat.cc*/
-
-/* grib_accessor_class_constant.cc*/
-
-/* grib_accessor_class_iterator.cc*/
+/* grib_accessor_class_iterator.cc */
grib_iterator* grib_iterator_new(const grib_handle* h, unsigned long flags, int* error);
-/* grib_accessor_class_message.cc*/
-
-/* grib_accessor_class_nearest.cc*/
+/* grib_accessor_class_nearest.cc */
grib_nearest* grib_nearest_new(const grib_handle* h, int* error);
-/* grib_accessor_class_ksec1expver.cc*/
-
-/* grib_accessor_class_label.cc*/
-
-/* grib_accessor_class_long.cc*/
-
-/* grib_accessor_class_lookup.cc*/
-
-/* grib_accessor_class_octet_number.cc*/
-
-/* grib_accessor_class_headers_only.cc*/
-
-/* grib_accessor_class_padding.cc*/
-
-/* grib_accessor_class_pad.cc*/
-
-/* grib_accessor_class_padto.cc*/
-
-/* grib_accessor_class_padtoeven.cc*/
-
-/* grib_accessor_class_padtomultiple.cc*/
-
-/* grib_accessor_class_section_padding.cc*/
-
-/* grib_accessor_class_section_pointer.cc*/
-
-/* grib_accessor_class_position.cc*/
-
-/* grib_accessor_class_signed.cc*/
-
-/* grib_accessor_class_signed_bits.cc*/
-
-/* grib_accessor_class_section.cc*/
-
-/* grib_accessor_class_step_in_units.cc*/
-
-/* grib_accessor_class_section_length.cc*/
-
-/* grib_accessor_class_g1_message_length.cc*/
+/* grib_accessor_class_g1_message_length.cc */
int grib_get_g1_message_size(grib_handle* h, grib_accessor* tl, grib_accessor* s4, long* total_length, long* sec4_len);
-/* grib_accessor_class_g1_section4_length.cc*/
-
-/* grib_accessor_class_size.cc*/
-
-/* grib_accessor_class_scale_values.cc*/
-
-/* grib_accessor_class_offset_values.cc*/
-
-/* grib_accessor_class_sprintf.cc*/
-
-/* grib_accessor_class_getenv.cc*/
-
-/* grib_accessor_class_round.cc*/
-
-/* grib_accessor_class_spectral_truncation.cc*/
-
-/* grib_accessor_class_time.cc*/
-
-/* grib_accessor_class_transient.cc*/
-
-/* grib_accessor_class_values.cc*/
-
-/* grib_accessor_class_simple_packing_error.cc*/
-
-/* grib_accessor_class_data_simple_packing.cc*/
-
-/* grib_accessor_class_data_ccsds_packing.cc*/
-
-/* grib_accessor_class_count_missing.cc*/
-
-/* grib_accessor_class_data_sh_packed.cc*/
-
-/* grib_accessor_class_data_sh_unpacked.cc*/
-
-/* grib_accessor_class_number_of_values_data_raw_packing.cc*/
-
-/* grib_accessor_class_data_g1simple_packing.cc*/
-
-/* grib_accessor_class_data_g1shsimple_packing.cc*/
-
-/* grib_accessor_class_data_shsimple_packing.cc*/
-
-/* grib_accessor_class_data_dummy_field.cc*/
-
-/* grib_accessor_class_variable.cc*/
+/* grib_accessor_class_variable.cc */
void accessor_variable_set_type(grib_accessor* a, int type);
-/* grib_accessor_class_second_order_bits_per_value.cc*/
-
-/* grib_accessor_class_data_g2simple_packing.cc*/
-
-/* grib_accessor_class_data_g2simple_packing_with_preprocessing.cc*/
-
-/* grib_accessor_class_data_g2shsimple_packing.cc*/
-
-/* grib_accessor_class_data_g2complex_packing.cc*/
-
-/* grib_accessor_class_data_g1second_order_row_by_row_packing.cc*/
-
-/* grib_accessor_class_data_g1second_order_constant_width_packing.cc*/
-
-/* grib_accessor_class_data_g1second_order_general_packing.cc*/
-
-/* grib_accessor_class_data_g1second_order_general_extended_packing.cc*/
-
-/* grib_accessor_class_g2grid.cc*/
-
-/* grib_accessor_class_unexpanded_descriptors.cc*/
-
-/* grib_accessor_class_expanded_descriptors.cc*/
+/* grib_accessor_class_expanded_descriptors.cc */
int grib_accessor_class_expanded_descriptors_set_do_expand(grib_accessor* a, long do_expand);
bufr_descriptors_array* grib_accessor_class_expanded_descriptors_get_expanded(grib_accessor* a, int* err);
-/* grib_accessor_class_bufrdc_expanded_descriptors.cc*/
-
-/* grib_accessor_class_data_apply_bitmap.cc*/
-
-/* grib_accessor_class_data_apply_boustrophedonic.cc*/
-
-/* grib_accessor_class_data_apply_boustrophedonic_bitmap.cc*/
-
-/* grib_accessor_class_data_secondary_bitmap.cc*/
-
-/* grib_accessor_class_data_g1secondary_bitmap.cc*/
-
-/* grib_accessor_class_data_g2secondary_bitmap.cc*/
-
-/* grib_accessor_class_data_jpeg2000_packing.cc*/
-
-/* grib_accessor_class_data_png_packing.cc*/
-
-/* grib_accessor_class_data_raw_packing.cc*/
-
-/* grib_accessor_class_data_complex_packing.cc*/
-
-/* grib_accessor_class_data_g1complex_packing.cc*/
-
-/* grib_accessor_class_gds_not_present_bitmap.cc*/
-
-/* grib_accessor_class_gds_is_present.cc*/
-
-/* grib_accessor_class_select_step_template.cc*/
-
-/* grib_accessor_class_local_definition.cc*/
-
-/* grib_accessor_class_g2_eps.cc*/
-
-/* grib_accessor_class_g2_aerosol.cc*/
-
-/* grib_accessor_class_g2_chemical.cc*/
-
-/* grib_accessor_class_g2_mars_labeling.cc*/
-
-/* grib_accessor_class_transient_darray.cc*/
-
-/* grib_accessor_class_md5.cc*/
-
-/* grib_jasper_encoding.cc*/
+/* grib_jasper_encoding.cc */
int grib_jasper_decode(grib_context* c, unsigned char* buf, const size_t* buflen, double* values, const size_t* n_vals);
int grib_jasper_encode(grib_context* c, j2k_encode_helper* helper);
-/* grib_openjpeg_encoding.cc*/
+/* grib_openjpeg_encoding.cc */
int grib_openjpeg_decode(grib_context* c, unsigned char* buf, const size_t* buflen, double* values, const size_t* n_vals);
int grib_openjpeg_encode(grib_context* c, j2k_encode_helper* helper);
-/* action_class_set_missing.cc*/
+/* action_class_set_missing.cc */
grib_action* grib_action_create_set_missing(grib_context* context, const char* name);
-/* grib_accessor_class_number_of_points.cc*/
-
-/* grib_accessor_class_suppressed.cc*/
-
-/* grib_index.cc*/
+/* grib_index.cc */
int grib_index_compress(grib_index* index);
-int grib_read_uchar(FILE* fh, unsigned char* val);
-int grib_read_short(FILE* fh, short* val);
-int grib_read_long(FILE* fh, long* val);
-int grib_read_unsigned_long(FILE* fh, unsigned long* val);
-int grib_write_uchar(FILE* fh, unsigned char val);
-int grib_write_short(FILE* fh, short val);
-int grib_write_long(FILE* fh, long val);
-int grib_write_unsigned_long(FILE* fh, unsigned long val);
-int grib_write_string(FILE* fh, const char* s);
-int grib_write_identifier(FILE* fh, const char* id);
-int grib_write_null_marker(FILE* fh);
-int grib_write_not_null_marker(FILE* fh);
-char* grib_read_string(grib_context* c, FILE* fh, int* err);
grib_field_tree* grib_read_field_tree(grib_context* c, FILE* fh, grib_file** files, int* err);
grib_index* grib_index_new(grib_context* c, const char* key, int* err);
void grib_index_delete(grib_index* index);
@@ -653,7 +322,6 @@ int grib_index_write(grib_index* index, const char* filename);
grib_index* grib_index_read(grib_context* c, const char* filename, int* err);
int grib_index_search_same(grib_index* index, grib_handle* h);
int grib_index_add_file(grib_index* index, const char* filename);
-int ecc__codes_index_add_file(grib_index* index, const char* filename, int message_type);
grib_index* grib_index_new_from_file(grib_context* c, const char* filename, const char* keys, int* err);
int grib_index_get_size(const grib_index* index, const char* key, size_t* size);
int grib_index_get_string(const grib_index* index, const char* key, char** values, size_t* size);
@@ -663,76 +331,33 @@ int grib_index_select_long(grib_index* index, const char* skey, long value);
int grib_index_select_double(grib_index* index, const char* skey, double value);
int grib_index_select_string(grib_index* index, const char* skey, const char* value);
grib_handle* codes_index_get_handle(grib_field* field, int message_type, int* err);
-int grib_index_dump_file(FILE* fout, const char* filename);
-void grib_index_dump(FILE* fout, grib_index* index);
+int grib_index_dump_file(FILE* fout, const char* filename, unsigned long flags);
+void grib_index_dump(FILE* fout, grib_index* index, unsigned long flags);
char* grib_get_field_file(grib_index* index, off_t* offset);
grib_handle* grib_handle_new_from_index(grib_index* index, int* err);
grib_handle* codes_new_from_index(grib_index* index, int message_type, int* err);
-void grib_index_rewind(grib_index* index);
int codes_index_set_product_kind(grib_index* index, ProductKind product_kind);
int codes_index_set_unpack_bufr(grib_index* index, int unpack);
int is_index_file(const char* filename);
-/* grib_accessor_class_number_of_points_gaussian.cc*/
-
-/* grib_accessor_class_number_of_values.cc*/
-
-/* grib_accessor_class_number_of_coded_values.cc*/
-
-/* grib_accessor_class_g1number_of_coded_values_sh_complex.cc*/
-
-/* grib_accessor_class_g1number_of_coded_values_sh_simple.cc*/
-
-/* grib_accessor_class_dirty.cc*/
-
-/* grib_accessor_class_statistics.cc*/
-
-/* grib_accessor_class_statistics_spectral.cc*/
-
-/* grib_accessor_class_unsigned.cc*/
+/* grib_accessor_class_unsigned.cc */
int pack_long_unsigned_helper(grib_accessor* a, const long* val, size_t* len, int check);
-/* grib_accessor_class_unsigned_bits.cc*/
-
-/* grib_accessor_class_raw.cc*/
+/* grib_accessor_class_raw.cc */
void accessor_raw_set_length(grib_accessor* a, size_t len);
long accessor_raw_get_offset(grib_accessor* a);
-/* grib_accessor_class_bufr_extract_subsets.cc*/
-
-/* grib_accessor_class_bufr_simple_thinning.cc*/
-
-/* grib_accessor_class_spd.cc*/
-
-/* grib_accessor_class_sum.cc*/
-
-/* grib_accessor_class_to_integer.cc*/
-
-/* grib_accessor_class_to_double.cc*/
-
-/* grib_accessor_class_to_string.cc*/
-
-/* grib_accessor_class_sexagesimal2decimal.cc*/
-
-/* grib_accessor_class_vector.cc*/
-
-/* grib_accessor_class_long_vector.cc*/
-
-/* grib_gaussian_reduced.cc*/
+/* grib_gaussian_reduced.cc */
void grib_get_reduced_row_wrapper(grib_handle* h, long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last);
void grib_get_reduced_row_legacy(long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last);
void grib_get_reduced_row(long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last);
void grib_get_reduced_row_p(long pl, double lon_first, double lon_last, long* npoints, double* olon_first, double* olon_last);
-/* grib_accessor_class_abstract_vector.cc*/
-
-/* grib_accessor_class_abstract_long_vector.cc*/
-
-/* grib_loader_from_handle.cc*/
+/* grib_loader_from_handle.cc */
int grib_lookup_long_from_handle(grib_context* gc, grib_loader* loader, const char* name, long* value);
int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_arguments* default_value);
-/* grib_bits.cc*/
+/* grib_bits.cc */
unsigned long grib_decode_unsigned_byte_long(const unsigned char* p, long o, int l);
long grib_decode_signed_long(const unsigned char* p, long o, int l);
int grib_encode_signed_long(unsigned char* p, long val, long o, int l);
@@ -742,7 +367,7 @@ void grib_set_bit(unsigned char* p, long bitp, int val);
long grib_decode_signed_longb(const unsigned char* p, long* bitp, long nbits);
int grib_encode_signed_longb(unsigned char* p, long val, long* bitp, long nb);
-/* grib_timer.cc*/
+/* grib_timer.cc */
double proc_cpu(void);
char* timename(double t);
grib_timer* grib_get_timer(grib_context* c, const char* name, const char* statname, int elapsed);
@@ -755,7 +380,7 @@ void grib_timer_partial_rate(grib_timer* t, double start, long total);
void grib_print_all_timers(void);
void grib_reset_all_timers(void);
-/* grib_ibmfloat.cc*/
+/* grib_ibmfloat.cc */
unsigned long grib_ibm_to_long(double x);
double grib_ibmfloat_error(double x);
double grib_long_to_ibm(unsigned long x);
@@ -764,7 +389,7 @@ double grib_ibm_table_v(unsigned long e);
unsigned long grib_ibm_nearest_smaller_to_long(double x);
int grib_nearest_smaller_ibm_float(double a, double* ret);
-/* grib_ieeefloat.cc*/
+/* grib_ieeefloat.cc */
unsigned long grib_ieee_to_long(double x);
double grib_ieeefloat_error(double x);
double grib_long_to_ieee(unsigned long x);
@@ -778,9 +403,7 @@ double grib_long_to_ieee64(unsigned long x);
//int grib_ieee_decode_array_float(grib_context* c, unsigned char* buf, size_t nvals, int bytes, float* val);
int grib_ieee_encode_array(grib_context* c, double* val, size_t nvals, int bytes, unsigned char* buf);
-/* grib_accessor_class_reference_value_error.cc*/
-
-/* grib_memory.cc*/
+/* grib_memory.cc */
void* grib_transient_malloc(const grib_context* c, size_t s);
void* grib_transient_realloc(const grib_context* c, void* p, size_t s);
void grib_transient_free(const grib_context* c, void* p);
@@ -791,8 +414,7 @@ void* grib_buffer_malloc(const grib_context* c, size_t s);
void grib_buffer_free(const grib_context* c, void* p);
void* grib_buffer_realloc(const grib_context* c, void* p, size_t s);
-/* grib_buffer.cc*/
-void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b);
+/* grib_buffer.cc */
grib_buffer* grib_create_growable_buffer(const grib_context* c);
grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, size_t buflen);
void grib_buffer_delete(const grib_context* c, grib_buffer* b);
@@ -800,10 +422,10 @@ void grib_grow_buffer(const grib_context* c, grib_buffer* b, size_t new_size);
void grib_buffer_set_ulength_bits(const grib_context* c, grib_buffer* b, size_t length_bits);
void grib_buffer_set_ulength(const grib_context* c, grib_buffer* b, size_t length);
void grib_recompute_sections_lengths(grib_section* s);
-void grib_buffer_replace(grib_accessor* a, const unsigned char* data, size_t newsize, int update_lengths, int update_paddings);
+int grib_buffer_replace(grib_accessor* a, const unsigned char* data, size_t newsize, int update_lengths, int update_paddings);
void grib_update_sections_lengths(grib_handle* h);
-/* grib_dumper.cc*/
+/* grib_dumper.cc */
void grib_init_dumper(grib_dumper* d);
void grib_dumper_delete(grib_dumper* d);
void grib_dump_long(grib_dumper* d, grib_accessor* a, const char* comment);
@@ -818,37 +440,7 @@ void grib_dump_values(grib_dumper* d, grib_accessor* a);
void grib_dump_header(grib_dumper* d, const grib_handle* h);
void grib_dump_footer(grib_dumper* d, const grib_handle* h);
-/* grib_dumper_class_serialize.cc*/
-
-/* grib_dumper_class_debug.cc*/
-
-/* grib_dumper_class_default.cc*/
-
-/* grib_dumper_class_bufr_encode_C.cc*/
-
-/* grib_dumper_class_bufr_encode_filter.cc*/
-
-/* grib_dumper_class_bufr_encode_fortran.cc*/
-
-/* grib_dumper_class_bufr_encode_python.cc*/
-
-/* grib_dumper_class_bufr_decode_C.cc*/
-
-/* grib_dumper_class_bufr_decode_filter.cc*/
-
-/* grib_dumper_class_bufr_decode_fortran.cc*/
-
-/* grib_dumper_class_bufr_decode_python.cc*/
-
-/* grib_dumper_class_bufr_simple.cc*/
-
-/* grib_dumper_class_json.cc*/
-
-/* grib_dumper_class_grib_encode_C.cc*/
-
-/* grib_dumper_class_wmo.cc*/
-
-/* grib_dumper_class.cc*/
+/* grib_dumper_class.cc */
grib_dumper* grib_dumper_factory(const char* op, const grib_handle* h, FILE* out, unsigned long option_flags, void* arg);
void grib_dump_accessors_block(grib_dumper* dumper, grib_block_of_accessors* block);
void grib_dump_accessors_list(grib_dumper* dumper, grib_accessors_list* al);
@@ -858,7 +450,7 @@ void grib_dump_keys(grib_handle* h, FILE* f, const char* mode, unsigned long fla
grib_dumper* grib_dump_content_with_dumper(grib_handle* h, grib_dumper* dumper, FILE* f, const char* mode, unsigned long flags, void* data);
void codes_dump_bufr_flat(grib_accessors_list* al, grib_handle* h, FILE* f, const char* mode, unsigned long flags, void* data);
-/* grib_context.cc*/
+/* grib_context.cc */
size_t grib_context_read(const grib_context* c, void* ptr, size_t size, void* stream);
off_t grib_context_tell(const grib_context* c, void* stream);
int grib_context_seek(const grib_context* c, off_t offset, int whence, void* stream);
@@ -918,14 +510,14 @@ void grib_gts_header_off(grib_context* c);
void grib_multi_support_on(grib_context* c);
void grib_multi_support_off(grib_context* c);
-/* grib_date.cc*/
+/* grib_date.cc */
int grib_julian_to_datetime(double jd, long* year, long* month, long* day, long* hour, long* minute, long* second);
int grib_datetime_to_julian(long year, long month, long day, long hour, long minute, long second, double* jd);
int grib_datetime_to_julian_d(long year, long month, long day, long hour, long minute, double second, double* jd);
long grib_julian_to_date(long jdate);
long grib_date_to_julian(long ddate);
-/* grib_fieldset.cc*/
+/* grib_fieldset.cc */
int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type);
grib_fieldset* grib_fieldset_new_from_files(grib_context* c, const char* filenames[], int nfiles, const char** keys, int nkeys, const char* where_string, const char* order_by_string, int* err);
int grib_fieldset_apply_where(grib_fieldset* set, const char* where_string);
@@ -938,9 +530,8 @@ grib_handle* grib_fieldset_next_handle(grib_fieldset* set, int* err);
int grib_fieldset_count(const grib_fieldset* set);
grib_handle* grib_fieldset_retrieve(grib_fieldset* set, int i, int* err);
-/* grib_filepool.cc*/
+/* grib_filepool.cc */
void grib_file_pool_clean(void);
-grib_file* grib_file_pool_get_files(void);
grib_file* grib_file_open(const char* filename, const char* mode, int* err);
void grib_file_pool_delete_file(grib_file* file);
void grib_file_close(const char* filename, int force, int* err);
@@ -948,14 +539,14 @@ void grib_file_close_all(int* err);
grib_file* grib_get_file(const char* filename, int* err);
void grib_file_delete(grib_file* file);
-/* grib_geography.cc*/
+/* grib_geography.cc */
int grib_get_gaussian_latitudes(long trunc, double* lats);
int is_gaussian_global(double lat1, double lat2, double lon1, double lon2, long num_points_equator, const double* latitudes, double angular_precision);
void rotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon);
void unrotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon);
double geographic_distance_spherical(double radius, double lon1, double lat1, double lon2, double lat2);
-/* grib_handle.cc*/
+/* grib_handle.cc */
grib_section* grib_section_create(grib_handle* h, grib_accessor* owner);
void grib_swap_sections(grib_section* the_old, grib_section* the_new);
void grib_empty_section(grib_context* c, grib_section* b);
@@ -997,20 +588,20 @@ int codes_check_message_header(const void* bytes, size_t length, ProductKind pro
int codes_check_message_footer(const void* bytes, size_t length, ProductKind product);
int grib_get_message_size(const grib_handle* h, size_t* size);
int grib_get_message(const grib_handle* h, const void** msg, size_t* size);
-int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size);
+int grib_get_message_headers(const grib_handle* h, const void** msg, size_t* size);
grib_action* grib_action_from_filter(const char* filter);
int grib_handle_apply_action(grib_handle* h, grib_action* a);
void grib_multi_support_reset_file(grib_context* c, FILE* f);
void grib_multi_support_reset(grib_context* c);
-/* grib_hash_keys.cc*/
+/* grib_hash_keys.cc */
const struct grib_keys_hash* grib_keys_hash_get(const char* str, size_t len);
grib_itrie* grib_hash_keys_new(grib_context* c, int* count);
void grib_hash_keys_delete(grib_itrie* t);
int grib_hash_keys_get_id(grib_itrie* t, const char* key);
int grib_hash_keys_get_size(grib_itrie* t);
-/* grib_io.cc*/
+/* grib_io.cc */
off_t stdio_tell(void* data);
int stdio_seek(void* data, off_t len);
int stdio_seek_from_start(void* data, off_t len);
@@ -1019,8 +610,6 @@ int wmo_read_any_from_file(FILE* f, void* buffer, size_t* len);
int wmo_read_grib_from_file(FILE* f, void* buffer, size_t* len);
int wmo_read_bufr_from_file(FILE* f, void* buffer, size_t* len);
int wmo_read_gts_from_file(FILE* f, void* buffer, size_t* len);
-int wmo_read_taf_from_file(FILE* f, void* buffer, size_t* len);
-int wmo_read_metar_from_file(FILE* f, void* buffer, size_t* len);
int wmo_read_any_from_file_fast(FILE* f, size_t* msg_len, off_t* msg_offset);
int wmo_read_grib_from_file_fast(FILE* f, size_t* msg_len, off_t* msg_offset);
int wmo_read_bufr_from_file_fast(FILE* f, size_t* msg_len, off_t* msg_offset);
@@ -1039,10 +628,12 @@ int grib_read_any_from_memory_alloc(grib_context* ctx, unsigned char** data, siz
int grib_read_any_from_memory(grib_context* ctx, unsigned char** data, size_t* data_length, void* buffer, size_t* len);
int grib_count_in_file(grib_context* c, FILE* f, int* n);
int grib_count_in_filename(grib_context* c, const char* filename, int* n);
-int codes_extract_offsets_malloc(grib_context* c, const char* filename, ProductKind product, off_t** offsets, int* length, int strict_mode);
+int codes_extract_offsets_malloc(grib_context* c, const char* filename, ProductKind product, off_t** offsets, int* num_messages, int strict_mode);
+int codes_extract_offsets_sizes_malloc(grib_context* c, const char* filename, ProductKind product,
+ off_t** offsets, size_t** sizes, int* num_messages, int strict_mode);
-/* grib_trie.cc*/
+/* grib_trie.cc */
grib_trie* grib_trie_new(grib_context* c);
void grib_trie_delete_container(grib_trie* t);
void grib_trie_delete(grib_trie* t);
@@ -1051,24 +642,24 @@ void* grib_trie_insert(grib_trie* t, const char* key, void* data);
void* grib_trie_insert_no_replace(grib_trie* t, const char* key, void* data);
void* grib_trie_get(grib_trie* t, const char* key);
-/* grib_trie_with_rank.cc*/
+/* grib_trie_with_rank.cc */
grib_trie_with_rank* grib_trie_with_rank_new(grib_context* c);
void grib_trie_with_rank_delete_container(grib_trie_with_rank* t);
int grib_trie_with_rank_insert(grib_trie_with_rank* t, const char* key, void* data);
void* grib_trie_with_rank_get(grib_trie_with_rank* t, const char* key, int rank);
-/* grib_itrie.cc*/
+/* grib_itrie.cc */
grib_itrie* grib_itrie_new(grib_context* c, int* count);
void grib_itrie_delete(grib_itrie* t);
int grib_itrie_get_id(grib_itrie* t, const char* key);
int grib_itrie_insert(grib_itrie* t, const char* key);
int grib_itrie_get_size(grib_itrie* t);
-/* grib_rules.cc*/
+/* grib_rules.cc */
grib_rule_entry* grib_new_rule_entry(grib_context* c, const char* name, grib_expression* expression);
grib_rule* grib_new_rule(grib_context* c, grib_expression* condition, grib_rule_entry* entries);
-/* grib_keys_iterator.cc*/
+/* grib_keys_iterator.cc */
grib_keys_iterator* grib_keys_iterator_new(grib_handle* h, unsigned long filter_flags, const char* name_space);
int grib_keys_iterator_set_flags(grib_keys_iterator* ki, unsigned long flags);
int grib_keys_iterator_rewind(grib_keys_iterator* ki);
@@ -1083,7 +674,7 @@ int grib_keys_iterator_get_string(const grib_keys_iterator* kiter, char* v, size
int grib_keys_iterator_get_bytes(const grib_keys_iterator* kiter, unsigned char* v, size_t* len);
int grib_keys_iterator_get_native_type(const grib_keys_iterator* kiter);
-/* bufr_keys_iterator.cc*/
+/* bufr_keys_iterator.cc */
bufr_keys_iterator* codes_bufr_keys_iterator_new(grib_handle* h, unsigned long filter_flags);
bufr_keys_iterator* codes_bufr_data_section_keys_iterator_new(grib_handle* h);
int codes_bufr_keys_iterator_rewind(bufr_keys_iterator* ki);
@@ -1092,7 +683,7 @@ char* codes_bufr_keys_iterator_get_name(const bufr_keys_iterator* kiter);
grib_accessor* codes_bufr_keys_iterator_get_accessor(bufr_keys_iterator* kiter);
int codes_bufr_keys_iterator_delete(bufr_keys_iterator* kiter);
-/* grib_parse_utils.cc*/
+/* grib_parse_utils.cc */
int grib_recompose_name(grib_handle* h, grib_accessor* observer, const char* uname, char* fname, int fail);
int grib_accessors_list_print(grib_handle* h, grib_accessors_list* al, const char* name, int type, const char* format, const char* separator, int maxcols, int* newline, FILE* out);
int grib_recompose_print(grib_handle* h, grib_accessor* observer, const char* uname, int fail, FILE* out);
@@ -1106,32 +697,31 @@ grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char*
grib_action* grib_parse_file(grib_context* gc, const char* filename);
int grib_type_to_int(char id);
-/* grib_query.cc*/
+/* grib_query.cc */
grib_accessors_list* grib_find_accessors_list(const grib_handle* h, const char* name);
char* grib_split_name_attribute(grib_context* c, const char* name, char* attribute_name);
grib_accessor* grib_find_accessor(const grib_handle* h, const char* name);
-grib_accessor* grib_find_attribute(grib_handle* h, const char* name, const char* attr_name, int* err);
grib_accessor* grib_find_accessor_fast(grib_handle* h, const char* name);
-/* grib_scaling.cc*/
+/* grib_scaling.cc */
double grib_power(long s, long n);
long grib_get_binary_scale_fact(double max, double min, long bpval, int* error);
-/* grib_templates.cc*/
-grib_handle* codes_external_template(grib_context* c, ProductKind product_kind, const char* name);
-char* get_external_template_path(grib_context* c, const char* name);
+/* grib_templates.cc */
+grib_handle* codes_external_sample(grib_context* c, ProductKind product_kind, const char* name);
+char* get_external_sample_path(grib_context* c, const char* name);
-/* grib_dependency.cc*/
+/* grib_dependency.cc */
grib_handle* grib_handle_of_accessor(const grib_accessor* a);
void grib_dependency_add(grib_accessor* observer, grib_accessor* observed);
void grib_dependency_remove_observed(grib_accessor* observed);
-int ecc__grib_dependency_notify_change(grib_handle* h, grib_accessor* observed);
+int grib_dependency_notify_change_h(grib_handle* h, grib_accessor* observed);
int grib_dependency_notify_change(grib_accessor* observed);
void grib_dependency_remove_observer(grib_accessor* observer);
void grib_dependency_observe_expression(grib_accessor* observer, grib_expression* e);
void grib_dependency_observe_arguments(grib_accessor* observer, grib_arguments* a);
-/* grib_value.cc*/
+/* grib_value.cc */
int grib_set_expression(grib_handle* h, const char* name, grib_expression* e);
int grib_set_long_internal(grib_handle* h, const char* name, long val);
int grib_set_long(grib_handle* h, const char* name, long val);
@@ -1141,12 +731,12 @@ int grib_set_double(grib_handle* h, const char* name, double val);
int grib_set_string_internal(grib_handle* h, const char* name, const char* val, size_t* length);
int grib_set_string(grib_handle* h, const char* name, const char* val, size_t* length);
int grib_set_string_array(grib_handle* h, const char* name, const char** val, size_t length);
-int grib_set_bytes_internal(grib_handle* h, const char* name, const unsigned char* val, size_t* length);
int grib_set_bytes(grib_handle* h, const char* name, const unsigned char* val, size_t* length);
int grib_set_missing(grib_handle* h, const char* name);
int grib_is_missing_long(grib_accessor* a, long x);
int grib_is_missing_double(grib_accessor* a, double x);
int grib_is_missing_string(grib_accessor* a, const unsigned char* x, size_t len);
+int grib_accessor_can_be_missing(grib_accessor* a, int* err);
int grib_accessor_is_missing(grib_accessor* a, int* err);
int grib_is_missing(const grib_handle* h, const char* name, int* err);
int grib_is_defined(const grib_handle* h, const char* name);
@@ -1160,8 +750,6 @@ int grib_set_float_array(grib_handle* h, const char* name, const float* val, siz
int grib_set_long_array_internal(grib_handle* h, const char* name, const long* val, size_t length);
int grib_set_long_array(grib_handle* h, const char* name, const long* val, size_t length);
int grib_get_long_internal(grib_handle* h, const char* name, long* val);
-int grib_is_in_dump(grib_handle* h, const char* name);
-int grib_attributes_count(grib_accessor* a, size_t* size);
int grib_get_long(const grib_handle* h, const char* name, long* val);
int grib_get_double_internal(grib_handle* h, const char* name, double* val);
int grib_get_double(const grib_handle* h, const char* name, double* val);
@@ -1178,92 +766,83 @@ int grib_get_double_elements(const grib_handle* h, const char* name, const int*
int grib_get_float_elements(const grib_handle* h, const char* name, const int* index_array, long len, float* val_array);
int grib_get_string_internal(grib_handle* h, const char* name, char* val, size_t* length);
int grib_get_string(const grib_handle* h, const char* name, char* val, size_t* length);
-int grib_get_bytes_internal(const grib_handle* h, const char* name, unsigned char* val, size_t* length);
int grib_get_bytes(const grib_handle* h, const char* name, unsigned char* val, size_t* length);
int grib_get_native_type(const grib_handle* h, const char* name, int* type);
-int ecc__grib_get_double_array_internal(const grib_handle* h, grib_accessor* a, double* val, size_t buffer_len, size_t* decoded_length);
int grib_get_double_array_internal(const grib_handle* h, const char* name, double* val, size_t* length);
int grib_get_double_array(const grib_handle* h, const char* name, double* val, size_t* length);
int grib_get_float_array_internal(const grib_handle* h, const char* name, float* val, size_t* length);
int grib_get_float_array(const grib_handle* h, const char* name, float* val, size_t* length);
-int ecc__grib_get_string_length(grib_accessor* a, size_t* size);
+int grib_get_string_length_acc(grib_accessor* a, size_t* size);
int grib_get_string_length(const grib_handle* h, const char* name, size_t* size);
-int ecc__grib_get_size(const grib_handle* h, grib_accessor* a, size_t* size);
+int grib_get_size_acc(const grib_handle* h, grib_accessor* a, size_t* size);
int grib_get_size(const grib_handle* h, const char* name, size_t* size);
int grib_get_length(const grib_handle* h, const char* name, size_t* length);
int grib_get_offset(const grib_handle* h, const char* key, size_t* val);
-int ecc__grib_get_string_array_internal(const grib_handle* h, grib_accessor* a, char** val, size_t buffer_len, size_t* decoded_length);
int grib_get_string_array(const grib_handle* h, const char* name, char** val, size_t* length);
-int ecc__grib_get_long_array_internal(const grib_handle* h, grib_accessor* a, long* val, size_t buffer_len, size_t* decoded_length);
int grib_get_long_array_internal(grib_handle* h, const char* name, long* val, size_t* length);
int grib_get_long_array(const grib_handle* h, const char* name, long* val, size_t* length);
-grib_key_value_list* grib_key_value_list_clone(grib_context* c, grib_key_value_list* list);
-void grib_key_value_list_delete(grib_context* c, grib_key_value_list* kvl);
-int grib_get_key_value_list(grib_handle* h, grib_key_value_list* list);
-int grib_get_values(grib_handle* h, grib_values* args, size_t count);
int grib_set_values(grib_handle* h, grib_values* args, size_t count);
int grib_get_nearest_smaller_value(grib_handle* h, const char* name, double val, double* nearest);
-void grib_print_values(const char* title, grib_values* values);
+void grib_print_values(const char* title, grib_values* values, FILE* out);
int grib_values_check(grib_handle* h, grib_values* values, int count);
-int grib_key_equal(grib_handle* h1, grib_handle* h2, const char* key, int type, int* err);
int codes_copy_key(grib_handle* h1, grib_handle* h2, const char* key, int type);
int codes_compare_key(grib_handle* h1, grib_handle* h2, const char* key, int compare_flags);
-/* grib_errors.cc*/
+/* grib_errors.cc */
const char* grib_get_error_message(int code);
void grib_check(const char* call, const char* file, int line, int e, const char* msg);
-/* grib_expression_class_binop.cc*/
+/* grib_expression_class_binop.cc */
grib_expression* new_binop_expression(grib_context* c, grib_binop_long_proc long_func, grib_binop_double_proc double_func, grib_expression* left, grib_expression* right);
-/* grib_expression_class_logical_and.cc*/
+/* grib_expression_class_logical_and.cc */
grib_expression* new_logical_and_expression(grib_context* c, grib_expression* left, grib_expression* right);
-/* grib_expression_class_logical_or.cc*/
+/* grib_expression_class_logical_or.cc */
grib_expression* new_logical_or_expression(grib_context* c, grib_expression* left, grib_expression* right);
-/* grib_expression_class_is_in_dict.cc*/
+/* grib_expression_class_is_in_dict.cc */
grib_expression* new_is_in_dict_expression(grib_context* c, const char* name, const char* list);
-/* grib_expression_class_true.cc*/
+/* grib_expression_class_true.cc */
grib_expression* new_true_expression(grib_context* c);
-/* grib_expression_class_string_compare.cc*/
+/* grib_expression_class_string_compare.cc */
grib_expression* new_string_compare_expression(grib_context* c, grib_expression* left, grib_expression* right);
-/* grib_expression_class_unop.cc*/
+/* grib_expression_class_unop.cc */
grib_expression* new_unop_expression(grib_context* c, grib_unop_long_proc long_func, grib_unop_double_proc double_func, grib_expression* exp);
-/* grib_expression_class_functor.cc*/
+/* grib_expression_class_functor.cc */
grib_expression* new_func_expression(grib_context* c, const char* name, grib_arguments* args);
-/* grib_expression_class_accessor.cc*/
+/* grib_expression_class_accessor.cc */
grib_expression* new_accessor_expression(grib_context* c, const char* name, long start, size_t length);
-/* grib_expression_class_is_in_list.cc*/
+/* grib_expression_class_is_in_list.cc */
grib_expression* new_is_in_list_expression(grib_context* c, const char* name, const char* list);
-/* grib_expression_class_is_integer.cc*/
+/* grib_expression_class_is_integer.cc */
grib_expression* new_is_integer_expression(grib_context* c, const char* name, int start, int length);
-/* grib_expression_class_length.cc*/
+/* grib_expression_class_length.cc */
grib_expression* new_length_expression(grib_context* c, const char* name);
-/* grib_expression_class_long.cc*/
+/* grib_expression_class_long.cc */
grib_expression* new_long_expression(grib_context* c, long value);
-/* grib_expression_class_double.cc*/
+/* grib_expression_class_double.cc */
grib_expression* new_double_expression(grib_context* c, double value);
-/* grib_expression_class_string.cc*/
+/* grib_expression_class_string.cc */
grib_expression* new_string_expression(grib_context* c, const char* value);
-/* grib_expression_class_sub_string.cc*/
+/* grib_expression_class_sub_string.cc */
grib_expression* new_sub_string_expression(grib_context* c, const char* value, size_t start, size_t length);
-/* grib_nearest.cc*/
+/* grib_nearest.cc */
int grib_nearest_find(grib_nearest* nearest, const grib_handle* h, double inlat, double inlon, unsigned long flags, double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len);
int grib_nearest_init(grib_nearest* i, grib_handle* h, grib_arguments* args);
int grib_nearest_delete(grib_nearest* i);
@@ -1279,28 +858,10 @@ int grib_nearest_find_generic(grib_nearest* nearest, grib_handle* h, double inla
double** out_distances,
double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len);
-/* grib_nearest_class.cc*/
+/* grib_nearest_class.cc */
grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args, int* error);
-/* grib_nearest_class_gen.cc*/
-
-/* grib_nearest_class_regular.cc*/
-
-/* grib_nearest_class_reduced.cc*/
-
-/* grib_nearest_class_latlon_reduced.cc*/
-
-/* grib_nearest_class_lambert_conformal.cc*/
-
-/* grib_nearest_class_polar_stereographic.cc*/
-
-/* grib_iterator_class_polar_stereographic.cc*/
-
-/* grib_iterator_class_lambert_azimuthal_equal_area.cc*/
-
-/* grib_iterator_class_lambert_conformal.cc*/
-
-/* grib_iterator.cc*/
+/* grib_iterator.cc */
int grib_get_data(const grib_handle* h, double* lats, double* lons, double* values);
int grib_iterator_next(grib_iterator* i, double* lat, double* lon, double* value);
int grib_iterator_has_next(grib_iterator* i);
@@ -1309,25 +870,13 @@ int grib_iterator_reset(grib_iterator* i);
int grib_iterator_init(grib_iterator* i, grib_handle* h, grib_arguments* args);
int grib_iterator_delete(grib_iterator* i);
-/* grib_iterator_class.cc*/
+/* grib_iterator_class.cc */
grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* error);
-/* grib_iterator_class_gaussian.cc*/
-
-/* grib_iterator_class_gaussian_reduced.cc*/
-
-/* grib_iterator_class_latlon_reduced.cc*/
-
-/* grib_iterator_class_gen.cc*/
+/* grib_iterator_class_gen.cc */
int transform_iterator_data(grib_context* c, double* data, long iScansNegatively, long jScansPositively, long jPointsAreConsecutive, long alternativeRowScanning, size_t numPoints, long nx, long ny);
-/* grib_iterator_class_latlon.cc*/
-
-/* grib_iterator_class_regular.cc*/
-
-/* grib_iterator_class_space_view.cc*/
-
-/* grib_expression.cc*/
+/* grib_expression.cc */
int grib_expression_native_type(grib_handle* h, grib_expression* g);
int grib_expression_evaluate_long(grib_handle* h, grib_expression* g, long* result);
int grib_expression_evaluate_double(grib_handle* h, grib_expression* g, double* result);
@@ -1336,7 +885,6 @@ const char* grib_expression_get_name(grib_expression* g);
void grib_expression_print(grib_context* ctx, grib_expression* g, grib_handle* f);
void grib_expression_free(grib_context* ctx, grib_expression* g);
void grib_expression_add_dependency(grib_expression* e, grib_accessor* observer);
-int grib_expression_set_value(grib_handle* h, grib_expression* g, grib_values* v);
grib_arguments* grib_arguments_new(grib_context* c, grib_expression* g, grib_arguments* n);
void grib_arguments_free(grib_context* c, grib_arguments* g);
void grib_arguments_print(grib_context* c, grib_arguments* g, grib_handle* f);
@@ -1347,7 +895,7 @@ double grib_arguments_get_double(grib_handle* h, grib_arguments* args, int n);
grib_expression* grib_arguments_get_expression(grib_handle* h, grib_arguments* args, int n);
int grib_arguments_get_count(grib_arguments* args);
-/* codes_util.cc*/
+/* codes_util.cc */
double normalise_longitude_in_degrees(double lon);
char get_dir_separator_char(void);
int path_is_regular_file(const char* path);
@@ -1356,9 +904,10 @@ char* codes_getenv(const char* name);
int codes_check_grib_ieee_packing_value(int value);
int codes_flush_sync_close_file(FILE* f);
int is_date_valid(long year, long month, long day, long hour, long minute, double second);
+int is_time_valid(long number); // number is HHMM
int compute_scaled_value_and_scale_factor(double input, int64_t scaled_value_max, int64_t scale_factor_max, int64_t* ret_value, int64_t* ret_factor);
-/* grib_util.cc*/
+/* grib_util.cc */
grib_handle* grib_util_sections_copy(grib_handle* hfrom, grib_handle* hto, int what, int* err);
grib_string_list* grib_util_get_param_id(const char* mars_param);
grib_string_list* grib_util_get_mars_param(const char* param_id);
@@ -1372,12 +921,12 @@ int grib2_is_PDTN_Aerosol(long productDefinitionTemplateNumber);
int grib2_is_PDTN_AerosolOptical(long productDefinitionTemplateNumber);
int grib2_select_PDTN(int is_eps, int is_instant, int is_chemical, int is_chemical_srcsink, int is_chemical_distfn, int is_aerosol, int is_aerosol_optical);
size_t sum_of_pl_array(const long* pl, size_t plsize);
-int grib_is_earth_oblate(grib_handle* h);
-int grib_check_data_values_range(grib_handle* h, const double min_val, const double max_val);
-int grib_producing_large_constant_fields(grib_handle* h, int edition);
+int grib_is_earth_oblate(const grib_handle* h);
+int grib_check_data_values_minmax(grib_handle* h, const double min_val, const double max_val);
+int grib_producing_large_constant_fields(const grib_handle* h, int edition);
int grib_util_grib_data_quality_check(grib_handle* h, double min_val, double max_val);
-/* bufr_util.cc*/
+/* bufr_util.cc */
int compute_bufr_key_rank(grib_handle* h, grib_string_list* keys, const char* key);
char** codes_bufr_copy_data_return_copied_keys(grib_handle* hin, grib_handle* hout, size_t* nkeys, int* err);
int codes_bufr_copy_data(grib_handle* hin, grib_handle* hout);
@@ -1385,8 +934,9 @@ int codes_bufr_extract_headers_malloc(grib_context* c, const char* filename, cod
int codes_bufr_header_get_string(codes_bufr_header* bh, const char* key, char* val, size_t* len);
int codes_bufr_key_is_header(const grib_handle* h, const char* key, int* err);
int codes_bufr_key_is_coordinate(const grib_handle* h, const char* key, int* err);
+int codes_bufr_key_exclude_from_dump(const char* key);
-/* string_util.cc*/
+/* string_util.cc */
int strcmp_nocase(const char* s1, const char* s2);
void string_rtrim(char* s);
void string_lrtrim(char** x, int do_left, int do_right);
@@ -1400,13 +950,11 @@ const char* grib_get_type_name(int type);
char* string_replace_char(char* str, char oldc, char newc);
void string_remove_char(char* str, char c);
-/* functions.cc*/
+/* functions.cc */
long grib_op_eq(long a, long b);
long grib_op_ne(long a, long b);
long grib_op_lt(long a, long b);
long grib_op_gt(long a, long b);
-long grib_op_and(long a, long b);
-long grib_op_or(long a, long b);
long grib_op_ge(long a, long b);
long grib_op_le(long a, long b);
long grib_op_bit(long a, long b);
@@ -1431,20 +979,18 @@ double grib_op_gt_d(double a, double b);
double grib_op_ge_d(double a, double b);
double grib_op_le_d(double a, double b);
-/* codes_memfs.cc*/
+/* codes_memfs.cc */
FILE* codes_fopen(const char* name, const char* mode);
int codes_access(const char* name, int mode);
-/* grib_accessor_class_data_g2bifourier_packing.cc*/
-
-/* grib_optimize_decimal_factor.cc*/
+/* grib_optimize_decimal_factor.cc */
int grib_optimize_decimal_factor(grib_accessor* a, const char* reference_value, const double pmax, const double pmin, const int knbit, const int compat_gribex, const int compat_32bit, long* kdec, long* kbin, double* ref);
-/* grib_api_version.cc*/
+/* grib_api_version.cc */
const char* grib_get_git_sha1(void);
const char* codes_get_build_date(void);
-/* grib_bits_any_endian.cc*/
+/* grib_bits_any_endian.cc */
int grib_is_all_bits_one(int64_t val, long nbits);
int grib_encode_string(unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, const char* string);
char* grib_decode_string(const unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, char* string);
@@ -1455,7 +1001,7 @@ int grib_encode_unsigned_longb(unsigned char* p, unsigned long val, long* bitp,
int grib_encode_size_tb(unsigned char* p, size_t val, long* bitp, long nb);
-/* grib_bits_any_endian_simple.cc*/
+/* grib_bits_any_endian_simple.cc */
int grib_decode_long_array(const unsigned char* p, long* bitp, long bitsPerValue, size_t n_vals, long* val);
//int grib_decode_double_array(const unsigned char* p, long* bitp, long bitsPerValue, double reference_value, double s, double d, size_t n_vals, double* val);
//int grib_decode_float_array(const unsigned char* p, long* bitp, long bitsPerValue, double reference_value, double s, double d, size_t n_vals, float* val);
diff --git a/src/expression.class b/src/expression.class
index 9c11d39db..64c9a2e70 100644
--- a/src/expression.class
+++ b/src/expression.class
@@ -1,20 +1,14 @@
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void init(grib_expression* e);
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void init(grib_expression* e);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_NAME{
grib_expression base;
@@ -28,7 +22,6 @@ static grib_expression_class _grib_expression_class_NAME = {
"NAME", /* name */
sizeof(grib_expression_NAME),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
&init, /* constructor */
&destroy, /* destructor */
&print,
@@ -44,8 +37,3 @@ grib_expression_class* grib_expression_class_NAME = &_grib_expression_class_NAME
ADD_TO_FILE grib_expression_class.h extern grib_expression_class* grib_expression_class_NAME;
ADD_TO_FILE grib_expression_factory.h { "NAME", &grib_expression_class_NAME, },
-
-static void init_class(grib_expression_class* c)
-{
-INIT
-}
diff --git a/src/functions.cc b/src/functions.cc
index 9680d07bd..6c6bba770 100644
--- a/src/functions.cc
+++ b/src/functions.cc
@@ -27,14 +27,14 @@ long grib_op_gt(long a, long b)
{
return a > b;
}
-long grib_op_and(long a, long b)
-{
- return a && b;
-}
-long grib_op_or(long a, long b)
-{
- return a || b;
-}
+// long grib_op_and(long a, long b)
+// {
+// return a && b;
+// }
+// long grib_op_or(long a, long b)
+// {
+// return a || b;
+// }
long grib_op_ge(long a, long b)
{
return a >= b;
@@ -43,7 +43,6 @@ long grib_op_le(long a, long b)
{
return a <= b;
}
-
long grib_op_bit(long a, long b)
{
return a & (1 << b);
@@ -52,7 +51,6 @@ long grib_op_bitoff(long a, long b)
{
return !grib_op_bit(a, b);
}
-
long grib_op_not(long a)
{
return !a;
@@ -61,15 +59,14 @@ long grib_op_neg(long a)
{
return -a;
}
-
double grib_op_neg_d(double a)
{
return -a;
}
+// Note: This is actually 'a' to the power 'b'
long grib_op_pow(long a, long b)
{
- /* Note: This is actually 'a' to the power 'b' */
return codes_power(b, a);
}
@@ -93,7 +90,6 @@ long grib_op_modulo(long a, long b)
{
return a % b;
}
-
double grib_op_mul_d(double a, double b)
{
return a * b;
@@ -102,7 +98,6 @@ double grib_op_div_d(double a, double b)
{
return a / b;
}
-
double grib_op_add_d(double a, double b)
{
return a + b;
@@ -111,7 +106,6 @@ double grib_op_sub_d(double a, double b)
{
return a - b;
}
-
double grib_op_eq_d(double a, double b)
{
return a == b;
diff --git a/src/grib_accessor.cc b/src/grib_accessor.cc
index 58cf51c0e..a08f5348e 100644
--- a/src/grib_accessor.cc
+++ b/src/grib_accessor.cc
@@ -10,13 +10,12 @@
/***************************************************************************
* Jean Baptiste Filippi - 01.11.2005
- * Enrico Fucile
***************************************************************************/
#include "grib_accessor.h"
-/* Note: A fast cut-down version of strcmp which does NOT return -1 */
-/* 0 means input strings are equal and 1 means not equal */
+// Note: A fast cut-down version of strcmp which does NOT return -1
+// 0 means input strings are equal and 1 means not equal
GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b)
{
if (*a != *b)
@@ -44,7 +43,7 @@ void grib_accessor_dump(grib_accessor* a, grib_dumper* f)
int grib_pack_missing(grib_accessor* a)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->pack_missing) {
return c->pack_missing(a);
@@ -55,24 +54,24 @@ int grib_pack_missing(grib_accessor* a)
return 0;
}
-int grib_pack_zero(grib_accessor* a)
-{
- grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
- while (c) {
- if (c->clear) {
- return c->clear(a);
- }
- c = c->super ? *(c->super) : NULL;
- }
- DEBUG_ASSERT(0);
- return 0;
-}
+// int grib_pack_zero(grib_accessor* a)
+// {
+// grib_accessor_class* c = a->cclass;
+// while (c) {
+// if (c->clear) {
+// return c->clear(a);
+// }
+// c = c->super ? *(c->super) : NULL;
+// }
+// DEBUG_ASSERT(0);
+// return 0;
+// }
int grib_is_missing_internal(grib_accessor* a)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ // grib_context_log(a->context, GRIB_LOG_DEBUG,
+ // "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->is_missing) {
return c->is_missing(a);
@@ -86,7 +85,7 @@ int grib_is_missing_internal(grib_accessor* a)
int grib_pack_double(grib_accessor* a, const double* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->pack_double) {
return c->pack_double(a, v, len);
@@ -113,7 +112,7 @@ int grib_pack_float(grib_accessor* a, const float* v, size_t* len)
int grib_pack_expression(grib_accessor* a, grib_expression* e)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->pack_expression) {
return c->pack_expression(a, e);
@@ -127,7 +126,7 @@ int grib_pack_expression(grib_accessor* a, grib_expression* e)
int grib_pack_string(grib_accessor* a, const char* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (string) %s",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?v:"(null)");*/
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (string) %s",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?v:"(null)");
while (c) {
if (c->pack_string) {
return c->pack_string(a, v, len);
@@ -141,7 +140,7 @@ int grib_pack_string(grib_accessor* a, const char* v, size_t* len)
int grib_pack_string_array(grib_accessor* a, const char** v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (string) %s",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?v:"(null)");*/
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (string) %s",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?v:"(null)");
while (c) {
if (c->pack_string_array) {
return c->pack_string_array(a, v, len);
@@ -155,7 +154,7 @@ int grib_pack_string_array(grib_accessor* a, const char** v, size_t* len)
int grib_pack_long(grib_accessor* a, const long* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->pack_long) {
return c->pack_long(a, v, len);
@@ -169,7 +168,7 @@ int grib_pack_long(grib_accessor* a, const long* v, size_t* len)
int grib_pack_bytes(grib_accessor* a, const unsigned char* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (bytes) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (bytes) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->pack_bytes) {
return c->pack_bytes(a, v, len);
@@ -183,7 +182,7 @@ int grib_pack_bytes(grib_accessor* a, const unsigned char* v, size_t* len)
int grib_unpack_bytes(grib_accessor* a, unsigned char* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (bytes)",(a->parent->owner)?(a->parent->owner->name):"root", a->name ); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (bytes)",(a->parent->owner)?(a->parent->owner->name):"root", a->name);
while (c) {
if (c->unpack_bytes) {
return c->unpack_bytes(a, v, len);
@@ -210,7 +209,7 @@ int grib_unpack_double_subarray(grib_accessor* a, double* v, size_t start, size_
int grib_unpack_double(grib_accessor* a, double* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (double)",(a->parent->owner)?(a->parent->owner->name):"root", a->name ); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (double)",(a->parent->owner)?(a->parent->owner->name):"root", a->name);
while (c) {
if (c->unpack_double) {
return c->unpack_double(a, v, len);
@@ -225,7 +224,7 @@ int grib_unpack_float(grib_accessor* a, float* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
while (c) {
- /* printf("grib_accessor.c grib_unpack_float:: c->name=%s\n",c->name); */
+ //printf("grib_accessor.c grib_unpack_float:: c->name=%s\n",c->name);
if (c->unpack_float) {
return c->unpack_float(a, v, len);
}
@@ -260,20 +259,19 @@ int grib_unpack_double_element(grib_accessor* a, size_t i, double* v)
}
int grib_unpack_float_element(grib_accessor* a, size_t i, float* v)
{
- /* grib_accessor_class* c = a->cclass;
- * while (c) {
- * if (c->unpack_float_element) {
- * return c->unpack_float_element(a, i, v);
- * }
- * c = c->super ? *(c->super) : NULL;
- * }
- */
+ // grib_accessor_class* c = a->cclass;
+ // while (c) {
+ // if (c->unpack_float_element) {
+ // return c->unpack_float_element(a, i, v);
+ // }
+ // c = c->super ? *(c->super) : NULL;
+ //}
+
return GRIB_NOT_IMPLEMENTED;
}
-/* Get the values for the indices passed in.
- * The length of the 'index_array' argument should be 'len' and 'val_array' should also contain at least 'len' elements
- */
+// Get the values for the indices passed in.
+// The length of the 'index_array' argument should be 'len' and 'val_array' should also contain at least 'len' elements
int grib_unpack_double_element_set(grib_accessor* a, const size_t* index_array, size_t len, double* val_array)
{
grib_accessor_class* c = a->cclass;
@@ -288,23 +286,22 @@ int grib_unpack_double_element_set(grib_accessor* a, const size_t* index_array,
}
int grib_unpack_float_element_set(grib_accessor* a, const size_t* index_array, size_t len, float* val_array)
{
- /*
- *grib_accessor_class* c = a->cclass;
- *DEBUG_ASSERT(len > 0);
- *while (c) {
- * if (c->unpack_float_element_set) {
- * return c->unpack_float_element_set(a, index_array, len, val_array);
- * }
- * c = c->super ? *(c->super) : NULL;
- *}
- */
+ // grib_accessor_class* c = a->cclass;
+ // DEBUG_ASSERT(len > 0);
+ // while (c) {
+ // if (c->unpack_float_element_set) {
+ // return c->unpack_float_element_set(a, index_array, len, val_array);
+ // }
+ // c = c->super ? *(c->super) : NULL;
+ // }
+
return GRIB_NOT_IMPLEMENTED;
}
int grib_unpack_string(grib_accessor* a, char* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /* grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (string)",(a->parent->owner)?(a->parent->owner->name):"root", a->name ); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (string)",(a->parent->owner)?(a->parent->owner->name):"root", a->name );
while (c) {
if (c->unpack_string) {
return c->unpack_string(a, v, len);
@@ -399,7 +396,7 @@ int grib_accessors_list_unpack_string(grib_accessors_list* al, char** val, size_
int grib_unpack_long(grib_accessor* a, long* v, size_t* len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (long)",(a->parent->owner)?(a->parent->owner->name):"root", a->name ); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is unpacking (long)",(a->parent->owner)?(a->parent->owner->name):"root", a->name );
while (c) {
if (c->unpack_long) {
return c->unpack_long(a, v, len);
@@ -428,7 +425,8 @@ long grib_accessor_get_native_type(grib_accessor* a)
long grib_get_next_position_offset(grib_accessor* a)
{
grib_accessor_class* c = NULL;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is checking next (long)",(a->parent->owner)?(a->parent->owner->name):"root", a->name ); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG,
+ // "(%s)%s is checking next (long)",(a->parent->owner)?(a->parent->owner->name):"root", a->name );
if (a)
c = a->cclass;
@@ -528,13 +526,12 @@ int grib_accessor_notify_change(grib_accessor* a, grib_accessor* changed)
c = c->super ? *(c->super) : NULL;
}
if (a && a->cclass)
- printf("notify_change not implemented for %s %s\n", a->cclass->name, a->name);
+ fprintf(stderr, "Error: notify_change not implemented for %s %s\n", a->cclass->name, a->name);
DEBUG_ASSERT(0);
return 0;
}
-/* For this one, ALL init are called */
-
+// For this one, ALL init are called
static void init_accessor(grib_accessor_class* c, grib_accessor* a, const long len, grib_arguments* args)
{
if (c) {
@@ -550,27 +547,26 @@ void grib_init_accessor(grib_accessor* a, const long len, grib_arguments* args)
init_accessor(a->cclass, a, len, args);
}
-/* For this one, ALL destroy are called */
-
+// For this one, ALL destroy are called
void grib_accessor_delete(grib_context* ct, grib_accessor* a)
{
grib_accessor_class* c = a->cclass;
while (c) {
grib_accessor_class* s = c->super ? *(c->super) : NULL;
- /*printf("grib_accessor_delete: before destroy a=%p c->name=%s ==> a->name=%s\n", (void*)a, c->name, a->name);*/
+ //printf("grib_accessor_delete: before destroy a=%p c->name=%s ==> a->name=%s\n", (void*)a, c->name, a->name);
if (c->destroy) {
c->destroy(ct, a);
}
c = s;
}
- /*printf("grib_accessor_delete before free a=%p\n", (void*)a);*/
+ // printf("grib_accessor_delete before free a=%p\n", (void*)a);
grib_context_free(ct, a);
}
grib_accessor* grib_accessor_clone(grib_accessor* a, grib_section* s, int* err)
{
grib_accessor_class* c = a->cclass;
- grib_context* ct = a->context;
+ const grib_context* ct = a->context;
while (c) {
grib_accessor_class* super = c->super ? *(c->super) : NULL;
grib_context_log(ct, GRIB_LOG_DEBUG, "clone %s ==> %s", c->name, a->name);
@@ -585,7 +581,8 @@ grib_accessor* grib_accessor_clone(grib_accessor* a, grib_section* s, int* err)
void grib_update_size(grib_accessor* a, size_t len)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG,
+ // "(%s)%s is packing (double) %g",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->update_size) {
c->update_size(a, len);
@@ -613,7 +610,8 @@ int grib_nearest_smaller_value(grib_accessor* a, double val, double* nearest)
size_t grib_preferred_size(grib_accessor* a, int from_handle)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ // grib_context_log(a->context, GRIB_LOG_DEBUG,
+ // "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->preferred_size) {
return c->preferred_size(a, from_handle);
@@ -640,7 +638,8 @@ grib_accessor* grib_next_accessor(grib_accessor* a)
void grib_resize(grib_accessor* a, size_t new_size)
{
grib_accessor_class* c = a->cclass;
- /*grib_context_log(a->context, GRIB_LOG_DEBUG, "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0); */
+ //grib_context_log(a->context, GRIB_LOG_DEBUG,
+ // "(%s)%s is packing (long) %d",(a->parent->owner)?(a->parent->owner->name):"root", a->name ,v?(*v):0);
while (c) {
if (c->resize) {
c->resize(a, new_size);
@@ -703,7 +702,7 @@ int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_
grib_accessor* aloc = a;
if (grib_accessor_has_attributes(a)) {
- same = ecc__grib_accessor_get_attribute(a, attr->name, &id);
+ same = grib_accessor_get_attribute_index(a, attr->name, &id);
}
if (same) {
@@ -714,11 +713,11 @@ int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_
for (id = 0; id < MAX_ACCESSOR_ATTRIBUTES; id++) {
if (aloc->attributes[id] == NULL) {
- /* attr->parent=a->parent; */
+ // attr->parent=a->parent;
aloc->attributes[id] = attr;
attr->parent_as_attribute = aloc;
if (aloc->same)
- attr->same = ecc__grib_accessor_get_attribute(aloc->same, attr->name, &idx);
+ attr->same = grib_accessor_get_attribute_index(aloc->same, attr->name, &idx);
grib_context_log(a->context, GRIB_LOG_DEBUG, "added attribute %s->%s", a->name, attr->name);
return GRIB_SUCCESS;
@@ -727,50 +726,49 @@ int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_
return GRIB_TOO_MANY_ATTRIBUTES;
}
-int grib_accessor_replace_attribute(grib_accessor* a, grib_accessor* attr)
-{
- int id = 0;
- int idx = 0;
- if (ecc__grib_accessor_get_attribute(a, attr->name, &id) != NULL) {
- grib_accessor_delete(a->context, a->attributes[id]);
- a->attributes[id] = attr;
- attr->parent_as_attribute = a;
- if (a->same)
- attr->same = ecc__grib_accessor_get_attribute(a->same, attr->name, &idx);
- }
- else {
- grib_accessor_add_attribute(a, attr, 0);
- }
- return GRIB_SUCCESS;
-}
+// int grib_accessor_replace_attribute(grib_accessor* a, grib_accessor* attr)
+// {
+// int id = 0;
+// int idx = 0;
+// if (grib_accessor_get_attribute_index(a, attr->name, &id) != NULL) {
+// grib_accessor_delete(a->context, a->attributes[id]);
+// a->attributes[id] = attr;
+// attr->parent_as_attribute = a;
+// if (a->same)
+// attr->same = grib_accessor_get_attribute_index(a->same, attr->name, &idx);
+// }
+// else {
+// grib_accessor_add_attribute(a, attr, 0);
+// }
+// return GRIB_SUCCESS;
+// }
-int grib_accessor_delete_attribute(grib_accessor* a, const char* name)
-{
- int id = 0;
- if (ecc__grib_accessor_get_attribute(a, name, &id) != NULL) {
- grib_accessor_delete(a->context, a->attributes[id]);
- a->attributes[id] = NULL;
- return GRIB_SUCCESS;
- }
- else {
- return GRIB_NOT_FOUND;
- }
-}
+// int grib_accessor_delete_attribute(grib_accessor* a, const char* name)
+// {
+// int id = 0;
+// if (grib_accessor_get_attribute_index(a, name, &id) != NULL) {
+// grib_accessor_delete(a->context, a->attributes[id]);
+// a->attributes[id] = NULL;
+// return GRIB_SUCCESS;
+// }
+// else {
+// return GRIB_NOT_FOUND;
+// }
+// }
-grib_accessor* grib_accessor_get_attribute_by_index(grib_accessor* a, int index)
-{
- if (index < MAX_ACCESSOR_ATTRIBUTES)
- return a->attributes[index];
+// grib_accessor* grib_accessor_get_attribute_by_index(grib_accessor* a, int index)
+// {
+// if (index < MAX_ACCESSOR_ATTRIBUTES)
+// return a->attributes[index];
+// return NULL;
+// }
- return NULL;
-}
+// const char* grib_accessor_get_name(grib_accessor* a)
+// {
+// return a->name;
+// }
-const char* grib_accessor_get_name(grib_accessor* a)
-{
- return a->name;
-}
-
-grib_accessor* ecc__grib_accessor_get_attribute(grib_accessor* a, const char* name, int* index)
+grib_accessor* grib_accessor_get_attribute_index(grib_accessor* a, const char* name, int* index)
{
int i = 0;
while (i < MAX_ACCESSOR_ATTRIBUTES && a->attributes[i]) {
@@ -799,14 +797,14 @@ grib_accessor* grib_accessor_get_attribute(grib_accessor* a, const char* name)
while (*(p + 1) != '\0' && (*p != '-' || *(p + 1) != '>'))
p++;
if (*(p + 1) == '\0') {
- return ecc__grib_accessor_get_attribute(a, name, &index);
+ return grib_accessor_get_attribute_index(a, name, &index);
}
else {
size_t size = p - name;
attribute_name = p + 2;
basename = (char*)grib_context_malloc_clear(a->context, size + 1);
basename = (char*)memcpy(basename, name, size);
- acc = ecc__grib_accessor_get_attribute(a, basename, &index);
+ acc = grib_accessor_get_attribute_index(a, basename, &index);
grib_context_free(a->context, basename);
if (acc)
return grib_accessor_get_attribute(acc, attribute_name);
@@ -823,7 +821,7 @@ grib_accessors_list* grib_accessors_list_create(grib_context* c)
void grib_accessors_list_push(grib_accessors_list* al, grib_accessor* a, int rank)
{
grib_accessors_list* last;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
last = grib_accessors_list_last(al);
if (last && last->accessor) {
@@ -842,32 +840,27 @@ void grib_accessors_list_push(grib_accessors_list* al, grib_accessor* a, int ran
grib_accessors_list* grib_accessors_list_last(grib_accessors_list* al)
{
- /*grib_accessors_list* last=al;*/
- /*grib_accessors_list* next=al->next;*/
-
- /*
- while(next) {
- last=next;
- next=last->next;
- }
- */
+ // grib_accessors_list* last=al;
+ // grib_accessors_list* next=al->next;
+ // while(next) {
+ // last=next;
+ // next=last->next;
+ // }
return al->last;
}
-grib_accessors_list* grib_accessors_list_find(grib_accessors_list* al, const grib_accessor* a)
-{
- grib_accessors_list* last = al;
- grib_accessors_list* next = al->next;
-
- while (next) {
- if (last->accessor == a)
- return last;
- last = next;
- next = last->next;
- }
-
- return NULL;
-}
+// grib_accessors_list* grib_accessors_list_find(grib_accessors_list* al, const grib_accessor* a)
+// {
+// grib_accessors_list* last = al;
+// grib_accessors_list* next = al->next;
+// while (next) {
+// if (last->accessor == a)
+// return last;
+// last = next;
+// next = last->next;
+// }
+// return NULL;
+// }
void grib_accessors_list_delete(grib_context* c, grib_accessors_list* al)
{
@@ -875,7 +868,7 @@ void grib_accessors_list_delete(grib_context* c, grib_accessors_list* al)
while (al) {
tmp = al->next;
- /*grib_accessor_delete(c, al->accessor);*/
+ //grib_accessor_delete(c, al->accessor);
grib_context_free(c, al);
al = tmp;
}
diff --git a/src/grib_accessor_class.cc b/src/grib_accessor_class.cc
index 06da7e830..9cdd04b97 100644
--- a/src/grib_accessor_class.cc
+++ b/src/grib_accessor_class.cc
@@ -71,8 +71,6 @@ static struct table_entry table[] = {
};
#endif /* ACCESSOR_FACTORY_USE_TRIE */
-#define NUMBER(x) (sizeof(x) / sizeof(x[0]))
-
grib_section* grib_create_root_section(const grib_context* context, grib_handle* h)
{
char* fpath = 0;
@@ -113,7 +111,7 @@ static GRIB_INLINE grib_accessor_class* get_class(grib_context* c, char* type)
if ((the_class = (grib_accessor_class**)grib_trie_get(c->classes, type)) != NULL)
return *(the_class);
- table_count = NUMBER(table);
+ const int table_count = sizeof(table) / sizeof(table[0]);
for (i = 0; i < table_count; i++) {
if (grib_inline_strcmp(type, table[i].type) == 0) {
grib_trie_insert(c->classes, type, table[i].cclass);
@@ -228,7 +226,7 @@ static void link_same_attributes(grib_accessor* a, grib_accessor* b)
if (!grib_accessor_has_attributes(b))
return;
while (i < MAX_ACCESSOR_ATTRIBUTES && a->attributes[i]) {
- bAttribute = ecc__grib_accessor_get_attribute(b, a->attributes[i]->name, &idx);
+ bAttribute = grib_accessor_get_attribute_index(b, a->attributes[i]->name, &idx);
if (bAttribute)
a->attributes[i]->same = bAttribute;
i++;
@@ -322,7 +320,8 @@ int grib_section_adjust_sizes(grib_section* s, int update, int depth)
if (update) {
plen = length;
lret = grib_pack_long(s->aclength, &plen, &len);
- Assert(lret == GRIB_SUCCESS);
+ if (lret != GRIB_SUCCESS)
+ return lret;
s->padding = 0;
}
else {
diff --git a/src/grib_accessor_class.h b/src/grib_accessor_class.h
index e27597551..0c569decd 100644
--- a/src/grib_accessor_class.h
+++ b/src/grib_accessor_class.h
@@ -131,6 +131,7 @@ extern grib_accessor_class* grib_accessor_class_mars_step;
extern grib_accessor_class* grib_accessor_class_md5;
extern grib_accessor_class* grib_accessor_class_message;
extern grib_accessor_class* grib_accessor_class_message_copy;
+extern grib_accessor_class* grib_accessor_class_multdouble;
extern grib_accessor_class* grib_accessor_class_nearest;
extern grib_accessor_class* grib_accessor_class_non_alpha;
extern grib_accessor_class* grib_accessor_class_number_of_coded_values;
@@ -142,6 +143,7 @@ extern grib_accessor_class* grib_accessor_class_octahedral_gaussian;
extern grib_accessor_class* grib_accessor_class_octet_number;
extern grib_accessor_class* grib_accessor_class_offset_file;
extern grib_accessor_class* grib_accessor_class_offset_values;
+extern grib_accessor_class* grib_accessor_class_optimal_step_units;
extern grib_accessor_class* grib_accessor_class_pack_bufr_values;
extern grib_accessor_class* grib_accessor_class_packing_type;
extern grib_accessor_class* grib_accessor_class_pad;
diff --git a/src/grib_accessor_class_ascii.cc b/src/grib_accessor_class_ascii.cc
index 035b2c9cc..b0c90182e 100644
--- a/src/grib_accessor_class_ascii.cc
+++ b/src/grib_accessor_class_ascii.cc
@@ -147,17 +147,19 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
grib_handle* hand = grib_handle_of_accessor(a);
const size_t alen = a->length;
- if (len[0] < (alen + 1)) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%zu) for %s, it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < (alen + 1)) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, alen+1, *len);
+ *len = alen + 1;
+ return GRIB_BUFFER_TOO_SMALL;
}
for (i = 0; i < alen; i++)
val[i] = hand->buffer->data[a->offset + i];
val[i] = 0;
- len[0] = i;
+ *len = i;
return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_bit.cc b/src/grib_accessor_class_bit.cc
index 17c1d3c8c..ab81eecda 100644
--- a/src/grib_accessor_class_bit.cc
+++ b/src/grib_accessor_class_bit.cc
@@ -17,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS = const char* owner
MEMBERS = int bit_index
END_CLASS_DEF
@@ -36,7 +36,6 @@ or edit "accessor.class" and rerun ./make_class.pl
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_bit
@@ -60,7 +59,7 @@ static grib_accessor_class _grib_accessor_class_bit = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -107,26 +106,20 @@ grib_accessor_class* grib_accessor_class_bit = &_grib_accessor_class_bit;
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
grib_accessor_bit* self = (grib_accessor_bit*)a;
- a->length = 0;
- self->owner = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 0);
- self->bit_index = grib_arguments_get_long(grib_handle_of_accessor(a), arg, 1);
-}
-
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
+ a->length = 0;
+ self->owner = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 0);
+ self->bit_index = grib_arguments_get_long(grib_handle_of_accessor(a), arg, 1);
}
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_bit* self = (grib_accessor_bit*)a;
- int ret = 0;
-
+ int ret = 0;
long data = 0;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit : unpack_long : Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit: unpack_long: Wrong size for %s, it contains %d values ", a->name, 1);
+ *len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -147,23 +140,22 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
grib_accessor_bit* self = (grib_accessor_bit*)a;
- grib_accessor* owner = NULL;
- unsigned char* mdata = 0;
+
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit : pack_long : At least one value to pack for %s", a->name);
- *len = 0;
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit: pack_long: At least one value to pack for %s", a->name);
+ *len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
- owner = grib_find_accessor(grib_handle_of_accessor(a), self->owner);
-
+ grib_accessor* owner = grib_find_accessor(grib_handle_of_accessor(a), self->owner);
if (!owner) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit : Cannot get the owner %s for computing the bit value of %s ", self->owner, a->name);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit: Cannot get the owner %s for computing the bit value of %s",
+ self->owner, a->name);
*len = 0;
return GRIB_NOT_FOUND;
}
- mdata = grib_handle_of_accessor(a)->buffer->data;
+ unsigned char* mdata = grib_handle_of_accessor(a)->buffer->data;
mdata += grib_byte_offset(owner);
/* Note: In the definitions, flagbit numbers go from 7 to 0 (the bit_index), while WMO convention is from 1 to 8 */
diff --git a/src/grib_accessor_class_bitmap.cc b/src/grib_accessor_class_bitmap.cc
index a25d79a49..b86b34332 100644
--- a/src/grib_accessor_class_bitmap.cc
+++ b/src/grib_accessor_class_bitmap.cc
@@ -17,12 +17,12 @@
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_bytes
-
IMPLEMENTS = next_offset
IMPLEMENTS = unpack_double;unpack_double_element;unpack_double_element_set
IMPLEMENTS = unpack_float
IMPLEMENTS = unpack_long
IMPLEMENTS = unpack_string
+ IMPLEMENTS = string_length
IMPLEMENTS = init;dump;update_size
MEMBERS=const char* tableReference
MEMBERS=const char* missing_value
@@ -46,6 +46,7 @@ static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_float(grib_accessor*, float* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
+static size_t string_length(grib_accessor*);
static long next_offset(grib_accessor*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
@@ -78,7 +79,7 @@ static grib_accessor_class _grib_accessor_class_bitmap = {
0, /* destroy */
&dump, /* dump */
&next_offset, /* next_offset */
- 0, /* get length of string */
+ &string_length, /* get length of string */
0, /* get number of values */
0, /* get number of bytes */
0, /* get offset to bytes */
@@ -160,8 +161,8 @@ static void compute_size(grib_accessor* a)
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
grib_accessor_bitmap* self = (grib_accessor_bitmap*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
- int n = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ int n = 0;
self->tableReference = grib_arguments_get_name(hand, arg, n++);
self->missing_value = grib_arguments_get_name(hand, arg, n++);
@@ -189,23 +190,21 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- long pos = a->offset * 8;
- long tlen = 0;
- long i = 0;
- int err = 0;
- grib_handle* hand = grib_handle_of_accessor(a);
+ long pos = a->offset * 8;
+ long tlen = 0;
+ const grib_handle* hand = grib_handle_of_accessor(a);
- err = grib_value_count(a, &tlen);
+ int err = grib_value_count(a, &tlen);
if (err)
return err;
if (*len < tlen) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %ld values", a->name, tlen);
- *len = 0;
+ *len = tlen;
return GRIB_ARRAY_TOO_SMALL;
}
- for (i = 0; i < tlen; i++) {
+ for (long i = 0; i < tlen; i++) {
val[i] = (long)grib_decode_unsigned_long(hand->buffer->data, &pos, 1);
}
*len = tlen;
@@ -218,21 +217,19 @@ static int unpack(grib_accessor* a, T* val, size_t* len)
static_assert(std::is_floating_point::value, "Requires floating points numbers");
long pos = a->offset * 8;
long tlen;
- long i;
- int err = 0;
grib_handle* hand = grib_handle_of_accessor(a);
- err = grib_value_count(a, &tlen);
+ int err = grib_value_count(a, &tlen);
if (err)
return err;
if (*len < tlen) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %ld values", a->name, tlen);
- *len = 0;
+ *len = tlen;
return GRIB_ARRAY_TOO_SMALL;
}
- for (i = 0; i < tlen; i++) {
+ for (long i = 0; i < tlen; i++) {
val[i] = (T)grib_decode_unsigned_long(hand->buffer->data, &pos, 1);
}
*len = tlen;
@@ -260,8 +257,7 @@ static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
}
static int unpack_double_element_set(grib_accessor* a, const size_t* index_array, size_t len, double* val_array)
{
- size_t i = 0;
- for (i=0; ilength = s;
}
+static size_t string_length(grib_accessor* a)
+{
+ return a->length;
+}
+
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int i = 0;
grib_handle* hand = grib_handle_of_accessor(a);
+ const size_t l = a->length;
- if (len[0] < (a->length)) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
- len[0], a->name, a->length);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < l) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
+ *len = l;
+ return GRIB_BUFFER_TOO_SMALL;
}
- for (i = 0; i < a->length; i++)
+ for (long i = 0; i < a->length; i++) {
val[i] = hand->buffer->data[a->offset + i];
+ }
- len[0] = a->length;
+ *len = a->length;
return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_bufr_data_array.cc b/src/grib_accessor_class_bufr_data_array.cc
index 0b2982491..3d044835a 100644
--- a/src/grib_accessor_class_bufr_data_array.cc
+++ b/src/grib_accessor_class_bufr_data_array.cc
@@ -23,7 +23,6 @@
IMPLEMENTS = byte_count; value_count
IMPLEMENTS = byte_offset; unpack_double
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
IMPLEMENTS = pack_long; unpack_double; pack_double
MEMBERS = const char* bufrDataEncodedName
MEMBERS = const char* numberOfSubsetsName
@@ -98,7 +97,6 @@ static int value_count(grib_accessor*, long*);
static void destroy(grib_context*, grib_accessor*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_bufr_data_array
{
@@ -194,7 +192,7 @@ static grib_accessor_class _grib_accessor_class_bufr_data_array = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -256,7 +254,7 @@ static size_t get_length(grib_accessor* a)
grib_accessor_bufr_data_array* self = (grib_accessor_bufr_data_array*)a;
size_t len = 0;
- grib_handle* h = grib_handle_of_accessor(a);
+ const grib_handle* h = grib_handle_of_accessor(a);
grib_get_size(h, self->bufrDataEncodedName, &len);
@@ -474,11 +472,6 @@ static long next_offset(grib_accessor* a)
return a->offset;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
grib_accessor_bufr_data_array* self = (grib_accessor_bufr_data_array*)a;
@@ -1530,10 +1523,10 @@ static int build_bitmap(grib_accessor_bufr_data_array* self, unsigned char* data
int bitmapSize = 0, iDelayedReplication = 0;
int i, localReference, width, bitmapEndElementsDescriptorsIndex;
long ppos, n;
- grib_accessor* a = (grib_accessor*)self;
- grib_context* c = a->context;
+ grib_accessor* a = (grib_accessor*)self;
+ const grib_context* c = a->context;
bufr_descriptor** descriptors = self->expanded->v;
- long* edi = elementsDescriptorsIndex->v;
+ const long* edi = elementsDescriptorsIndex->v;
/* int iel=grib_iarray_used_size(elementsDescriptorsIndex)-1; */
int err = 0;
@@ -1659,10 +1652,10 @@ static int build_bitmap_new_data(grib_accessor_bufr_data_array* self, unsigned c
int bitmapSize = 0, iDelayedReplication = 0;
int i, bitmapEndElementsDescriptorsIndex;
long n;
- grib_accessor* a = (grib_accessor*)self;
- grib_context* c = a->context;
+ grib_accessor* a = (grib_accessor*)self;
+ const grib_context* c = a->context;
bufr_descriptor** descriptors = self->expanded->v;
- long* edi = elementsDescriptorsIndex->v;
+ const long* edi = elementsDescriptorsIndex->v;
switch (descriptors[iBitmapOperator]->code) {
case 222000:
@@ -2434,7 +2427,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset
bufr_descriptor* descriptor;
/*grib_section* sectionUp=0;*/
grib_section* groupSection = 0;
- long groupNumber = 0;
+ // long groupNumber = 0;
/*long indexOfGroupNumber=0;*/
int depth;
int max_depth = -1; /* highest value of depth */
@@ -2488,7 +2481,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset
self->tempStrings = self->numberOfSubsets? grib_sarray_new(c, self->numberOfSubsets, 500) : NULL;
end = self->compressedData ? 1 : self->numberOfSubsets;
- groupNumber = 1;
+ // groupNumber = 1;
gaGroup = grib_accessor_factory(self->dataKeys, &creatorGroup, 0, NULL);
//gaGroup->bufr_group_number = groupNumber;
@@ -2532,7 +2525,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset
self->unpackMode == CODES_BUFR_UNPACK_STRUCTURE) {
const int sidx = descriptor->Y + significanceQualifierIndexArray[descriptor->X] * NUMBER_OF_QUALIFIERS_PER_CATEGORY;
DEBUG_ASSERT(sidx > 0);
- groupNumber++;
+ // groupNumber++;
add_coord_flag = 1;
if (significanceQualifierGroup[sidx]) {
@@ -2576,12 +2569,13 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset
else if (descriptor->code == 31031 && incrementBitmapIndex != 0) {
/* bitmap */
bitmapIndex++;
- groupNumber++;
+ // groupNumber++;
incrementBitmapIndex = 0;
if (bitmapIndex >= MAX_NUMBER_OF_BITMAPS) {
- grib_context_log(c, GRIB_LOG_ERROR, "Bitmap error: bitmap index=%d, max num bitmaps=%d\n", bitmapIndex, MAX_NUMBER_OF_BITMAPS);
- err = GRIB_DECODING_ERROR;
- return err;
+ //grib_context_log(c, GRIB_LOG_ERROR, "Bitmap error: bitmap index=%d, max num bitmaps=%d\n", bitmapIndex, MAX_NUMBER_OF_BITMAPS);
+ //err = GRIB_DECODING_ERROR;
+ //return err;
+ bitmapIndex--;
}
bitmapStart[bitmapIndex] = grib_accessors_list_last(self->dataAccessors);
bitmapSize[bitmapIndex] = 1;
diff --git a/src/grib_accessor_class_bufr_data_element.cc b/src/grib_accessor_class_bufr_data_element.cc
index 65c4cecfb..3301eb10f 100644
--- a/src/grib_accessor_class_bufr_data_element.cc
+++ b/src/grib_accessor_class_bufr_data_element.cc
@@ -191,61 +191,61 @@ static grib_accessor* make_clone(grib_accessor* a, grib_section* s, int* err)
void accessor_bufr_data_element_set_index(grib_accessor* a, long index)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->index = index;
+ self->index = index;
}
void accessor_bufr_data_element_set_type(grib_accessor* a, int type)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->type = type;
+ self->type = type;
}
void accessor_bufr_data_element_set_numberOfSubsets(grib_accessor* a, long numberOfSubsets)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->numberOfSubsets = numberOfSubsets;
+ self->numberOfSubsets = numberOfSubsets;
}
void accessor_bufr_data_element_set_subsetNumber(grib_accessor* a, long subsetNumber)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->subsetNumber = subsetNumber;
+ self->subsetNumber = subsetNumber;
}
void accessor_bufr_data_element_set_compressedData(grib_accessor* a, int compressedData)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->compressedData = compressedData;
+ self->compressedData = compressedData;
}
void accessor_bufr_data_element_set_descriptors(grib_accessor* a, bufr_descriptors_array* descriptors)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->descriptors = descriptors;
+ self->descriptors = descriptors;
}
void accessor_bufr_data_element_set_numericValues(grib_accessor* a, grib_vdarray* numericValues)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->numericValues = numericValues;
+ self->numericValues = numericValues;
}
void accessor_bufr_data_element_set_stringValues(grib_accessor* a, grib_vsarray* stringValues)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->stringValues = stringValues;
+ self->stringValues = stringValues;
}
void accessor_bufr_data_element_set_elementsDescriptorsIndex(grib_accessor* a, grib_viarray* elementsDescriptorsIndex)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- self->elementsDescriptorsIndex = elementsDescriptorsIndex;
+ self->elementsDescriptorsIndex = elementsDescriptorsIndex;
}
static void init(grib_accessor* a, const long len, grib_arguments* params)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- a->length = 0;
+ a->length = 0;
a->flags |= GRIB_ACCESSOR_FLAG_BUFR_DATA;
/* a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; */
self->cname = NULL;
@@ -272,8 +272,8 @@ static int unpack_string_array(grib_accessor* a, char** val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = 0, i, idx;
- long count = 0;
+ int ret = 0, idx = 0;
+ size_t count = 0, i = 0;
grib_context* c = a->context;
if (self->compressedData) {
@@ -289,7 +289,7 @@ static int unpack_string_array(grib_accessor* a, char** val, size_t* len)
else {
DEBUG_ASSERT(self->subsetNumber < self->numericValues->n);
DEBUG_ASSERT(self->index < self->numericValues->v[self->subsetNumber]->n);
- idx = (int)self->numericValues->v[self->subsetNumber]->v[self->index] / 1000 - 1;
+ idx = (int)self->numericValues->v[self->subsetNumber]->v[self->index] / 1000 - 1;
val[0] = grib_context_strdup(c, self->stringValues->v[idx]->v[0]);
*len = 1;
}
@@ -308,7 +308,7 @@ static int pack_string_array(grib_accessor* a, const char** v, size_t* len)
if (self->compressedData) {
idx = ((int)self->numericValues->v[self->index]->v[0] / 1000 - 1) / self->numberOfSubsets;
- if (*len != 1 && *len != self->numberOfSubsets) {
+ if (*len != 1 && *len != (size_t)self->numberOfSubsets) {
grib_context_log(c, GRIB_LOG_ERROR, "Number of values mismatch for '%s': %ld strings provided but expected %ld (=number of subsets)",
self->descriptors->v[self->elementsDescriptorsIndex->v[0]->v[idx]]->shortName, *len, self->numberOfSubsets);
return GRIB_ARRAY_TOO_SMALL;
@@ -323,7 +323,7 @@ static int pack_string_array(grib_accessor* a, const char** v, size_t* len)
}
else {
//ECC-1623
- if (*len != self->numberOfSubsets) {
+ if (*len != (size_t)self->numberOfSubsets) {
grib_context_log(c, GRIB_LOG_ERROR,
"Number of values mismatch for '%s': %zu strings provided but expected %ld (=number of subsets)",
a->name, *len, self->numberOfSubsets);
@@ -343,8 +343,8 @@ static int pack_string_array(grib_accessor* a, const char** v, size_t* len)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- char* str = NULL;
- char* p = 0;
+ char* str = NULL;
+ char* p = 0;
size_t slen = 0;
double dval = 0;
size_t dlen = 1;
@@ -358,7 +358,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
snprintf(sval, sizeof(sval), "%g", dval);
slen = strlen(sval);
if (*len < slen)
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
strcpy(val, sval);
return GRIB_SUCCESS;
}
@@ -413,8 +413,8 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = GRIB_SUCCESS, idx = 0;
- char* s = NULL;
+ int ret = GRIB_SUCCESS, idx = 0;
+ char* s = NULL;
grib_context* c = a->context;
if (self->compressedData) {
@@ -426,7 +426,7 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len)
grib_sarray_delete_content(c, self->stringValues->v[idx]); /* ECC-1172 */
grib_sarray_delete(c, self->stringValues->v[idx]);
self->stringValues->v[idx] = grib_sarray_new(c, 1, 1);
- s = grib_context_strdup(c, val);
+ s = grib_context_strdup(c, val);
grib_sarray_push(c, self->stringValues->v[idx], s);
return ret;
@@ -435,7 +435,7 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = GRIB_SUCCESS;
+ int ret = GRIB_SUCCESS;
long count = 0, i = 0;
value_count(a, &count);
@@ -494,12 +494,12 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
int ret = GRIB_SUCCESS;
- long count = 1, i = 0;
+ size_t count = 1, i = 0;
grib_context* c = a->context;
if (self->compressedData) {
count = *len;
- if (count != 1 && count != self->numberOfSubsets) {
+ if (count != 1 && count != (size_t)self->numberOfSubsets) {
grib_context_log(c, GRIB_LOG_ERROR, "Number of values mismatch for '%s': %ld doubles provided but expected %ld (=number of subsets)",
self->descriptors->v[self->elementsDescriptorsIndex->v[0]->v[self->index]]->shortName, count, self->numberOfSubsets);
return GRIB_ARRAY_TOO_SMALL;
@@ -514,7 +514,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
}
else {
self->numericValues->v[self->subsetNumber]->v[self->index] = val[0];
- *len = 1;
+ *len = 1;
}
return ret;
@@ -523,14 +523,14 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = 0, i;
- long count = 1;
- grib_context* c = a->context;
+ int ret = 0;
+ size_t count = 1, i = 0;
+ grib_context* c = a->context;
if (self->compressedData) {
count = *len;
- if (count != 1 && count != self->numberOfSubsets) {
- grib_context_log(c, GRIB_LOG_ERROR, "Number of values mismatch for '%s': %ld integers provided but expected %ld (=number of subsets)",
+ if (count != 1 && count != (size_t)self->numberOfSubsets) {
+ grib_context_log(c, GRIB_LOG_ERROR, "Number of values mismatch for '%s': %zu integers provided but expected %ld (=number of subsets)",
self->descriptors->v[self->elementsDescriptorsIndex->v[0]->v[self->index]]->shortName, count, self->numberOfSubsets);
return GRIB_ARRAY_TOO_SMALL;
}
@@ -544,7 +544,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
}
else {
self->numericValues->v[self->subsetNumber]->v[self->index] = val[0] == GRIB_MISSING_LONG ? GRIB_MISSING_DOUBLE : val[0];
- *len = 1;
+ *len = 1;
}
return ret;
@@ -552,7 +552,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
static int value_count(grib_accessor* a, long* count)
{
- int ret = 0, type = 0, idx = 0;
+ int ret = 0, type = 0, idx = 0;
size_t size = 0;
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
@@ -581,8 +581,8 @@ static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
{
/* ECC-415 */
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = GRIB_SUCCESS;
- long count = 0;
+ int ret = GRIB_SUCCESS;
+ long count = 0;
value_count(a, &count);
if (idx >= (size_t)count) {
@@ -601,7 +601,7 @@ static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
static int get_native_type(grib_accessor* a)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int ret = GRIB_TYPE_DOUBLE;
+ int ret = GRIB_TYPE_DOUBLE;
DEBUG_ASSERT(self);
switch (self->type) {
case BUFR_DESCRIPTOR_TYPE_STRING:
@@ -627,7 +627,7 @@ static int get_native_type(grib_accessor* a)
static void destroy(grib_context* ct, grib_accessor* a)
{
grib_accessor_bufr_data_element* self = (grib_accessor_bufr_data_element*)a;
- int i = 0;
+ int i = 0;
if (self->cname)
grib_context_free(ct, self->cname); /* ECC-765 */
while (i < MAX_ACCESSOR_ATTRIBUTES && a->attributes[i]) {
@@ -650,14 +650,14 @@ static int is_missing(grib_accessor* a)
grib_context* c = a->context;
if (ktype == GRIB_TYPE_LONG) {
- long* values = NULL;
- long value = 0;
+ long* values = NULL;
+ long value = 0;
value_count(a, &count);
size = size2 = count;
if (size > 1) {
values = (long*)grib_context_malloc_clear(c, sizeof(long) * size);
- err = grib_unpack_long(a, values, &size2);
+ err = grib_unpack_long(a, values, &size2);
}
else {
err = grib_unpack_long(a, &value, &size2);
@@ -677,14 +677,14 @@ static int is_missing(grib_accessor* a)
}
}
else if (ktype == GRIB_TYPE_DOUBLE) {
- double value = 0;
- double* values = NULL;
+ double value = 0;
+ double* values = NULL;
value_count(a, &count);
size = size2 = count;
if (size > 1) {
values = (double*)grib_context_malloc_clear(c, sizeof(double) * size);
- err = grib_unpack_double(a, values, &size2);
+ err = grib_unpack_double(a, values, &size2);
}
else {
err = grib_unpack_double(a, &value, &size2);
@@ -705,7 +705,7 @@ static int is_missing(grib_accessor* a)
}
}
else if (ktype == GRIB_TYPE_STRING) {
- char** values = NULL;
+ char** values = NULL;
value_count(a, &count);
size = count;
if (size > 1) {
diff --git a/src/grib_accessor_class_bufr_elements_table.cc b/src/grib_accessor_class_bufr_elements_table.cc
index 603e1ce25..4858ff63d 100644
--- a/src/grib_accessor_class_bufr_elements_table.cc
+++ b/src/grib_accessor_class_bufr_elements_table.cc
@@ -207,7 +207,7 @@ static grib_trie* load_bufr_elements_table(grib_accessor* a, int* err)
}
if (!filename) {
- grib_context_log(c, GRIB_LOG_ERROR, "unable to find definition file %s", self->dictionary);
+ grib_context_log(c, GRIB_LOG_ERROR, "Unable to find definition file %s", self->dictionary);
if (strlen(masterRecomposed) > 0) grib_context_log(c, GRIB_LOG_DEBUG,"master path=%s", masterRecomposed);
if (strlen(localRecomposed) > 0) grib_context_log(c, GRIB_LOG_DEBUG, "local path=%s", localRecomposed);
*err = GRIB_FILE_NOT_FOUND;
@@ -379,8 +379,7 @@ bufr_descriptor* accessor_bufr_elements_table_get_descriptor(grib_accessor* a, i
DEBUG_ASSERT(c);
v = (bufr_descriptor*)grib_context_malloc_clear(c, sizeof(bufr_descriptor));
if (!v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "accessor_bufr_elements_table_get_descriptor: unable to allocate %ld bytes\n", sizeof(bufr_descriptor));
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(bufr_descriptor));
*err = GRIB_OUT_OF_MEMORY;
return NULL;
}
diff --git a/src/grib_accessor_class_bufr_extract_area_subsets.cc b/src/grib_accessor_class_bufr_extract_area_subsets.cc
index 5659ace91..473a5148d 100644
--- a/src/grib_accessor_class_bufr_extract_area_subsets.cc
+++ b/src/grib_accessor_class_bufr_extract_area_subsets.cc
@@ -119,20 +119,21 @@ grib_accessor_class* grib_accessor_class_bufr_extract_area_subsets = &_grib_acce
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
- int n = 0;
grib_accessor_bufr_extract_area_subsets* self = (grib_accessor_bufr_extract_area_subsets*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int n = 0;
a->length = 0;
- self->doExtractSubsets = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->numberOfSubsets = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractSubsetList = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaWestLongitude = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaEastLongitude = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaNorthLatitude = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaSouthLatitude = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaLongitudeRank = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractAreaLatitudeRank = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractedAreaNumberOfSubsets = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
+ self->doExtractSubsets = grib_arguments_get_name(h, arg, n++);
+ self->numberOfSubsets = grib_arguments_get_name(h, arg, n++);
+ self->extractSubsetList = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaWestLongitude = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaEastLongitude = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaNorthLatitude = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaSouthLatitude = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaLongitudeRank = grib_arguments_get_name(h, arg, n++);
+ self->extractAreaLatitudeRank = grib_arguments_get_name(h, arg, n++);
+ self->extractedAreaNumberOfSubsets = grib_arguments_get_name(h, arg, n++);
a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION;
}
@@ -152,11 +153,12 @@ static void fill_in(double a[], long length)
static int select_area(grib_accessor* a)
{
- int ret = 0;
- long compressed = 0;
grib_accessor_bufr_extract_area_subsets* self = (grib_accessor_bufr_extract_area_subsets*)a;
- grib_handle* h = grib_handle_of_accessor(a);
- grib_context* c = h->context;
+
+ int ret = 0;
+ long compressed = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
+ grib_context* c = h->context;
double* lat = NULL;
double* lon = NULL;
diff --git a/src/grib_accessor_class_bufr_extract_subsets.cc b/src/grib_accessor_class_bufr_extract_subsets.cc
index 599d1d7b4..567ceb61a 100644
--- a/src/grib_accessor_class_bufr_extract_subsets.cc
+++ b/src/grib_accessor_class_bufr_extract_subsets.cc
@@ -108,7 +108,7 @@ grib_accessor_class* grib_accessor_class_bufr_extract_subsets = &_grib_accessor_
static void get_accessors(grib_accessor* a)
{
grib_accessor_bufr_extract_subsets* self = (grib_accessor_bufr_extract_subsets*)a;
- grib_handle* h = grib_handle_of_accessor(a);
+ const grib_handle* h = grib_handle_of_accessor(a);
if (self->packAccessor)
return;
@@ -118,7 +118,7 @@ static void get_accessors(grib_accessor* a)
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
- int n = 0;
+ int n = 0;
grib_accessor_bufr_extract_subsets* self = (grib_accessor_bufr_extract_subsets*)a;
a->length = 0;
@@ -134,15 +134,14 @@ static int get_native_type(grib_accessor* a)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int err = 0;
grib_accessor_bufr_extract_subsets* self = (grib_accessor_bufr_extract_subsets*)a;
- size_t l = 1;
+ size_t l = 1;
long v[1];
get_accessors(a);
v[0] = 1;
- err = grib_pack_long(self->packAccessor, v, &l);
+ int err = grib_pack_long(self->packAccessor, v, &l);
if (err) {
if (err == GRIB_ENCODING_ERROR)
grib_context_log(a->context, GRIB_LOG_ERROR, "Could not extract subset(s).\n\tHint: Did you forget to set unpack=1?");
diff --git a/src/grib_accessor_class_bufr_simple_thinning.cc b/src/grib_accessor_class_bufr_simple_thinning.cc
index e4d110262..cd0181fe4 100644
--- a/src/grib_accessor_class_bufr_simple_thinning.cc
+++ b/src/grib_accessor_class_bufr_simple_thinning.cc
@@ -111,16 +111,17 @@ grib_accessor_class* grib_accessor_class_bufr_simple_thinning = &_grib_accessor_
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
- int n = 0;
grib_accessor_bufr_simple_thinning* self = (grib_accessor_bufr_simple_thinning*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int n = 0;
a->length = 0;
- self->doExtractSubsets = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->numberOfSubsets = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->extractSubsetList = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->simpleThinningStart = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->simpleThinningMissingRadius = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
- self->simpleThinningSkip = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
+ self->doExtractSubsets = grib_arguments_get_name(h, arg, n++);
+ self->numberOfSubsets = grib_arguments_get_name(h, arg, n++);
+ self->extractSubsetList = grib_arguments_get_name(h, arg, n++);
+ self->simpleThinningStart = grib_arguments_get_name(h, arg, n++);
+ self->simpleThinningMissingRadius = grib_arguments_get_name(h, arg, n++);
+ self->simpleThinningSkip = grib_arguments_get_name(h, arg, n++);
a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION;
}
@@ -132,18 +133,17 @@ static int get_native_type(grib_accessor* a)
static int apply_thinning(grib_accessor* a)
{
- grib_accessor_bufr_simple_thinning* self = (grib_accessor_bufr_simple_thinning*)a;
- int ret = 0;
+ const grib_accessor_bufr_simple_thinning* self = (grib_accessor_bufr_simple_thinning*)a;
+
long skip;
grib_handle* h = grib_handle_of_accessor(a);
grib_context* c = h->context;
long compressed = 0, nsubsets;
- long i;
grib_iarray* subsets;
long* subsets_ar = 0;
long start = 0, radius = 0;
- ret = grib_get_long(h, "compressedData", &compressed);
+ int ret = grib_get_long(h, "compressedData", &compressed);
if (ret)
return ret;
if (compressed) {
@@ -167,7 +167,7 @@ static int apply_thinning(grib_accessor* a)
return ret;
subsets = grib_iarray_new(c, numberOfSubsets / skip + 1, 10);
- for (i = 0; i < numberOfSubsets; i += skip + 1) {
+ for (long i = 0; i < numberOfSubsets; i += skip + 1) {
grib_iarray_push(subsets, i + 1);
}
@@ -199,12 +199,11 @@ static int apply_thinning(grib_accessor* a)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int err = 0;
- grib_accessor_bufr_simple_thinning* self = (grib_accessor_bufr_simple_thinning*)a;
+ const grib_accessor_bufr_simple_thinning* self = (grib_accessor_bufr_simple_thinning*)a;
if (*len == 0)
return GRIB_SUCCESS;
- err = apply_thinning(a);
+ int err = apply_thinning(a);
if (err)
return err;
diff --git a/src/grib_accessor_class_bufr_string_values.cc b/src/grib_accessor_class_bufr_string_values.cc
index 94e0f2216..02627e763 100644
--- a/src/grib_accessor_class_bufr_string_values.cc
+++ b/src/grib_accessor_class_bufr_string_values.cc
@@ -22,8 +22,8 @@ This is used by make_class.pl
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_ascii
-IMPLEMENTS = unpack_string_array; pack_string_array
-IMPLEMENTS = unpack_string; pack_string
+IMPLEMENTS = unpack_string_array
+IMPLEMENTS = unpack_string
IMPLEMENTS = init;dump;destroy
IMPLEMENTS = value_count
MEMBERS = const char* dataAccessorName
@@ -43,8 +43,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
-static int pack_string(grib_accessor*, const char*, size_t* len);
-static int pack_string_array(grib_accessor*, const char**, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
static int unpack_string_array(grib_accessor*, char**, size_t* len);
static int value_count(grib_accessor*, long*);
@@ -89,9 +87,9 @@ static grib_accessor_class _grib_accessor_class_bufr_string_values = {
0, /* pack_float */
0, /* unpack_double */
0, /* unpack_float */
- &pack_string, /* pack_string */
+ 0, /* pack_string */
&unpack_string, /* unpack_string */
- &pack_string_array, /* pack_string_array */
+ 0, /* pack_string_array */
&unpack_string_array, /* unpack_string_array */
0, /* pack_bytes */
0, /* unpack_bytes */
@@ -148,7 +146,6 @@ static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len)
grib_vsarray* stringValues = NULL;
size_t l = 0, tl;
size_t i, j, n = 0;
- /*char buf[25]={0,};*/
char** b = buffer;
data = get_accessor(a);
@@ -176,21 +173,11 @@ static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len)
return GRIB_SUCCESS;
}
-static int pack_string_array(grib_accessor* a, const char** v, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
return GRIB_NOT_IMPLEMENTED;
}
-static int pack_string(grib_accessor* a, const char* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int value_count(grib_accessor* a, long* rlen)
{
grib_accessor* descriptors = get_accessor(a);
diff --git a/src/grib_accessor_class_bufrdc_expanded_descriptors.cc b/src/grib_accessor_class_bufrdc_expanded_descriptors.cc
index 8476f4708..929e21724 100644
--- a/src/grib_accessor_class_bufrdc_expanded_descriptors.cc
+++ b/src/grib_accessor_class_bufrdc_expanded_descriptors.cc
@@ -24,7 +24,7 @@ CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long
IMPLEMENTS = unpack_string_array
-IMPLEMENTS = init;dump;destroy
+IMPLEMENTS = init;destroy
IMPLEMENTS = value_count
MEMBERS = const char* expandedDescriptors
MEMBERS = grib_accessor* expandedDescriptorsAccessor
@@ -47,7 +47,6 @@ static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string_array(grib_accessor*, char**, size_t* len);
static int value_count(grib_accessor*, long*);
static void destroy(grib_context*, grib_accessor*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_bufrdc_expanded_descriptors
@@ -71,7 +70,7 @@ static grib_accessor_class _grib_accessor_class_bufrdc_expanded_descriptors = {
&init, /* init */
0, /* post_init */
&destroy, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -125,11 +124,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static grib_accessor* get_accessor(grib_accessor* a)
{
grib_accessor_bufrdc_expanded_descriptors* self = (grib_accessor_bufrdc_expanded_descriptors*)a;
diff --git a/src/grib_accessor_class_bytes.cc b/src/grib_accessor_class_bytes.cc
index 8ad005033..71533095e 100644
--- a/src/grib_accessor_class_bytes.cc
+++ b/src/grib_accessor_class_bytes.cc
@@ -134,7 +134,7 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
if (*len < (size_t)slength) {
*len = slength;
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
}
p = grib_handle_of_accessor(a)->buffer->data + grib_byte_offset(a);
diff --git a/src/grib_accessor_class_change_alternative_row_scanning.cc b/src/grib_accessor_class_change_alternative_row_scanning.cc
index 394bb8409..d8eef0eb4 100644
--- a/src/grib_accessor_class_change_alternative_row_scanning.cc
+++ b/src/grib_accessor_class_change_alternative_row_scanning.cc
@@ -125,7 +125,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
int err = 0;
grib_accessor_change_alternative_row_scanning* self = (grib_accessor_change_alternative_row_scanning*)a;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
grib_handle* h = grib_handle_of_accessor(a);
long i, j, jr, theEnd, Ni, Nj, k, kp, alternativeRowScanning;
size_t size = 0;
diff --git a/src/grib_accessor_class_change_scanning_direction.cc b/src/grib_accessor_class_change_scanning_direction.cc
index 91e597135..f951c9083 100644
--- a/src/grib_accessor_class_change_scanning_direction.cc
+++ b/src/grib_accessor_class_change_scanning_direction.cc
@@ -117,17 +117,18 @@ grib_accessor_class* grib_accessor_class_change_scanning_direction = &_grib_acce
static void init(grib_accessor* a, const long len, grib_arguments* args)
{
- int n = 0;
grib_accessor_change_scanning_direction* self = (grib_accessor_change_scanning_direction*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int n = 0;
- self->values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->Ni = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->Nj = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->i_scans_negatively = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->j_scans_positively = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->first = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->last = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
- self->axis = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
+ self->values = grib_arguments_get_name(h, args, n++);
+ self->Ni = grib_arguments_get_name(h, args, n++);
+ self->Nj = grib_arguments_get_name(h, args, n++);
+ self->i_scans_negatively = grib_arguments_get_name(h, args, n++);
+ self->j_scans_positively = grib_arguments_get_name(h, args, n++);
+ self->first = grib_arguments_get_name(h, args, n++);
+ self->last = grib_arguments_get_name(h, args, n++);
+ self->axis = grib_arguments_get_name(h, args, n++);
a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION;
a->length = 0;
@@ -145,12 +146,12 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
size_t size = 0;
double* values = NULL;
grib_accessor_change_scanning_direction* self = (grib_accessor_change_scanning_direction*)a;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
grib_handle* h = grib_handle_of_accessor(a);
const char* cclass_name = a->cclass->name;
if (*val == 0)
- return 0;
+ return GRIB_SUCCESS;
/* Make sure Ni / Nj are not missing */
if (grib_is_missing(h, self->Ni, &err) && !err) {
diff --git a/src/grib_accessor_class_closest_date.cc b/src/grib_accessor_class_closest_date.cc
index b4729822f..08ba9f333 100644
--- a/src/grib_accessor_class_closest_date.cc
+++ b/src/grib_accessor_class_closest_date.cc
@@ -159,6 +159,8 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
/* Sets val to the 'index' of the closes date */
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
+ const grib_accessor_closest_date* self = (grib_accessor_closest_date*)a;
+
int err = 0;
long num_forecasts = 0; /* numberOfForecastsUsedInLocalTime */
/* These relate to the date and time in Section 1 */
@@ -171,9 +173,8 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
/* These relate to the forecast dates and times in Section 4 */
long *yearArray, *monthArray, *dayArray, *hourArray, *minuteArray, *secondArray;
- grib_accessor_closest_date* self = (grib_accessor_closest_date*)a;
grib_handle* h = grib_handle_of_accessor(a);
- grib_context* c = a->context;
+ const grib_context* c = a->context;
*val = -1; /* initialise to an invalid index */
if ((err = grib_get_long_internal(h, self->numForecasts, &num_forecasts)) != GRIB_SUCCESS) return err;
diff --git a/src/grib_accessor_class_codeflag.cc b/src/grib_accessor_class_codeflag.cc
index 77789389d..ab86a64b1 100644
--- a/src/grib_accessor_class_codeflag.cc
+++ b/src/grib_accessor_class_codeflag.cc
@@ -110,8 +110,8 @@ grib_accessor_class* grib_accessor_class_codeflag = &_grib_accessor_class_codefl
static void init(grib_accessor* a, const long len, grib_arguments* param)
{
grib_accessor_codeflag* self = (grib_accessor_codeflag*)a;
- a->length = len;
- self->tablename = grib_arguments_get_string(grib_handle_of_accessor(a), param, 0);
+ a->length = len;
+ self->tablename = grib_arguments_get_string(grib_handle_of_accessor(a), param, 0);
Assert(a->length >= 0);
}
@@ -123,8 +123,8 @@ static int test_bit(long a, long b)
static int grib_get_codeflag(grib_accessor* a, long code, char* codename)
{
- grib_accessor_codeflag* self = (grib_accessor_codeflag*)a;
- FILE* f = NULL;
+ const grib_accessor_codeflag* self = (grib_accessor_codeflag*)a;
+ FILE* f = NULL;
char fname[1024];
char bval[50];
char num[50];
@@ -200,10 +200,10 @@ static int value_count(grib_accessor* a, long* count)
static void dump(grib_accessor* a, grib_dumper* dumper)
{
- grib_accessor_codeflag* self = (grib_accessor_codeflag*)a;
- long v;
- char flagname[1024];
- char fname[1024];
+ const grib_accessor_codeflag* self = (grib_accessor_codeflag*)a;
+ long v = 0;
+ char flagname[1024] = {0,};
+ char fname[1024] = {0,};
size_t llen = 1;
diff --git a/src/grib_accessor_class_codetable.cc b/src/grib_accessor_class_codetable.cc
index e8e286623..9e39ed633 100644
--- a/src/grib_accessor_class_codetable.cc
+++ b/src/grib_accessor_class_codetable.cc
@@ -50,7 +50,7 @@ static void thread_init()
CLASS = accessor
SUPER = grib_accessor_class_unsigned
IMPLEMENTS = init;dump;unpack_string;pack_expression;unpack_long
- IMPLEMENTS = value_count;pack_string; destroy; get_native_type;
+ IMPLEMENTS = value_count;pack_string; destroy; get_native_type;pack_missing
MEMBERS = const char* tablename
MEMBERS = const char* masterDir
MEMBERS = const char* localDir
@@ -71,6 +71,7 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
+static int pack_missing(grib_accessor*);
static int pack_string(grib_accessor*, const char*, size_t* len);
static int pack_expression(grib_accessor*, grib_expression*);
static int unpack_long(grib_accessor*, long* val, size_t* len);
@@ -115,7 +116,7 @@ static grib_accessor_class _grib_accessor_class_codetable = {
0, /* get offset to bytes */
&get_native_type, /* get native type */
0, /* get sub_section */
- 0, /* pack_missing */
+ &pack_missing, /* pack_missing */
0, /* is_missing */
0, /* pack_long */
&unpack_long, /* unpack_long */
@@ -221,7 +222,7 @@ static void init(grib_accessor* a, const long len, grib_arguments* params)
p = grib_expression_evaluate_string(grib_handle_of_accessor(a), expression, tmp, &s_len, &ret);
if (ret != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_FATAL,
- "unable to evaluate %s as string", a->name);
+ "Unable to evaluate %s as string", a->name);
}
s_len = strlen(p) + 1;
pack_string(a, p, &s_len);
@@ -523,6 +524,94 @@ void grib_codetable_delete(grib_context* c)
}
}
+int codes_codetable_get_contents_malloc(const grib_handle* h, const char* key, code_table_entry** entries, size_t* num_entries)
+{
+ long lvalue = 0;
+ size_t size = 1;
+ int err = 0;
+ grib_context* c = h->context;
+
+ grib_accessor* aa = grib_find_accessor(h, key);
+ if (!aa) return GRIB_NOT_FOUND;
+
+ if (!STR_EQUAL(aa->cclass->name, "codetable")) {
+ return GRIB_INVALID_ARGUMENT; // key is not a codetable
+ }
+
+ const grib_accessor_codetable* ca = (const grib_accessor_codetable*)aa; // could be dynamic_cast
+
+ // Decode the key itself. This will either fetch it from the cache or place it there
+ if ((err = grib_unpack_long(aa, &lvalue, &size)) != GRIB_SUCCESS) {
+ return err;
+ }
+
+ const grib_codetable* table = ca->table;
+ if (!table) return GRIB_INTERNAL_ERROR;
+
+ grib_codetable* cached_table = c->codetable; // Access the codetable cache
+ while (cached_table) {
+ if (STR_EQUAL(table->recomposed_name[0], cached_table->recomposed_name[0])) {
+ // Found a cache entry that matches the recomposed name of ours
+ *num_entries = cached_table->size;
+ *entries = (code_table_entry*)calloc(cached_table->size, sizeof(code_table_entry));
+ if (!*entries) {
+ return GRIB_OUT_OF_MEMORY;
+ }
+ for (size_t i = 0; i < cached_table->size; i++) {
+ (*entries)[i] = cached_table->entries[i];
+ }
+ return GRIB_SUCCESS;
+ }
+ cached_table = cached_table->next;
+ }
+
+ return GRIB_CODE_NOT_FOUND_IN_TABLE;
+}
+
+int codes_codetable_check_code_figure(const grib_handle* h, const char* key, long code_figure)
+{
+ code_table_entry* entries = NULL;
+ size_t num_entries = 0;
+ int err = 0;
+ err = codes_codetable_get_contents_malloc(h, key, &entries, &num_entries);
+ if (err) return err;
+
+ if (code_figure < 0 || (size_t)code_figure >= num_entries) {
+ err = GRIB_OUT_OF_RANGE;
+ goto cleanup;
+ }
+
+ if (entries[code_figure].abbreviation == NULL) {
+ err = GRIB_INVALID_KEY_VALUE;
+ goto cleanup;
+ }
+cleanup:
+ free(entries);
+ return err;
+}
+
+int codes_codetable_check_abbreviation(const grib_handle* h, const char* key, const char* abbreviation)
+{
+ code_table_entry* entries = NULL;
+ size_t num_entries = 0;
+ int err = 0;
+ err = codes_codetable_get_contents_malloc(h, key, &entries, &num_entries);
+ if (err) return err;
+
+ bool found = false;
+ for (size_t i=0; icclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
@@ -638,6 +731,12 @@ static bool is_number(const char* s)
return true;
}
+static bool strings_equal(const char* s1, const char* s2, bool case_sensitive)
+{
+ if (case_sensitive) return (strcmp(s1, s2) == 0);
+ return (strcmp_nocase(s1, s2) == 0);
+}
+
static int pack_string(grib_accessor* a, const char* buffer, size_t* len)
{
long lValue = 0;
@@ -648,15 +747,15 @@ static int pack_string(grib_accessor* a, const char* buffer, size_t* len)
return grib_pack_long(a, &lValue, &l);
}
+ if (STR_EQUAL_NOCASE(buffer, "missing")) {
+ return pack_missing(a);
+ }
+
grib_accessor_codetable* self = (grib_accessor_codetable*)a;
- grib_codetable* table;
- long i;
+ grib_codetable* table = NULL;
+ long i = 0;
size_t size = 1;
- typedef int (*cmpproc)(const char*, const char*);
-
- cmpproc cmp = (a->flags & GRIB_ACCESSOR_FLAG_LOWERCASE) ? strcmp_nocase : strcmp;
-
if (!self->table_loaded) {
self->table = load_table(a); /* may return NULL */
self->table_loaded = 1;
@@ -672,10 +771,18 @@ static int pack_string(grib_accessor* a, const char* buffer, size_t* len)
return err;
}
- for (i = 0; i < table->size; i++)
- if (table->entries[i].abbreviation)
- if (cmp(table->entries[i].abbreviation, buffer) == 0)
+ // If the key has the "lowercase" flag set, then the string comparison
+ // should ignore the case
+ bool case_sensitive = true;
+ if (a->flags & GRIB_ACCESSOR_FLAG_LOWERCASE) case_sensitive = false;
+
+ for (i = 0; i < table->size; i++) {
+ if (table->entries[i].abbreviation) {
+ if (strings_equal(table->entries[i].abbreviation, buffer, case_sensitive)) {
return grib_pack_long(a, &i, &size);
+ }
+ }
+ }
if (a->flags & GRIB_ACCESSOR_FLAG_NO_FAIL) {
grib_action* act = (grib_action*)(a->creator);
@@ -739,8 +846,8 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
grib_handle* hand = grib_handle_of_accessor(a);
if (strcmp(e->cclass->name, "long") == 0) {
- grib_expression_evaluate_long(hand, e, &lval); /* TDOD: check return value */
- /*if (hand->context->debug) printf("ECCODES DEBUG grib_accessor_class_codetable::pack_expression %s %ld\n", a->name,lval);*/
+ grib_expression_evaluate_long(hand, e, &lval); /* TODO: check return value */
+ //if (hand->context->debug) printf("ECCODES DEBUG grib_accessor_class_codetable::pack_expression %s %ld\n", a->name,lval);
ret = grib_pack_long(a, &lval, &len);
}
else {
@@ -748,12 +855,14 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
len = sizeof(tmp);
cval = grib_expression_evaluate_string(hand, e, tmp, &len, &ret);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_codetable.pack_expression: unable to evaluate string %s to be set in %s\n", grib_expression_get_name(e), a->name);
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "grib_accessor_codetable.%s: Unable to evaluate string %s to be set in %s",
+ __func__, grib_expression_get_name(e), a->name);
return ret;
}
len = strlen(cval) + 1;
- /*if (hand->context->debug)
- printf("ECCODES DEBUG grib_accessor_class_codetable::pack_expression %s %s\n", a->name, cval);*/
+ //if (hand->context->debug)
+ // printf("ECCODES DEBUG grib_accessor_class_codetable::pack_expression %s %s\n", a->name, cval);
ret = grib_pack_string(a, cval, &len);
}
return ret;
@@ -799,9 +908,9 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
}
if (*len < rlen) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size (%lu) for %s, it contains %ld values",
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size (%zu) for %s, it contains %ld values",
*len, a->name, rlen);
- *len = 0;
+ *len = rlen;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -824,3 +933,27 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
*len = rlen;
return GRIB_SUCCESS;
}
+
+static int pack_missing(grib_accessor* a)
+{
+ // Many of the code tables do have a 'Missing' entry (all bits = 1)
+ // So it is more user-friendly to allow setting codetable keys to
+ // missing. For tables that do not have such an entry, an error is issued
+ grib_accessor_codetable* self = (grib_accessor_codetable*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+
+ const long nbytes = a->length;
+ const long nbits = nbytes*8;
+ const long maxVal = (1<name, maxVal);
+ if (!err) {
+ size_t l = 1;
+ return grib_pack_long(a, &maxVal, &l);
+ }
+
+ grib_context_log(a->context, GRIB_LOG_ERROR, "There is no 'missing' entry in Code Table %s (%s)",
+ self->tablename, grib_get_error_message(err));
+
+ return err;
+}
diff --git a/src/grib_accessor_class_codetable_title.cc b/src/grib_accessor_class_codetable_title.cc
index 88d2a0e91..2ddd0f3cb 100644
--- a/src/grib_accessor_class_codetable_title.cc
+++ b/src/grib_accessor_class_codetable_title.cc
@@ -156,6 +156,10 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
l = strlen(tmp) + 1;
if (*len < l) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_codetable_units.cc b/src/grib_accessor_class_codetable_units.cc
index 55faaa0bb..de9a9655f 100644
--- a/src/grib_accessor_class_codetable_units.cc
+++ b/src/grib_accessor_class_codetable_units.cc
@@ -117,9 +117,10 @@ typedef struct grib_accessor_codetable
static void init(grib_accessor* a, const long len, grib_arguments* params)
{
grib_accessor_codetable_units* self = (grib_accessor_codetable_units*)a;
- int n = 0;
- self->codetable = grib_arguments_get_name(grib_handle_of_accessor(a), params, n++);
- a->length = 0;
+
+ int n = 0;
+ self->codetable = grib_arguments_get_name(grib_handle_of_accessor(a), params, n++);
+ a->length = 0;
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
@@ -131,13 +132,13 @@ static int get_native_type(grib_accessor* a)
static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
{
grib_accessor_codetable_units* self = (grib_accessor_codetable_units*)a;
- grib_codetable* table = NULL;
+ grib_codetable* table = NULL;
size_t size = 1;
long value;
int err = GRIB_SUCCESS;
char tmp[1024];
- size_t l = 1024;
+ size_t l = sizeof(tmp);
grib_accessor_codetable* ca = (grib_accessor_codetable*)grib_find_accessor(grib_handle_of_accessor(a), self->codetable);
if ((err = grib_unpack_long((grib_accessor*)ca, &value, &size)) != GRIB_SUCCESS)
@@ -155,6 +156,10 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
l = strlen(tmp) + 1;
if (*len < l) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_concept.cc b/src/grib_accessor_class_concept.cc
index 28c09006d..1462afcfc 100644
--- a/src/grib_accessor_class_concept.cc
+++ b/src/grib_accessor_class_concept.cc
@@ -237,6 +237,7 @@ static const char* concept_evaluate(grib_accessor* a)
grib_concept_value* c = action_concept_get_concept(a);
grib_handle* h = grib_handle_of_accessor(a);
+ // fprintf(stderr, "DEBUG: concept_evaluate: %s %s\n", a->name, c->name);
while (c) {
grib_concept_condition* e = c->conditions;
int cnt = 0;
@@ -290,7 +291,6 @@ static int concept_conditions_expression_apply(grib_handle* h, grib_concept_cond
break;
default:
return GRIB_NOT_IMPLEMENTED;
- break;
}
(*n)++;
return err;
@@ -381,6 +381,11 @@ static int grib_concept_apply(grib_accessor* a, const char* name)
grib_get_string(h, "centre", centre_s, ¢re_len) == GRIB_SUCCESS) {
grib_context_log(h->context, GRIB_LOG_ERROR, "concept: input handle edition=%ld, centre=%s", editionNumber, centre_s);
}
+ char dataset_s[80];
+ size_t dataset_len = sizeof(dataset_s);
+ if (grib_get_string(h, "datasetForLocal", dataset_s, &dataset_len) == GRIB_SUCCESS && !STR_EQUAL(dataset_s, "unknown")) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "concept: input handle dataset=%s", dataset_s);
+ }
if (strcmp(act->name, "paramId") == 0) {
if (string_to_long(name, &dummy, 1) == GRIB_SUCCESS) {
// The paramId value is an integer. Show them the param DB
@@ -455,6 +460,23 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
//if(*len > 1)
// return GRIB_NOT_IMPLEMENTED;
+ // ECC-1806: GRIB: Change of paramId in conversion from GRIB1 to GRIB2
+ if (STR_EQUAL(a->name, "paramId")) {
+ grib_handle* h = grib_handle_of_accessor(a);
+ long edition = 0;
+ if (grib_get_long(h, "edition", &edition) == GRIB_SUCCESS && edition == 2) {
+ long newParamId = 0;
+ if (grib_get_long(h, "paramIdForConversion", &newParamId) == GRIB_SUCCESS && newParamId > 0) {
+ if (a->context->debug) {
+ const char* cclass_name = a->cclass->name;
+ fprintf(stderr, "ECCODES DEBUG %s::%s: Changing %s from %ld to %ld\n",
+ cclass_name, __func__, a->name, *val, newParamId);
+ }
+ snprintf(buf, sizeof(buf), "%ld", newParamId);
+ }
+ }
+ }
+
s = strlen(buf) + 1;
return pack_string(a, buf, &s);
}
@@ -559,7 +581,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
slen = strlen(p) + 1;
if (*len < slen) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "Concept unpack_string. Wrong size for %s, value='%s' which requires %lu bytes (len=%lu)",
+ "Concept unpack_string. Buffer too small for %s, value='%s' which requires %lu bytes (len=%lu)",
a->name, p, slen, *len);
*len = slen;
return GRIB_BUFFER_TOO_SMALL;
diff --git a/src/grib_accessor_class_count_missing.cc b/src/grib_accessor_class_count_missing.cc
index 32f7f16c8..a4ed76841 100644
--- a/src/grib_accessor_class_count_missing.cc
+++ b/src/grib_accessor_class_count_missing.cc
@@ -200,10 +200,15 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
if (grib_get_long(h, self->unusedBitsInBitmap, &unusedBitsInBitmap) != GRIB_SUCCESS) {
if (grib_get_long(h, self->numberOfDataPoints, &numberOfDataPoints) != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to count missing values");
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to count missing values");
return GRIB_INTERNAL_ERROR;
}
unusedBitsInBitmap = size * 8 - numberOfDataPoints;
+ if (unusedBitsInBitmap < 0) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Inconsistent number of bitmap points: Check the bitmap and data sections!");
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Bitmap size=%ld, numberOfDataPoints=%ld", size*8, numberOfDataPoints);
+ return GRIB_DECODING_ERROR;
+ }
}
p = h->buffer->data + offset;
diff --git a/src/grib_accessor_class_data_apply_bitmap.cc b/src/grib_accessor_class_data_apply_bitmap.cc
index 3f10fa26c..675e7b3de 100644
--- a/src/grib_accessor_class_data_apply_bitmap.cc
+++ b/src/grib_accessor_class_data_apply_bitmap.cc
@@ -446,7 +446,7 @@ static int get_native_type(grib_accessor* a)
static int compare(grib_accessor* a, grib_accessor* b)
{
- int retval = 0;
+ int retval = GRIB_SUCCESS;
double* aval = 0;
double* bval = 0;
@@ -475,10 +475,8 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_double(b, bval, &blen);
retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ for (size_t i=0; icontext, aval);
diff --git a/src/grib_accessor_class_data_apply_boustrophedonic.cc b/src/grib_accessor_class_data_apply_boustrophedonic.cc
index 1f10885e0..e01917384 100644
--- a/src/grib_accessor_class_data_apply_boustrophedonic.cc
+++ b/src/grib_accessor_class_data_apply_boustrophedonic.cc
@@ -119,7 +119,7 @@ grib_accessor_class* grib_accessor_class_data_apply_boustrophedonic = &_grib_acc
static void init(grib_accessor* a, const long v, grib_arguments* args)
{
- int n = 0;
+ int n = 0;
grib_accessor_data_apply_boustrophedonic* self = (grib_accessor_data_apply_boustrophedonic*)a;
self->values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
@@ -138,10 +138,10 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
static int value_count(grib_accessor* a, long* numberOfPoints)
{
grib_accessor_data_apply_boustrophedonic* self = (grib_accessor_data_apply_boustrophedonic*)a;
- int ret = 0;
+ int ret = 0;
*numberOfPoints = 0;
- ret = grib_get_long_internal(grib_handle_of_accessor(a), self->numberOfPoints, numberOfPoints);
+ ret = grib_get_long_internal(grib_handle_of_accessor(a), self->numberOfPoints, numberOfPoints);
return ret;
}
@@ -150,12 +150,13 @@ template
static int unpack(grib_accessor* a, T* val, size_t* len)
{
grib_accessor_data_apply_boustrophedonic* self = (grib_accessor_data_apply_boustrophedonic*)a;
- size_t plSize = 0;
- long* pl = 0;
- double* values = 0;
- double* pvalues = 0;
- T* pval = 0;
- size_t valuesSize = 0;
+
+ size_t plSize = 0;
+ long* pl = 0;
+ double* values = 0;
+ double* pvalues = 0;
+ T* pval = 0;
+ size_t valuesSize = 0;
long i, j;
int ret;
long numberOfPoints, numberOfRows, numberOfColumns;
@@ -306,12 +307,13 @@ static int unpack_double_element_set(grib_accessor* a, const size_t* index_array
static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_data_apply_boustrophedonic* self = (grib_accessor_data_apply_boustrophedonic*)a;
- size_t plSize = 0;
- long* pl = 0;
- double* values = 0;
- double* pvalues = 0;
- double* pval = 0;
- size_t valuesSize = 0;
+
+ size_t plSize = 0;
+ long* pl = 0;
+ double* values = 0;
+ double* pvalues = 0;
+ double* pval = 0;
+ size_t valuesSize = 0;
long i, j;
int ret;
long numberOfPoints, numberOfRows, numberOfColumns;
diff --git a/src/grib_accessor_class_data_ccsds_packing.cc b/src/grib_accessor_class_data_ccsds_packing.cc
index 3b5cee87d..ccfd48c03 100644
--- a/src/grib_accessor_class_data_ccsds_packing.cc
+++ b/src/grib_accessor_class_data_ccsds_packing.cc
@@ -274,7 +274,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
else if (val[i] < min) min = val[i];
}
- if ((err = grib_check_data_values_range(hand, min, max)) != GRIB_SUCCESS) {
+ if ((err = grib_check_data_values_minmax(hand, min, max)) != GRIB_SUCCESS) {
return err;
}
@@ -295,7 +295,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
#endif
if (grib_get_nearest_smaller_value(hand, self->reference_value, val[0], &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "%s %s: unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
+ "%s %s: Unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
if ((err = grib_set_double_internal(hand, self->reference_value, reference_value)) != GRIB_SUCCESS)
@@ -322,7 +322,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (grib_get_nearest_smaller_value(hand, self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "%s %s: unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
+ "%s %s: Unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
@@ -367,7 +367,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (grib_get_nearest_smaller_value(hand, self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "%s %s: unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
+ "%s %s: Unable to find nearest_smaller_value of %g for %s", cclass_name, __func__, min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
d = codes_power(decimal_scale_factor, 10);
@@ -624,7 +624,7 @@ static int unpack(grib_accessor* a, T* val, size_t* len)
}
break;
default:
- grib_context_log(a->context, GRIB_LOG_ERROR, "%s %s: unpacking %s, bits_per_value=%d (max 32)",
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s %s: unpacking %s, bits_per_value=%ld (max 32)",
cclass_name, __func__, a->name, bits_per_value);
err = GRIB_INVALID_BPV;
goto cleanup;
@@ -650,7 +650,7 @@ static int unpack_float(grib_accessor* a, float* val, size_t* len)
static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
{
// The index idx relates to codedValues NOT values!
- grib_accessor_data_ccsds_packing* self = (grib_accessor_data_ccsds_packing*)a;
+ const grib_accessor_data_ccsds_packing* self = (grib_accessor_data_ccsds_packing*)a;
grib_handle* hand = grib_handle_of_accessor(a);
int err = 0;
size_t size = 0;
@@ -686,7 +686,7 @@ static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
static int unpack_double_element_set(grib_accessor* a, const size_t* index_array, size_t len, double* val_array)
{
- grib_accessor_data_ccsds_packing* self = (grib_accessor_data_ccsds_packing*)a;
+ const grib_accessor_data_ccsds_packing* self = (grib_accessor_data_ccsds_packing*)a;
grib_handle* hand = grib_handle_of_accessor(a);
size_t size = 0, i = 0;
double* values = NULL;
diff --git a/src/grib_accessor_class_data_complex_packing.cc b/src/grib_accessor_class_data_complex_packing.cc
index 95612de5a..49d312611 100644
--- a/src/grib_accessor_class_data_complex_packing.cc
+++ b/src/grib_accessor_class_data_complex_packing.cc
@@ -536,7 +536,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
&reference_value);
if (ret != GRIB_SUCCESS) {
grib_context_log(gh->context, GRIB_LOG_ERROR,
- "%s: unable to find nearest_smaller_value of %g for %s", cclass_name, min, self->reference_value);
+ "%s: Unable to find nearest_smaller_value of %g for %s", cclass_name, min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
d = codes_power(+decimal_scale_factor, 10);
@@ -545,7 +545,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
d = codes_power(+decimal_scale_factor, 10);
if (grib_get_nearest_smaller_value(gh, self->reference_value, d * min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(gh->context, GRIB_LOG_ERROR,
- "%s: unable to find nearest_smaller_value of %g for %s", cclass_name, d * min, self->reference_value);
+ "%s: Unable to find nearest_smaller_value of %g for %s", cclass_name, d * min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
binary_scale_factor = grib_get_binary_scale_fact(d * max, reference_value, bits_per_value, &ret);
diff --git a/src/grib_accessor_class_data_dummy_field.cc b/src/grib_accessor_class_data_dummy_field.cc
index a599bc3e7..65b6d5a8f 100644
--- a/src/grib_accessor_class_data_dummy_field.cc
+++ b/src/grib_accessor_class_data_dummy_field.cc
@@ -132,19 +132,18 @@ grib_accessor_class* grib_accessor_class_data_dummy_field = &_grib_accessor_clas
static void init(grib_accessor* a, const long v, grib_arguments* args)
{
grib_accessor_data_dummy_field* self = (grib_accessor_data_dummy_field*)a;
- self->missing_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->numberOfPoints = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->bitmap = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
+ self->missing_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
+ self->numberOfPoints = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
+ self->bitmap = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
}
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_data_dummy_field* self = (grib_accessor_data_dummy_field*)a;
- size_t i = 0;
- size_t n_vals = 0;
+ size_t i = 0, n_vals = 0;
long numberOfPoints;
double missing_value = 0;
- int err = 0;
+ int err = 0;
if ((err = grib_get_long_internal(grib_handle_of_accessor(a), self->numberOfPoints, &numberOfPoints)) != GRIB_SUCCESS)
return err;
@@ -174,15 +173,11 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_data_dummy_field* self = (grib_accessor_data_dummy_field*)a;
-
size_t n_vals = *len;
int err = 0;
-
long bits_per_value = 0;
-
long half_byte = 0;
-
- size_t buflen = 0;
+ size_t buflen = 0;
unsigned char* buf = NULL;
if (*len == 0)
@@ -213,11 +208,11 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
static int value_count(grib_accessor* a, long* numberOfPoints)
{
grib_accessor_data_dummy_field* self = (grib_accessor_data_dummy_field*)a;
- int err = 0;
- *numberOfPoints = 0;
+ int err = 0;
+ *numberOfPoints = 0;
if ((err = grib_get_long_internal(grib_handle_of_accessor(a), self->numberOfPoints, numberOfPoints)) != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to get count of %s (%s)", a->name, grib_get_error_message(err));
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to get count of %s (%s)", a->name, grib_get_error_message(err));
}
return err;
diff --git a/src/grib_accessor_class_data_g1second_order_general_extended_packing.cc b/src/grib_accessor_class_data_g1second_order_general_extended_packing.cc
index 2f1946b7b..d337dba48 100644
--- a/src/grib_accessor_class_data_g1second_order_general_extended_packing.cc
+++ b/src/grib_accessor_class_data_g1second_order_general_extended_packing.cc
@@ -359,7 +359,8 @@ static int unpack(grib_accessor* a, double* dvalues, float* fvalues, size_t* len
double reference_value;
long binary_scale_factor;
long decimal_scale_factor;
- long j, count = 0;
+ long j;
+ // long count = 0;
long *groupWidths = NULL, *groupLengths = NULL;
long orderOfSPD = 0;
long* SPD = 0;
@@ -456,7 +457,7 @@ static int unpack(grib_accessor* a, double* dvalues, float* fvalues, size_t* len
&X[n]);
for (j = 0; j < groupLengths[i]; j++) {
X[n] += firstOrderValues[i];
- count++;
+ // count++;
n++;
}
@@ -804,7 +805,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (grib_get_nearest_smaller_value(handle, self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
binary_scale_factor = grib_get_binary_scale_fact(max, reference_value, bits_per_value, &ret);
@@ -1350,10 +1351,10 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
/* ECC-259: Set correct number of values */
ret = grib_set_long_internal(a->parent->h, self->number_of_values, *len);
- if (ret)
- return ret;
+ if (ret) return ret;
- grib_buffer_replace(a, buffer, size, 1, 1);
+ ret = grib_buffer_replace(a, buffer, size, 1, 1);
+ if (ret) return ret;
grib_context_free(a->context, buffer);
grib_context_free(a->context, X);
diff --git a/src/grib_accessor_class_data_g1simple_packing.cc b/src/grib_accessor_class_data_g1simple_packing.cc
index cd3e6ab38..cc810e4ae 100644
--- a/src/grib_accessor_class_data_g1simple_packing.cc
+++ b/src/grib_accessor_class_data_g1simple_packing.cc
@@ -194,16 +194,22 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
}
if (units_factor != 1.0) {
- if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] = val[i] * units_factor + units_bias;
- else
- for (i = 0; i < n_vals; i++)
+ }
+ }
+ else {
+ for (i = 0; i < n_vals; i++) {
val[i] *= units_factor;
+ }
+ }
}
- else if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ else if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] += units_bias;
+ }
+ }
if (c->ieee_packing && self->ieee_packing) {
long precision = 0; /* Either 1(=32 bits) or 2(=64 bits) */
@@ -236,9 +242,10 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
constantFieldHalfByte = 0;
if ((ret = grib_set_long_internal(grib_handle_of_accessor(a), self->half_byte, constantFieldHalfByte)) != GRIB_SUCCESS)
return ret;
- grib_buffer_replace(a, NULL, 0, 1, 1);
+ ret = grib_buffer_replace(a, NULL, 0, 1, 1);
+ if (ret != GRIB_SUCCESS) return ret;
return GRIB_SUCCESS;
- break;
+
case GRIB_NO_VALUES:
ret = grib_get_long(grib_handle_of_accessor(a), "constantFieldHalfByte", &constantFieldHalfByte);
if (ret)
@@ -252,11 +259,12 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
return ret;
if ((ret = grib_set_long_internal(grib_handle_of_accessor(a), self->half_byte, constantFieldHalfByte)) != GRIB_SUCCESS)
return ret;
- grib_buffer_replace(a, NULL, 0, 1, 1);
+ ret = grib_buffer_replace(a, NULL, 0, 1, 1);
+ if (ret != GRIB_SUCCESS) return ret;
return GRIB_SUCCESS;
- break;
+
case GRIB_INVALID_BPV:
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to compute packing parameters. Invalid bits per value");
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to compute packing parameters. Invalid bits per value");
return ret;
case GRIB_SUCCESS:
break;
@@ -313,7 +321,8 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
grib_context_log(a->context, GRIB_LOG_DEBUG,
"grib_accessor_data_g1simple_packing : pack_double : packing %s, %d values", a->name, n_vals);
- grib_buffer_replace(a, buf, buflen, 1, 1);
+ ret = grib_buffer_replace(a, buf, buflen, 1, 1);
+ if (ret != GRIB_SUCCESS) return ret;
grib_context_buffer_free(a->context, buf);
diff --git a/src/grib_accessor_class_data_g22order_packing.cc b/src/grib_accessor_class_data_g22order_packing.cc
index af462d667..4ed535d29 100644
--- a/src/grib_accessor_class_data_g22order_packing.cc
+++ b/src/grib_accessor_class_data_g22order_packing.cc
@@ -267,11 +267,9 @@ static void add_bitstream(bitstream_context *ctx, grib_accessor* a, int t, int n
return;
}
-/*
- * find min/max of an integer array
- * return 0: if min max found
- * return 1: if min max not found, min = max = 0
- */
+// find min/max of an integer array
+// return 0: if min max found
+// return 1: if min max not found, min = max = 0
static int int_min_max_array(int* data, unsigned int n, int* min, int* max)
{
unsigned int first;
@@ -1325,8 +1323,8 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
grib_context_log(a->context, GRIB_LOG_ERROR, "%s packing: failed to get min max of data", cclass_name);
return GRIB_ENCODING_ERROR;
}
- min_val = static_cast(mn);
- max_val = static_cast(mx);
+ min_val = mn;
+ max_val = mx;
binary_scale = bin_scale;
@@ -1774,7 +1772,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
unsigned char* sec7 = reinterpret_cast(grib_context_malloc(a->context, size_sec7));
if (sec7 == NULL) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "%s packing: unable to allocate %d bytes", cclass_name, size_sec7);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Unable to allocate %d bytes", cclass_name, size_sec7);
return GRIB_OUT_OF_MEMORY;
}
diff --git a/src/grib_accessor_class_data_g2secondary_bitmap.cc b/src/grib_accessor_class_data_g2secondary_bitmap.cc
index ee9f8f0be..cceb3d765 100644
--- a/src/grib_accessor_class_data_g2secondary_bitmap.cc
+++ b/src/grib_accessor_class_data_g2secondary_bitmap.cc
@@ -108,35 +108,27 @@ grib_accessor_class* grib_accessor_class_data_g2secondary_bitmap = &_grib_access
static void init(grib_accessor* a, const long v, grib_arguments* args)
{
grib_accessor_data_g2secondary_bitmap* self = (grib_accessor_data_g2secondary_bitmap*)a;
- self->number_of_values = grib_arguments_get_name(grib_handle_of_accessor(a), args, 4);
+ self->number_of_values = grib_arguments_get_name(grib_handle_of_accessor(a), args, 4);
}
static int value_count(grib_accessor* a, long* len)
{
grib_accessor_data_g2secondary_bitmap* self = (grib_accessor_data_g2secondary_bitmap*)a;
- *len = 0;
-
+ *len = 0;
return grib_get_long_internal(grib_handle_of_accessor(a), self->number_of_values, len);
}
static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_data_g2secondary_bitmap* self = (grib_accessor_data_g2secondary_bitmap*)a;
-
int err = 0;
- long primary_len = 0;
- long secondary_len = 0;
+ long primary_len = 0, secondary_len = 0;
double* primary_bitmap = NULL;
double* secondary_bitmap = NULL;
- long i = 0;
- long j = 0;
- long on = 0;
- long k;
- long m;
- double missing_value = 0;
- double present_value = 0;
- long expand_by = 0;
+ long i = 0, j = 0, k = 0, m = 0;
+ double missing_value = 0, present_value = 0;
+ long expand_by = 0;
if (*len == 0)
return GRIB_NO_VALUES;
@@ -185,7 +177,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
primary_bitmap[k++] = present_value;
for (j = 0; j < expand_by; j++)
secondary_bitmap[m++] = val[i + j];
- on++;
+ //on++;
}
}
diff --git a/src/grib_accessor_class_data_g2simple_packing.cc b/src/grib_accessor_class_data_g2simple_packing.cc
index 69e1bdbc9..56441fc96 100644
--- a/src/grib_accessor_class_data_g2simple_packing.cc
+++ b/src/grib_accessor_class_data_g2simple_packing.cc
@@ -177,16 +177,21 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
}
if (units_factor != 1.0) {
- if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] = val[i] * units_factor + units_bias;
- else
- for (i = 0; i < n_vals; i++)
+ }
+ } else {
+ for (i = 0; i < n_vals; i++) {
val[i] *= units_factor;
+ }
+ }
}
- else if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ else if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] += units_bias;
+ }
+ }
/* IEEE packing */
if (c->ieee_packing) {
diff --git a/src/grib_accessor_class_data_jpeg2000_packing.cc b/src/grib_accessor_class_data_jpeg2000_packing.cc
index 66d6f6767..a1a43b6f7 100644
--- a/src/grib_accessor_class_data_jpeg2000_packing.cc
+++ b/src/grib_accessor_class_data_jpeg2000_packing.cc
@@ -225,7 +225,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
grib_accessor_data_jpeg2000_packing* self = (grib_accessor_data_jpeg2000_packing*)a;
int err = GRIB_SUCCESS;
- int i;
+ size_t i = 0;
size_t buflen = grib_byte_count(a);
double bscale = 0;
@@ -304,16 +304,21 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
val[i] = (val[i] * bscale + reference_value) * dscale;
}
if (units_factor != 1.0) {
- if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] = val[i] * units_factor + units_bias;
- else
- for (i = 0; i < n_vals; i++)
+ }
+ } else {
+ for (i = 0; i < n_vals; i++) {
val[i] *= units_factor;
+ }
+ }
}
- else if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ else if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] += units_bias;
+ }
+ }
return err;
}
@@ -384,7 +389,6 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len)
grib_buffer_replace(a, NULL, 0, 1, 1);
err = grib_set_long_internal(grib_handle_of_accessor(a), self->number_of_values, *len);
return err;
- break;
case GRIB_SUCCESS:
break;
default:
diff --git a/src/grib_accessor_class_data_png_packing.cc b/src/grib_accessor_class_data_png_packing.cc
index 44e9b41f6..e9747b19d 100644
--- a/src/grib_accessor_class_data_png_packing.cc
+++ b/src/grib_accessor_class_data_png_packing.cc
@@ -136,26 +136,25 @@ grib_accessor_class* grib_accessor_class_data_png_packing = &_grib_accessor_clas
static void init(grib_accessor* a, const long v, grib_arguments* args)
{
grib_accessor_data_png_packing* self = (grib_accessor_data_png_packing*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
- self->number_of_values = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->reference_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->binary_scale_factor = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->decimal_scale_factor = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->bits_per_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
-
- self->ni = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->nj = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
-
- self->list_defining_points = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->number_of_data_points = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
- self->scanning_mode = grib_arguments_get_name(grib_handle_of_accessor(a), args, self->carg++);
+ self->number_of_values = grib_arguments_get_name(h, args, self->carg++);
+ self->reference_value = grib_arguments_get_name(h, args, self->carg++);
+ self->binary_scale_factor = grib_arguments_get_name(h, args, self->carg++);
+ self->decimal_scale_factor = grib_arguments_get_name(h, args, self->carg++);
+ self->bits_per_value = grib_arguments_get_name(h, args, self->carg++);
+ self->ni = grib_arguments_get_name(h, args, self->carg++);
+ self->nj = grib_arguments_get_name(h, args, self->carg++);
+ self->list_defining_points = grib_arguments_get_name(h, args, self->carg++);
+ self->number_of_data_points = grib_arguments_get_name(h, args, self->carg++);
+ self->scanning_mode = grib_arguments_get_name(h, args, self->carg++);
a->flags |= GRIB_ACCESSOR_FLAG_DATA;
}
static int value_count(grib_accessor* a, long* n_vals)
{
grib_accessor_data_png_packing* self = (grib_accessor_data_png_packing*)a;
- *n_vals = 0;
+ *n_vals = 0;
return grib_get_long_internal(grib_handle_of_accessor(a), self->number_of_values, n_vals);
}
@@ -228,10 +227,9 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
self->dirty = 0;
- err = grib_value_count(a, &nn);
+ err = grib_value_count(a, &nn);
n_vals = nn;
- if (err)
- return err;
+ if (err) return err;
if ((err = grib_get_long_internal(grib_handle_of_accessor(a), self->bits_per_value, &bits_per_value)) != GRIB_SUCCESS)
return err;
@@ -467,6 +465,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
width = ni;
height = nj;
+ // jPointsAreConsecutive
if ((scanning_mode & (1 << 5)) != 0) {
long tmp = width;
width = height;
@@ -509,7 +508,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (grib_get_nearest_smaller_value(grib_handle_of_accessor(a), self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
diff --git a/src/grib_accessor_class_data_raw_packing.cc b/src/grib_accessor_class_data_raw_packing.cc
index 336c73684..27c3d62e3 100644
--- a/src/grib_accessor_class_data_raw_packing.cc
+++ b/src/grib_accessor_class_data_raw_packing.cc
@@ -164,7 +164,6 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
break;
default:
return GRIB_NOT_IMPLEMENTED;
- break;
}
nvals = inlen / bytes;
@@ -218,7 +217,6 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
default:
code = GRIB_NOT_IMPLEMENTED;
goto clean_up;
- break;
}
bufsize = bytes * inlen;
@@ -282,7 +280,6 @@ static int unpack_double_element(grib_accessor* a, size_t idx, double* val)
default:
return GRIB_NOT_IMPLEMENTED;
- break;
}
pos = bytes * idx;
diff --git a/src/grib_accessor_class_data_sh_packed.cc b/src/grib_accessor_class_data_sh_packed.cc
index a02d60275..25687d262 100644
--- a/src/grib_accessor_class_data_sh_packed.cc
+++ b/src/grib_accessor_class_data_sh_packed.cc
@@ -204,7 +204,8 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
size_t i = 0;
int ret = GRIB_SUCCESS;
- long hcount = 0, lcount = 0, hpos = 0, lup = 0, mmax = 0, n_vals = 0;
+ // long lup = 0;
+ long hcount = 0, lcount = 0, hpos = 0, mmax = 0, n_vals = 0;
double* scals = NULL;
/* double *pscals=NULL; */
@@ -330,12 +331,12 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
i = 0;
while (maxv > 0) {
- lup = mmax;
+ // lup = mmax;
if (sub_k >= 0) {
for (hcount = 0; hcount < sub_k + 1; hcount++) {
decode_float(grib_decode_unsigned_long(hres, &hpos, 8 * bytes));
decode_float(grib_decode_unsigned_long(hres, &hpos, 8 * bytes));
- lup++;
+ // lup++;
}
sub_k--;
}
@@ -352,7 +353,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
reference_value);
if (mmax == 0)
val[i - 1] = 0;
- lup++;
+ // lup++;
}
maxv--;
diff --git a/src/grib_accessor_class_data_simple_packing.cc b/src/grib_accessor_class_data_simple_packing.cc
index f8eed0d3c..e78bda53c 100644
--- a/src/grib_accessor_class_data_simple_packing.cc
+++ b/src/grib_accessor_class_data_simple_packing.cc
@@ -406,16 +406,21 @@ static int unpack(grib_accessor* a, T* val, size_t* len)
*len = (long)n_vals;
if (units_factor != 1.0) {
- if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] = val[i] * units_factor + units_bias;
- else
- for (i = 0; i < n_vals; i++)
+ }
+ } else {
+ for (i = 0; i < n_vals; i++) {
val[i] *= units_factor;
+ }
+ }
}
- else if (units_bias != 0.0)
- for (i = 0; i < n_vals; i++)
+ else if (units_bias != 0.0) {
+ for (i = 0; i < n_vals; i++) {
val[i] += units_bias;
+ }
+ }
return err;
}
@@ -632,7 +637,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
else if (val[i] < min) min = val[i];
}
- if ((err = grib_check_data_values_range(gh, min, max)) != GRIB_SUCCESS) {
+ if ((err = grib_check_data_values_minmax(gh, min, max)) != GRIB_SUCCESS) {
return err;
}
@@ -640,7 +645,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (max == min) {
int large_constant_fields = 0;
if (grib_get_nearest_smaller_value(gh, self->reference_value, val[0], &reference_value) != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
if ((err = grib_set_double_internal(gh, self->reference_value, reference_value)) != GRIB_SUCCESS)
@@ -722,7 +727,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
return err;
if (grib_get_nearest_smaller_value(gh, self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
/* divisor=1; */
@@ -737,7 +742,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
/* divisor=1; */
if (grib_get_nearest_smaller_value(gh, self->reference_value, min, &reference_value) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
}
@@ -776,7 +781,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (grib_get_nearest_smaller_value(gh, self->reference_value,
min, &reference_value) != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to find nearest_smaller_value of %g for %s", min, self->reference_value);
return GRIB_INTERNAL_ERROR;
}
diff --git a/src/grib_accessor_class_dictionary.cc b/src/grib_accessor_class_dictionary.cc
index 0f46c43eb..dde22abdc 100644
--- a/src/grib_accessor_class_dictionary.cc
+++ b/src/grib_accessor_class_dictionary.cc
@@ -179,7 +179,7 @@ static grib_trie* load_dictionary(grib_accessor* a, int* err)
}
if (!filename) {
- grib_context_log(c, GRIB_LOG_ERROR, "unable to find def file %s", self->dictionary);
+ grib_context_log(c, GRIB_LOG_ERROR, "Unable to find def file %s", self->dictionary);
*err = GRIB_FILE_NOT_FOUND;
return NULL;
}
diff --git a/src/grib_accessor_class_divdouble.cc b/src/grib_accessor_class_divdouble.cc
index e4e5442ef..8ab86e22e 100644
--- a/src/grib_accessor_class_divdouble.cc
+++ b/src/grib_accessor_class_divdouble.cc
@@ -7,11 +7,6 @@
* 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.
*/
-
-/*****************************************
- * Enrico Fucile
- ****************************************/
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -108,7 +103,7 @@ grib_accessor_class* grib_accessor_class_divdouble = &_grib_accessor_class_divdo
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_divdouble* self = (grib_accessor_divdouble*)a;
- int n = 0;
+ int n = 0;
self->val = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
self->divisor = grib_arguments_get_double(grib_handle_of_accessor(a), c, n++);
@@ -116,22 +111,17 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
- grib_accessor_divdouble* self = (grib_accessor_divdouble*)a;
- int ret = GRIB_SUCCESS;
- double value = 0;
-
- if (*len < 1) {
- *len = 1;
- return GRIB_ARRAY_TOO_SMALL;
- }
+ const grib_accessor_divdouble* self = (grib_accessor_divdouble*)a;
+ int ret = GRIB_SUCCESS;
+ double value = 0;
ret = grib_get_double_internal(grib_handle_of_accessor(a), self->val, &value);
-
if (ret != GRIB_SUCCESS)
return ret;
- /* fprintf(stdout,"\nname %s %s %g/%g\n",a->name ,self->val,value,divisor);*/
- Assert(self->divisor != 0);
+ if (self->divisor == 0) {
+ return GRIB_INVALID_ARGUMENT;
+ }
*val = value / self->divisor;
*len = 1;
diff --git a/src/grib_accessor_class_double.cc b/src/grib_accessor_class_double.cc
index 3f635720c..3a2933aff 100644
--- a/src/grib_accessor_class_double.cc
+++ b/src/grib_accessor_class_double.cc
@@ -113,6 +113,7 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
char repres[1024];
char format[32] = "%g";
grib_handle* h = grib_handle_of_accessor(a);
+ const char* cclass_name = a->cclass->name;
grib_unpack_double(a, &val, &l);
@@ -127,8 +128,9 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
l = strlen(repres) + 1;
if (l > *len) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_long : unpack_string : Buffer too small for %s ", a->name);
-
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_element.cc b/src/grib_accessor_class_element.cc
index 5de471be4..2041cd62d 100644
--- a/src/grib_accessor_class_element.cc
+++ b/src/grib_accessor_class_element.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -21,6 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long;
+ IMPLEMENTS = unpack_double
IMPLEMENTS = init
MEMBERS=const char* array
MEMBERS=long element
@@ -39,6 +35,7 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int pack_long(grib_accessor*, const long* val, size_t* len);
+static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static void init(grib_accessor*, const long, grib_arguments*);
@@ -77,7 +74,7 @@ static grib_accessor_class _grib_accessor_class_element = {
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
- 0, /* unpack_double */
+ &unpack_double, /* unpack_double */
0, /* unpack_float */
0, /* pack_string */
0, /* unpack_string */
@@ -110,10 +107,22 @@ grib_accessor_class* grib_accessor_class_element = &_grib_accessor_class_element
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_element* self = (grib_accessor_element*)a;
- int n = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
- self->array = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->element = grib_arguments_get_long(grib_handle_of_accessor(a), c, n++);
+ int n = 0;
+ self->array = grib_arguments_get_name(hand, c, n++);
+ self->element = grib_arguments_get_long(hand, c, n++);
+}
+
+static int check_element_index(const char* func, const char* array_name, long index, size_t size)
+{
+ const grib_context* c = grib_context_get_default();
+ if (index < 0 || index >= size) {
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Invalid element index %ld for array '%s'. Value must be between 0 and %zu",
+ func, index, array_name, size - 1);
+ return GRIB_INVALID_ARGUMENT;
+ }
+ return GRIB_SUCCESS;
}
static int unpack_long(grib_accessor* a, long* val, size_t* len)
@@ -122,33 +131,37 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
int ret = 0;
size_t size = 0;
long* ar = NULL;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ long index = self->element;
if (*len < 1) {
ret = GRIB_ARRAY_TOO_SMALL;
return ret;
}
- if ((ret = grib_get_size(grib_handle_of_accessor(a), self->array, &size)) != GRIB_SUCCESS)
+ if ((ret = grib_get_size(hand, self->array, &size)) != GRIB_SUCCESS)
return ret;
ar = (long*)grib_context_malloc_clear(c, size * sizeof(long));
if (!ar) {
- grib_context_log(c, GRIB_LOG_ERROR, "unable to allocate %zu bytes", size * sizeof(long));
+ grib_context_log(c, GRIB_LOG_ERROR, "Error allocating %zu bytes", size * sizeof(long));
return GRIB_OUT_OF_MEMORY;
}
- if ((ret = grib_get_long_array_internal(grib_handle_of_accessor(a), self->array, ar, &size)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_array_internal(hand, self->array, ar, &size)) != GRIB_SUCCESS)
return ret;
- if (self->element < 0 || self->element >= size) {
- grib_context_log(c, GRIB_LOG_ERROR, "Invalid element %ld for array '%s'. Value must be between 0 and %lu",
- self->element, self->array, size - 1);
- ret = GRIB_INVALID_ARGUMENT;
+ // An index of -x means the xth item from the end of the list, so ar[-1] means the last item in ar
+ if (index < 0) {
+ index = size + index;
+ }
+
+ if ((ret = check_element_index(__func__, self->array, index, size)) != GRIB_SUCCESS) {
goto the_end;
}
- *val = ar[self->element];
+ *val = ar[index];
the_end:
grib_context_free(c, ar);
@@ -161,30 +174,87 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
int ret = 0;
size_t size = 0;
long* ar = NULL;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ long index = self->element;
if (*len < 1) {
ret = GRIB_ARRAY_TOO_SMALL;
return ret;
}
- if ((ret = grib_get_size(grib_handle_of_accessor(a), self->array, &size)) != GRIB_SUCCESS)
+ if ((ret = grib_get_size(hand, self->array, &size)) != GRIB_SUCCESS)
return ret;
ar = (long*)grib_context_malloc_clear(c, size * sizeof(long));
if (!ar) {
- grib_context_log(c, GRIB_LOG_ERROR, "unable to allocate %zu bytes", size * sizeof(long));
+ grib_context_log(c, GRIB_LOG_ERROR, "Error allocating %zu bytes", size * sizeof(long));
return GRIB_OUT_OF_MEMORY;
}
- if ((ret = grib_get_long_array_internal(grib_handle_of_accessor(a), self->array, ar, &size)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_array_internal(hand, self->array, ar, &size)) != GRIB_SUCCESS)
return ret;
- ar[self->element] = *val;
+ // An index of -x means the xth item from the end of the list, so ar[-1] means the last item in ar
+ if (index < 0) {
+ index = size + index;
+ }
- if ((ret = grib_set_long_array_internal(grib_handle_of_accessor(a), self->array, ar, size)) != GRIB_SUCCESS)
- return ret;
+ if ((ret = check_element_index(__func__, self->array, index, size)) != GRIB_SUCCESS) {
+ goto the_end;
+ }
+ Assert(index >= 0);
+ Assert(index < size);
+ ar[index] = *val;
+
+ if ((ret = grib_set_long_array_internal(hand, self->array, ar, size)) != GRIB_SUCCESS)
+ goto the_end;
+
+the_end:
+ grib_context_free(c, ar);
+ return ret;
+}
+
+static int unpack_double(grib_accessor* a, double* val, size_t* len)
+{
+ grib_accessor_element* self = (grib_accessor_element*)a;
+ int ret = 0;
+ size_t size = 0;
+ double* ar = NULL;
+ const grib_context* c = a->context;
+ const grib_handle* hand = grib_handle_of_accessor(a);
+ long index = self->element;
+
+ if (*len < 1) {
+ ret = GRIB_ARRAY_TOO_SMALL;
+ return ret;
+ }
+
+ if ((ret = grib_get_size(hand, self->array, &size)) != GRIB_SUCCESS)
+ return ret;
+
+ ar = (double*)grib_context_malloc_clear(c, size * sizeof(double));
+ if (!ar) {
+ grib_context_log(c, GRIB_LOG_ERROR, "Error allocating %zu bytes", size * sizeof(double));
+ return GRIB_OUT_OF_MEMORY;
+ }
+
+ if ((ret = grib_get_double_array_internal(hand, self->array, ar, &size)) != GRIB_SUCCESS)
+ return ret;
+
+ // An index of -x means the xth item from the end of the list, so ar[-1] means the last item in ar
+ if (index < 0) {
+ index = size + index;
+ }
+
+ if ((ret = check_element_index(__func__, self->array, index, size)) != GRIB_SUCCESS) {
+ goto the_end;
+ }
+
+ *val = ar[index];
+
+the_end:
grib_context_free(c, ar);
return ret;
}
diff --git a/src/grib_accessor_class_expanded_descriptors.cc b/src/grib_accessor_class_expanded_descriptors.cc
index 9d2fe95fc..11f4ba73b 100644
--- a/src/grib_accessor_class_expanded_descriptors.cc
+++ b/src/grib_accessor_class_expanded_descriptors.cc
@@ -26,7 +26,7 @@ SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
IMPLEMENTS = unpack_double
IMPLEMENTS = unpack_string_array
-IMPLEMENTS = init;dump;destroy
+IMPLEMENTS = init;destroy
IMPLEMENTS = value_count; get_native_type
MEMBERS = const char* unexpandedDescriptors
MEMBERS = const char* sequence
@@ -59,7 +59,6 @@ static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string_array(grib_accessor*, char**, size_t* len);
static int value_count(grib_accessor*, long*);
static void destroy(grib_context*, grib_accessor*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_expanded_descriptors
@@ -90,7 +89,7 @@ static grib_accessor_class _grib_accessor_class_expanded_descriptors = {
&init, /* init */
0, /* post_init */
&destroy, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -162,11 +161,11 @@ typedef struct change_coding_params
static void init(grib_accessor* a, const long len, grib_arguments* args)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- int n = 0;
- grib_handle* hand = grib_handle_of_accessor(a);
- self->tablesAccessorName = grib_arguments_get_name(hand, args, n++);
- self->expandedName = grib_arguments_get_name(hand, args, n++);
- self->rank = grib_arguments_get_long(hand, args, n++);
+ int n = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ self->tablesAccessorName = grib_arguments_get_name(hand, args, n++);
+ self->expandedName = grib_arguments_get_name(hand, args, n++);
+ self->rank = grib_arguments_get_long(hand, args, n++);
if (self->rank != 0) {
self->expandedAccessor = grib_find_accessor(hand, self->expandedName);
}
@@ -180,11 +179,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->length = 0;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static bufr_descriptors_array* do_expand(grib_accessor* a, bufr_descriptors_array* unexpanded, change_coding_params* ccp, int* err);
#define BUFR_DESCRIPTORS_ARRAY_USED_SIZE(v) ((v)->n)
@@ -223,7 +217,7 @@ static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_
* Its max size is X (from FXY) which is 6 bits so no need for malloc */
bufr_descriptor* ur[65] = {0,};
bufr_descriptor* urc = NULL;
- int idx;
+ size_t idx = 0;
bufr_descriptor* u0 = NULL;
grib_context* c = a->context;
bufr_descriptor* us = NULL;
@@ -237,7 +231,7 @@ static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_
if (BUFR_DESCRIPTORS_ARRAY_USED_SIZE(unexpanded) == 0)
return;
- us = grib_bufr_descriptor_clone(grib_bufr_descriptors_array_get(unexpanded, 0));
+ us = grib_bufr_descriptor_clone(grib_bufr_descriptors_array_get(unexpanded, 0));
us->context = c;
*err = 0;
@@ -268,7 +262,7 @@ static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_
inner_unexpanded = grib_bufr_descriptors_array_new(c, DESC_SIZE_INIT, DESC_SIZE_INCR);
for (i = 0; i < size; i++) {
- vv = grib_bufr_descriptor_new(self->tablesAccessor, v_array[i], !SILENT, err);
+ vv = grib_bufr_descriptor_new(self->tablesAccessor, v_array[i], !SILENT, err);
inner_unexpanded = grib_bufr_descriptors_array_push(inner_unexpanded, vv);
}
grib_context_free(c, v_array);
@@ -343,7 +337,7 @@ static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_
*err = GRIB_DECODING_ERROR;
return;
}
- grib_bufr_descriptor_set_code(0, (size - 1) * 1000 + 100000, uidx);
+ grib_bufr_descriptor_set_code(uidx, (size - 1) * 1000 + 100000);
size++;
}
else {
@@ -602,7 +596,7 @@ static int expand(grib_accessor* a)
bufr_descriptors_array* unexpanded_copy = NULL;
bufr_descriptors_array* expanded = NULL;
grib_context* c = a->context;
- grib_handle* h = grib_handle_of_accessor(a);
+ const grib_handle* h = grib_handle_of_accessor(a);
int operator206yyy_width = 0; /* width specified by operator 206YYY */
if (!self->do_expand) {
@@ -713,27 +707,27 @@ static int expand(grib_accessor* a)
int grib_accessor_class_expanded_descriptors_set_do_expand(grib_accessor* a, long do_expand)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- self->do_expand = do_expand;
+ self->do_expand = do_expand;
return 0;
}
bufr_descriptors_array* grib_accessor_class_expanded_descriptors_get_expanded(grib_accessor* a, int* err)
{
- grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- *err = expand(a);
+ const grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
+ *err = expand(a);
return self->expanded;
}
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- int ret = 0;
- int i;
+ int ret = 0;
+ size_t i = 0;
size_t expandedSize;
if (self->rank != 2) {
long* lval = (long*)grib_context_malloc_clear(a->context, *len * sizeof(long));
- ret = unpack_long(a, lval, len);
+ ret = unpack_long(a, lval, len);
if (ret)
return ret;
for (i = 0; i < *len; i++)
@@ -762,9 +756,9 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- int ret = 0;
- size_t rlen = 0;
- size_t i;
+ int ret = 0;
+ size_t rlen = 0;
+ size_t i = 0;
ret = expand(a);
if (ret)
@@ -792,7 +786,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
break;
case 2:
return GRIB_INVALID_TYPE;
- break;
case 3:
for (i = 0; i < *len; i++)
val[i] = self->expanded->v[i]->width;
@@ -813,7 +806,7 @@ static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len)
char buf[25] = {0,};
long llen = 0;
size_t i = 0, size = 0;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
err = grib_value_count(a, &llen);
if (err) return err;
@@ -836,15 +829,15 @@ static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- self->do_expand = 1;
+ self->do_expand = 1;
return GRIB_NOT_IMPLEMENTED;
}
static int value_count(grib_accessor* a, long* rlen)
{
grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a;
- int err = 0;
- *rlen = 0;
+ int err = 0;
+ *rlen = 0;
err = expand(a);
if (err) {
diff --git a/src/grib_accessor_class_g1_half_byte_codeflag.cc b/src/grib_accessor_class_g1_half_byte_codeflag.cc
index 522eb9ee1..c7d9828e0 100644
--- a/src/grib_accessor_class_g1_half_byte_codeflag.cc
+++ b/src/grib_accessor_class_g1_half_byte_codeflag.cc
@@ -19,7 +19,6 @@
IMPLEMENTS = unpack_long;pack_long
IMPLEMENTS = init;dump
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
END_CLASS_DEF
*/
@@ -39,7 +38,6 @@ static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_g1_half_byte_codeflag
{
@@ -88,7 +86,7 @@ static grib_accessor_class _grib_accessor_class_g1_half_byte_codeflag = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -117,13 +115,11 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- unsigned char dat = 0;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
+ *len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
- dat = grib_handle_of_accessor(a)->buffer->data[a->offset] & 0x0f;
+ unsigned char dat = grib_handle_of_accessor(a)->buffer->data[a->offset] & 0x0f;
*val = dat;
*len = 1;
@@ -132,52 +128,20 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int ret = 0;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
+ *len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
- /* printf("HALF BYTE pack long %ld %02x\n",*val,grib_handle_of_accessor(a)->buffer->data[a->offset]);*/
+
+ // printf("HALF BYTE pack long %ld %02x\n",*val,grib_handle_of_accessor(a)->buffer->data[a->offset]);
grib_handle_of_accessor(a)->buffer->data[a->offset] = (a->parent->h->buffer->data[a->offset] & 0xf0) | (*val & 0x0f);
- /* printf("HALF BYTE pack long %ld %02x\n",*val,grib_handle_of_accessor(a)->buffer->data[a->offset]);*/
+ // printf("HALF BYTE pack long %ld %02x\n",*val,grib_handle_of_accessor(a)->buffer->data[a->offset]);
*len = 1;
- return ret;
+ return GRIB_SUCCESS;
}
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
}
-
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- long aval = 0;
- long bval = 0;
-
- long count = 0;
- size_t alen = 0;
- size_t blen = 0;
- int err = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != 1 || blen != 1)
- return GRIB_COUNT_MISMATCH;
-
- grib_unpack_long(a, &aval, &alen);
- grib_unpack_long(b, &bval, &blen);
-
- if (bval != aval)
- return GRIB_VALUE_MISMATCH;
- return GRIB_SUCCESS;
-}
diff --git a/src/grib_accessor_class_g1_message_length.cc b/src/grib_accessor_class_g1_message_length.cc
index adff03efe..1d38e7ea4 100644
--- a/src/grib_accessor_class_g1_message_length.cc
+++ b/src/grib_accessor_class_g1_message_length.cc
@@ -106,7 +106,7 @@ grib_accessor_class* grib_accessor_class_g1_message_length = &_grib_accessor_cla
static void init(grib_accessor* a, const long len, grib_arguments* args)
{
grib_accessor_g1_message_length* self = (grib_accessor_g1_message_length*)a;
- self->sec4_length = grib_arguments_get_name(grib_handle_of_accessor(a), args, 0);
+ self->sec4_length = grib_arguments_get_name(grib_handle_of_accessor(a), args, 0);
}
int grib_get_g1_message_size(grib_handle* h, grib_accessor* tl, grib_accessor* s4,
@@ -134,15 +134,12 @@ int grib_get_g1_message_size(grib_handle* h, grib_accessor* tl, grib_accessor* s
if (slen < 120 && (tlen & 0x800000)) {
/* printf("DECODING large grib tlen=%ld slen=%ld\n",tlen,slen); */
-
tlen &= 0x7fffff;
tlen *= 120;
tlen -= slen;
tlen += 4;
slen = tlen - s4->offset - 4; /* 4 is for 7777 */
-
- /*printf("DECODING large grib total=%ld section4=%ld\n",tlen,slen);*/
}
*total_length = tlen;
@@ -184,7 +181,6 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
slen = t120 * 120 - tlen;
tlen = 0x800000 | t120;
- /* printf("ENCODING large grib total = %ld tlen=%ld slen=%ld \n",*val,tlen,slen); */
*len = 1;
if ((ret = grib_pack_long(s4, &slen, len)) != GRIB_SUCCESS)
return ret;
@@ -198,13 +194,18 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
long total_length = -1, sec4_length = -1;
- grib_get_g1_message_size(grib_handle_of_accessor(a),
- a,
+ grib_get_g1_message_size(grib_handle_of_accessor(a), a,
grib_find_accessor(grib_handle_of_accessor(a), self->sec4_length),
- &total_length,
- &sec4_length);
-
- Assert(total_length == *val);
+ &total_length, &sec4_length);
+ if (total_length != *val) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s %s: Failed to set GRIB1 message length to %ld"
+ " (actual length=%ld)",
+ cclass_name, __func__, *val, total_length);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Hint: Try encoding as GRIB2\n");
+ return GRIB_ENCODING_ERROR;
+ }
}
return GRIB_SUCCESS;
@@ -214,16 +215,14 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g1_message_length* self = (grib_accessor_g1_message_length*)a;
int ret;
-
long total_length, sec4_length;
- if ((ret = grib_get_g1_message_size(grib_handle_of_accessor(a),
- a,
+ if ((ret = grib_get_g1_message_size(grib_handle_of_accessor(a), a,
grib_find_accessor(grib_handle_of_accessor(a), self->sec4_length),
- &total_length,
- &sec4_length)) != GRIB_SUCCESS)
+ &total_length, &sec4_length)) != GRIB_SUCCESS)
+ {
return ret;
-
+ }
*val = total_length;
return GRIB_SUCCESS;
diff --git a/src/grib_accessor_class_g1bitmap.cc b/src/grib_accessor_class_g1bitmap.cc
index bfa835f01..519638f6a 100644
--- a/src/grib_accessor_class_g1bitmap.cc
+++ b/src/grib_accessor_class_g1bitmap.cc
@@ -125,7 +125,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
size_t i;
int err = 0;
long pos = 0;
- long bmaplen = 0;
+ //long bmaplen = 0;
const int bit_padding = 16;
double miss_values = 0;
tlen = ((*len + bit_padding - 1) / bit_padding * bit_padding) / 8;
@@ -141,7 +141,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (val[i] == miss_values)
pos++;
else {
- bmaplen++;
+ //bmaplen++;
grib_set_bit_on(buf, &pos);
}
}
@@ -149,7 +149,8 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if ((err = grib_set_long_internal(grib_handle_of_accessor(a), self->unusedBits, tlen * 8 - *len)) != GRIB_SUCCESS)
return err;
- grib_buffer_replace(a, buf, tlen, 1, 1);
+ err = grib_buffer_replace(a, buf, tlen, 1, 1);
+ if (err) return err;
grib_context_free(a->context, buf);
diff --git a/src/grib_accessor_class_g1date.cc b/src/grib_accessor_class_g1date.cc
index c1efdfc03..c53b3768a 100644
--- a/src/grib_accessor_class_g1date.cc
+++ b/src/grib_accessor_class_g1date.cc
@@ -8,10 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/************************************
- * Enrico Fucile
- ***********************************/
-
#include "grib_api_internal.h"
/*
@@ -21,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long;unpack_string
- IMPLEMENTS = init;dump;value_count
+ IMPLEMENTS = init;value_count
MEMBERS=const char* century
MEMBERS=const char* year
MEMBERS=const char* month
@@ -44,7 +40,6 @@ static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g1date
@@ -70,7 +65,7 @@ static grib_accessor_class _grib_accessor_class_g1date = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -126,21 +121,13 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
self->day = grib_arguments_get_name(hand, c, n++);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- int ret = 0;
grib_accessor_g1date* self = (grib_accessor_g1date*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
+ grib_handle* hand = grib_handle_of_accessor(a);
- long year = 0;
- long century = 0;
- long month = 0;
- long day = 0;
+ int ret = 0;
+ long year = 0, century = 0, month = 0, day = 0;
if ((ret = grib_get_long_internal(hand, self->century, ¢ury)) != GRIB_SUCCESS)
return ret;
@@ -169,25 +156,20 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int ret = 0;
- long v = val[0];
grib_accessor_g1date* self = (grib_accessor_g1date*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
+ grib_handle* hand = grib_handle_of_accessor(a);
- long year = 0;
- long century = 0;
- long month = 0;
- long day = 0;
+ int ret = 0;
+ long v = val[0];
+ long year = 0, century = 0, month = 0, day = 0;
if (*len != 1)
return GRIB_WRONG_ARRAY_SIZE;
- {
- long d = grib_julian_to_date((long)grib_date_to_julian(v));
- if (v != d) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_g1date: pack_long invalid date %ld, changed to %ld", v, d);
- return GRIB_ENCODING_ERROR;
- }
+ long d = grib_julian_to_date(grib_date_to_julian(v));
+ if (v != d) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_g1date: pack_long invalid date %ld, changed to %ld", v, d);
+ return GRIB_ENCODING_ERROR;
}
century = v / 1000000;
@@ -232,15 +214,12 @@ static const char* months[] = {
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int ret = 0;
- char tmp[1024];
grib_accessor_g1date* self = (grib_accessor_g1date*)a;
grib_handle* hand = grib_handle_of_accessor(a);
- long year = 0;
- long century = 0;
- long month = 0;
- long day = 0;
- size_t l;
+
+ int ret = 0;
+ char tmp[1024];
+ long year = 0, century = 0, month = 0, day = 0;
if ((ret = grib_get_long_internal(hand, self->century, ¢ury)) != GRIB_SUCCESS)
return ret;
@@ -259,14 +238,13 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
}
else if (year == 255 && month >= 1 && month <= 12) {
snprintf(tmp, sizeof(tmp), "%s-%02ld", months[month - 1], day);
- /* snprintf(tmp,sizeof(tmp),"%02ld-%02ld",month,day); */
}
else {
long x = ((century - 1) * 100 + year) * 10000 + month * 100 + day;
snprintf(tmp, sizeof(tmp), "%ld", x);
}
- l = strlen(tmp) + 1;
+ size_t l = strlen(tmp) + 1;
if (*len < l) {
*len = l;
return GRIB_BUFFER_TOO_SMALL;
diff --git a/src/grib_accessor_class_g1day_of_the_year_date.cc b/src/grib_accessor_class_g1day_of_the_year_date.cc
index 6745bbf56..9028d5076 100644
--- a/src/grib_accessor_class_g1day_of_the_year_date.cc
+++ b/src/grib_accessor_class_g1day_of_the_year_date.cc
@@ -120,32 +120,26 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
/* special clim case where each mont have 30 days.. to comply with mars*/
grib_accessor_g1day_of_the_year_date* self = (grib_accessor_g1day_of_the_year_date*)a;
-
+ grib_handle* hand = grib_handle_of_accessor(a);
char tmp[1024];
long year = 0;
long century = 0;
long month = 0;
long day = 0;
-
- long fullyear = 0;
+ long fullyear = 0;
long fake_day_of_year = 0;
- size_t l;
+ grib_get_long_internal(hand, self->century, ¢ury);
+ grib_get_long_internal(hand, self->day, &day);
+ grib_get_long_internal(hand, self->month, &month);
+ grib_get_long_internal(hand, self->year, &year);
- grib_get_long_internal(grib_handle_of_accessor(a), self->century, ¢ury);
- grib_get_long_internal(grib_handle_of_accessor(a), self->day, &day);
- grib_get_long_internal(grib_handle_of_accessor(a), self->month, &month);
- grib_get_long_internal(grib_handle_of_accessor(a), self->year, &year);
-
- if (*len < 1)
- return GRIB_BUFFER_TOO_SMALL;
-
- fullyear = ((century - 1) * 100 + year);
+ fullyear = ((century - 1) * 100 + year);
fake_day_of_year = ((month - 1) * 30) + day;
snprintf(tmp, sizeof(tmp), "%04ld-%03ld", fullyear, fake_day_of_year);
- l = strlen(tmp) + 1;
+ size_t l = strlen(tmp) + 1;
if (*len < l) {
*len = l;
return GRIB_BUFFER_TOO_SMALL;
diff --git a/src/grib_accessor_class_g1end_of_interval_monthly.cc b/src/grib_accessor_class_g1end_of_interval_monthly.cc
index 5e39e6882..cbf74322c 100644
--- a/src/grib_accessor_class_g1end_of_interval_monthly.cc
+++ b/src/grib_accessor_class_g1end_of_interval_monthly.cc
@@ -117,8 +117,7 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_HIDDEN;
self->number_of_elements = 6;
- self->v = (double*)grib_context_malloc(a->context,
- sizeof(double) * self->number_of_elements);
+ self->v = (double*)grib_context_malloc(a->context, sizeof(double) * self->number_of_elements);
a->length = 0;
a->dirty = 1;
@@ -127,8 +126,8 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_g1end_of_interval_monthly* self = (grib_accessor_g1end_of_interval_monthly*)a;
- int ret = 0;
- char verifyingMonth[7] = {0,};
+ int ret = 0;
+ char verifyingMonth[7] = {0,};
size_t slen = 7;
long year = 0, month = 0, date = 0;
const long mdays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
@@ -144,6 +143,9 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
return ret;
date = atoi(verifyingMonth);
+ if (date < 0) {
+ return GRIB_INVALID_ARGUMENT;
+ }
year = date / 100;
month = date - year * 100;
if (month == 2) {
@@ -151,9 +153,10 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
days = 29;
}
- else
+ else {
+ if (month < 1 || month > 12) return GRIB_INVALID_ARGUMENT;
days = mdays[month - 1];
-
+ }
self->v[0] = year;
self->v[1] = month;
@@ -217,13 +220,11 @@ static int compare(grib_accessor* a, grib_accessor* b)
b->dirty = 1;
a->dirty = 1;
- grib_unpack_double(a, aval, &alen);
- grib_unpack_double(b, bval, &blen);
+ err = grib_unpack_double(a, aval, &alen); if(err) return err;
+ err = grib_unpack_double(b, bval, &blen); if(err) return err;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ for(size_t i=0; icontext, aval);
diff --git a/src/grib_accessor_class_g1monthlydate.cc b/src/grib_accessor_class_g1monthlydate.cc
index 503d0daa4..57c3ea729 100644
--- a/src/grib_accessor_class_g1monthlydate.cc
+++ b/src/grib_accessor_class_g1monthlydate.cc
@@ -22,7 +22,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* date
END_CLASS_DEF
@@ -39,7 +39,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g1monthlydate
@@ -62,7 +61,7 @@ static grib_accessor_class _grib_accessor_class_g1monthlydate = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -115,11 +114,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g1monthlydate* self = (grib_accessor_g1monthlydate*)a;
diff --git a/src/grib_accessor_class_g1verificationdate.cc b/src/grib_accessor_class_g1verificationdate.cc
index a3272acc2..03c871617 100644
--- a/src/grib_accessor_class_g1verificationdate.cc
+++ b/src/grib_accessor_class_g1verificationdate.cc
@@ -17,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* date
MEMBERS=const char* time
MEMBERS=const char* step
@@ -36,7 +36,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g1verificationdate
@@ -61,7 +60,7 @@ static grib_accessor_class _grib_accessor_class_g1verificationdate = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -117,11 +116,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g1verificationdate* self = (grib_accessor_g1verificationdate*)a;
diff --git a/src/grib_accessor_class_g2_mars_labeling.cc b/src/grib_accessor_class_g2_mars_labeling.cc
index f6437c279..ad0647e30 100644
--- a/src/grib_accessor_class_g2_mars_labeling.cc
+++ b/src/grib_accessor_class_g2_mars_labeling.cc
@@ -165,7 +165,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
return grib_get_long(grib_handle_of_accessor(a), key, val);
@@ -190,7 +189,6 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
return grib_get_string(grib_handle_of_accessor(a), key, val, len);
@@ -226,7 +224,6 @@ static int extra_set(grib_accessor* a, long val)
case 0:
/* class */
return ret;
- break;
case 1:
/* type */
switch (val) {
@@ -400,7 +397,6 @@ static int extra_set(grib_accessor* a, long val)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
if (productDefinitionTemplateNumberNew >= 0) {
@@ -442,7 +438,6 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
ret = grib_set_string(grib_handle_of_accessor(a), key, val, len);
@@ -476,7 +471,6 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
ret = grib_set_long(grib_handle_of_accessor(a), key, *val);
@@ -513,7 +507,6 @@ static int get_native_type(grib_accessor* a)
grib_context_log(a->context, GRIB_LOG_ERROR,
"invalid first argument of g2_mars_labeling in %s", a->name);
return GRIB_INTERNAL_ERROR;
- break;
}
ret = grib_get_native_type(grib_handle_of_accessor(a), key, &type);
diff --git a/src/grib_accessor_class_g2bitmap.cc b/src/grib_accessor_class_g2bitmap.cc
index 3d928e804..441ad70a6 100644
--- a/src/grib_accessor_class_g2bitmap.cc
+++ b/src/grib_accessor_class_g2bitmap.cc
@@ -134,7 +134,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
size_t i;
int err = 0;
long pos = 0;
- long bmaplen = 0;
+ // long bmaplen = 0;
double miss_values = 0;
tlen = (*len + 7) / 8;
@@ -149,7 +149,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
if (val[i] == miss_values)
pos++;
else {
- bmaplen++;
+ // bmaplen++;
grib_set_bit_on(buf, &pos);
}
}
diff --git a/src/grib_accessor_class_g2date.cc b/src/grib_accessor_class_g2date.cc
index 4ed01d99e..698cd4a26 100644
--- a/src/grib_accessor_class_g2date.cc
+++ b/src/grib_accessor_class_g2date.cc
@@ -16,7 +16,7 @@
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_long
- IMPLEMENTS = unpack_long;pack_long;init;dump
+ IMPLEMENTS = unpack_long;pack_long;init
MEMBERS=const char* century
MEMBERS=const char* year
MEMBERS=const char* month
@@ -37,7 +37,6 @@ or edit "accessor.class" and rerun ./make_class.pl
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g2date
@@ -63,7 +62,7 @@ static grib_accessor_class _grib_accessor_class_g2date = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -116,16 +115,11 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
self->day = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- int ret = 0;
- grib_accessor_g2date* self = (grib_accessor_g2date*)a;
+ const grib_accessor_g2date* self = (grib_accessor_g2date*)a;
+ int ret = 0;
long year = 0;
long month = 0;
long day = 0;
@@ -145,13 +139,12 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS;
}
-/* TODO: Check for a valid date */
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int ret;
- long v = val[0];
- grib_accessor_g2date* self = (grib_accessor_g2date*)a;
+ const grib_accessor_g2date* self = (grib_accessor_g2date*)a;
+ int ret = GRIB_SUCCESS;
+ long v = val[0];
long year = 0;
long month = 0;
long day = 0;
@@ -165,6 +158,12 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
v %= 100;
day = v;
+ if (!is_date_valid(year, month, day, 0, 0, 0)) {
+ // ECC-1777: For now just a warning. Will later change to an error
+ fprintf(stderr, "ECCODES WARNING : %s:%s: Date is not valid! year=%ld month=%ld day=%ld\n",
+ a->cclass->name, __func__, year, month, day);
+ }
+
if ((ret = grib_set_long_internal(grib_handle_of_accessor(a), self->day, day)) != GRIB_SUCCESS)
return ret;
if ((ret = grib_set_long_internal(grib_handle_of_accessor(a), self->month, month)) != GRIB_SUCCESS)
diff --git a/src/grib_accessor_class_g2end_step.cc b/src/grib_accessor_class_g2end_step.cc
index 2a044d294..a86733eb3 100644
--- a/src/grib_accessor_class_g2end_step.cc
+++ b/src/grib_accessor_class_g2end_step.cc
@@ -9,6 +9,10 @@
*/
#include "grib_api_internal.h"
+#include "step.h"
+#include "step_utilities.h"
+#include
+
/*
This is used by make_class.pl
@@ -16,9 +20,12 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
+ IMPLEMENTS = unpack_double
+ IMPLEMENTS = unpack_string;pack_string
IMPLEMENTS = init;dump
- MEMBERS = const char* start_step
- MEMBERS = const char* unit
+ IMPLEMENTS = get_native_type
+ MEMBERS = const char* start_step_value
+ MEMBERS = const char* step_units
MEMBERS = const char* year
MEMBERS = const char* month
@@ -34,8 +41,8 @@
MEMBERS = const char* minute_of_end_of_interval
MEMBERS = const char* second_of_end_of_interval
- MEMBERS = const char* coded_unit
- MEMBERS = const char* coded_time_range
+ MEMBERS = const char* time_range_unit
+ MEMBERS = const char* time_range_value
MEMBERS = const char* typeOfTimeIncrement
MEMBERS = const char* numberOfTimeRange
@@ -53,8 +60,12 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
+static int get_native_type(grib_accessor*);
static int pack_long(grib_accessor*, const long* val, size_t* len);
+static int pack_string(grib_accessor*, const char*, size_t* len);
+static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
+static int unpack_string(grib_accessor*, char*, size_t* len);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
@@ -64,8 +75,8 @@ typedef struct grib_accessor_g2end_step
/* Members defined in gen */
/* Members defined in long */
/* Members defined in g2end_step */
- const char* start_step;
- const char* unit;
+ const char* start_step_value;
+ const char* step_units;
const char* year;
const char* month;
const char* day;
@@ -78,8 +89,8 @@ typedef struct grib_accessor_g2end_step
const char* hour_of_end_of_interval;
const char* minute_of_end_of_interval;
const char* second_of_end_of_interval;
- const char* coded_unit;
- const char* coded_time_range;
+ const char* time_range_unit;
+ const char* time_range_value;
const char* typeOfTimeIncrement;
const char* numberOfTimeRange;
} grib_accessor_g2end_step;
@@ -101,7 +112,7 @@ static grib_accessor_class _grib_accessor_class_g2end_step = {
0, /* get number of values */
0, /* get number of bytes */
0, /* get offset to bytes */
- 0, /* get native type */
+ &get_native_type, /* get native type */
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
@@ -109,10 +120,10 @@ static grib_accessor_class _grib_accessor_class_g2end_step = {
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
- 0, /* unpack_double */
+ &unpack_double, /* unpack_double */
0, /* unpack_float */
- 0, /* pack_string */
- 0, /* unpack_string */
+ &pack_string, /* pack_string */
+ &unpack_string, /* unpack_string */
0, /* pack_string_array */
0, /* unpack_string_array */
0, /* pack_bytes */
@@ -142,11 +153,11 @@ grib_accessor_class* grib_accessor_class_g2end_step = &_grib_accessor_class_g2en
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
- int n = 0;
- grib_handle* h = grib_handle_of_accessor(a);
+ int n = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
- self->start_step = grib_arguments_get_name(h, c, n++);
- self->unit = grib_arguments_get_name(h, c, n++);
+ self->start_step_value = grib_arguments_get_name(h, c, n++);
+ self->step_units = grib_arguments_get_name(h, c, n++);
self->year = grib_arguments_get_name(h, c, n++);
self->month = grib_arguments_get_name(h, c, n++);
@@ -162,8 +173,8 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
self->minute_of_end_of_interval = grib_arguments_get_name(h, c, n++);
self->second_of_end_of_interval = grib_arguments_get_name(h, c, n++);
- self->coded_unit = grib_arguments_get_name(h, c, n++);
- self->coded_time_range = grib_arguments_get_name(h, c, n++);
+ self->time_range_unit = grib_arguments_get_name(h, c, n++);
+ self->time_range_value = grib_arguments_get_name(h, c, n++);
self->typeOfTimeIncrement = grib_arguments_get_name(h, c, n++);
self->numberOfTimeRange = grib_arguments_get_name(h, c, n++);
}
@@ -173,42 +184,6 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
grib_dump_double(dumper, a, NULL);
}
-static const int u2s2[] = {
- 60, /* (0) minutes */
- 3600, /* (1) hour */
- 86400, /* (2) day */
- 2592000, /* (3) month */
- -1, /* (4) */
- -1, /* (5) */
- -1, /* (6) */
- -1, /* (7) */
- -1, /* (8) */
- -1, /* (9) */
- 10800, /* (10) 3 hours */
- 21600, /* (11) 6 hours */
- 43200, /* (12) 12 hours */
- 1 /* (13) seconds */
-};
-
-static const int u2s[] = {
- 60, /* (0) minutes */
- 3600, /* (1) hour */
- 86400, /* (2) day */
- 2592000, /* (3) month */
- -1, /* (4) */
- -1, /* (5) */
- -1, /* (6) */
- -1, /* (7) */
- -1, /* (8) */
- -1, /* (9) */
- 10800, /* (10) 3 hours */
- 21600, /* (11) 6 hours */
- 43200, /* (12) 12 hours */
- 1, /* (13) seconds */
- 900, /* (14) 15 minutes */
- 1800 /* (15) 30 minutes */
-};
-
// See GRIB-488
static bool is_special_expver(const grib_handle* h)
{
@@ -229,66 +204,51 @@ static bool is_special_expver(const grib_handle* h)
return false;
}
-static int convert_time_range(
+static int convert_time_range_long_(
grib_handle* h,
- long stepUnits, /* unit */
- long indicatorOfUnitForTimeRange, /* coded_unit */
- long* lengthOfTimeRange /* coded_time_range */
+ long stepUnits, /* step_units */
+ long indicatorOfUnitForTimeRange, /* time_range_unit */
+ long* lengthOfTimeRange /* time_range_value */
)
{
Assert(lengthOfTimeRange != NULL);
if (indicatorOfUnitForTimeRange != stepUnits) {
- long u2sf_step_unit;
- long coded_time_range_sec = (*lengthOfTimeRange) * u2s2[indicatorOfUnitForTimeRange];
- if (coded_time_range_sec < 0) {
- long u2sf;
- int factor = 60;
- if (u2s2[indicatorOfUnitForTimeRange] % factor)
- return GRIB_DECODING_ERROR;
- if (u2s[stepUnits] % factor)
- return GRIB_DECODING_ERROR;
- u2sf = u2s2[indicatorOfUnitForTimeRange] / factor;
- coded_time_range_sec = (*lengthOfTimeRange) * u2sf;
- u2sf_step_unit = u2s[stepUnits] / factor;
+ eccodes::Step time_range{*lengthOfTimeRange, indicatorOfUnitForTimeRange};
+ time_range.set_unit(eccodes::Unit{stepUnits});
+ if (time_range.value() != time_range.value()) {
+ return GRIB_DECODING_ERROR;
}
- else {
- u2sf_step_unit = u2s[stepUnits];
- }
- if (coded_time_range_sec % u2sf_step_unit != 0) {
- grib_context_log(h->context, GRIB_LOG_ERROR, "unable to convert endStep in stepUnits");
- return GRIB_WRONG_STEP_UNIT;
- }
- *lengthOfTimeRange = coded_time_range_sec / u2sf_step_unit;
+ *lengthOfTimeRange = time_range.value();
}
return GRIB_SUCCESS;
}
-static int unpack_one_time_range(grib_accessor* a, long* val, size_t* len)
+static int unpack_one_time_range_long_(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
- int err = 0;
- long start_step;
- long unit;
- long coded_unit;
- long coded_time_range, typeOfTimeIncrement;
+ int err = 0;
+ long start_step_value;
+ long step_units;
+ long time_range_unit;
+ long time_range_value, typeOfTimeIncrement;
int add_time_range = 1; /* whether we add lengthOfTimeRange */
grib_handle* h = grib_handle_of_accessor(a);
- if ((err = grib_get_long_internal(h, self->start_step, &start_step)))
+ if ((err = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
return err;
- if ((err = grib_get_long_internal(h, self->unit, &unit)))
+ if ((err = grib_get_long_internal(h, self->step_units, &step_units)))
return err;
- if ((err = grib_get_long_internal(h, self->coded_unit, &coded_unit)))
+ if ((err = grib_get_long_internal(h, self->time_range_unit, &time_range_unit)))
return err;
- if ((err = grib_get_long_internal(h, self->coded_time_range, &coded_time_range)))
+ if ((err = grib_get_long_internal(h, self->time_range_value, &time_range_value)))
return err;
if ((err = grib_get_long_internal(h, self->typeOfTimeIncrement, &typeOfTimeIncrement)))
return err;
- err = convert_time_range(h, unit, coded_unit, &coded_time_range);
+ err = convert_time_range_long_(h, step_units, time_range_unit, &time_range_value);
if (err != GRIB_SUCCESS)
return err;
@@ -301,31 +261,79 @@ static int unpack_one_time_range(grib_accessor* a, long* val, size_t* len)
}
}
if (add_time_range) {
- *val = start_step + coded_time_range;
+ *val = start_step_value + time_range_value;
}
else {
- *val = start_step;
+ *val = start_step_value;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_one_time_range_double_(grib_accessor* a, double *val , size_t* len)
+{
+ grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
+ int err = 0;
+ double start_step_value;
+ long start_step_unit;
+ long step_units;
+ long time_range_unit;
+ double time_range_value;
+ long typeOfTimeIncrement;
+ int add_time_range = 1; /* whether we add lengthOfTimeRange */
+
+ grib_handle* h = grib_handle_of_accessor(a);
+
+ if ((err = grib_get_double_internal(h, self->start_step_value, &start_step_value)))
+ return err;
+ if ((err = grib_get_long_internal(h, "startStepUnit", &start_step_unit)))
+ return err;
+ if ((err = grib_get_long_internal(h, self->step_units, &step_units)))
+ return err;
+ if ((err = grib_get_long_internal(h, self->time_range_unit, &time_range_unit)))
+ return err;
+ if ((err = grib_get_double_internal(h, self->time_range_value, &time_range_value)))
+ return err;
+ if ((err = grib_get_long_internal(h, self->typeOfTimeIncrement, &typeOfTimeIncrement)))
+ return err;
+
+ eccodes::Step start_step{start_step_value, start_step_unit};
+ eccodes::Step time_range{time_range_value, time_range_unit};
+
+ if (typeOfTimeIncrement == 1) {
+ /* See GRIB-488 */
+ /* Note: For this case, lengthOfTimeRange is not related to step and should not be used to calculate step */
+ add_time_range = 0;
+ if (is_special_expver(h)) {
+ add_time_range = 1;
+ }
+ }
+ if (add_time_range) {
+ *val = (start_step + time_range).value(eccodes::Unit(step_units));
+ }
+ else {
+ *val = start_step.value(eccodes::Unit(start_step_unit));
}
return GRIB_SUCCESS;
}
#define MAX_NUM_TIME_RANGES 16 /* maximum number of time range specifications */
-static int unpack_multiple_time_ranges(grib_accessor* a, long* val, size_t* len)
+static int unpack_multiple_time_ranges_long_(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
int i = 0, err = 0;
- grib_handle* h = grib_handle_of_accessor(a);
- long numberOfTimeRange = 0, unit = 0, start_step = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
+ long numberOfTimeRange = 0, step_units = 0, start_step_value = 0;
- size_t count = 0;
+ size_t count = 0;
long arr_typeOfTimeIncrement[MAX_NUM_TIME_RANGES] = {0,};
long arr_coded_unit[MAX_NUM_TIME_RANGES] = {0,};
long arr_coded_time_range[MAX_NUM_TIME_RANGES] = {0,};
- if ((err = grib_get_long_internal(h, self->start_step, &start_step)))
+ if ((err = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
return err;
- if ((err = grib_get_long_internal(h, self->unit, &unit)))
+ if ((err = grib_get_long_internal(h, self->step_units, &step_units)))
return err;
if ((err = grib_get_long_internal(h, self->numberOfTimeRange, &numberOfTimeRange)))
return err;
@@ -338,9 +346,9 @@ static int unpack_multiple_time_ranges(grib_accessor* a, long* val, size_t* len)
/* Get the arrays for the N time ranges */
if ((err = grib_get_long_array(h, self->typeOfTimeIncrement, arr_typeOfTimeIncrement, &count)))
return err;
- if ((err = grib_get_long_array(h, self->coded_unit, arr_coded_unit, &count)))
+ if ((err = grib_get_long_array(h, self->time_range_unit, arr_coded_unit, &count)))
return err;
- if ((err = grib_get_long_array(h, self->coded_time_range, arr_coded_time_range, &count)))
+ if ((err = grib_get_long_array(h, self->time_range_value, arr_coded_time_range, &count)))
return err;
/* Look in the array of typeOfTimeIncrements for first entry whose typeOfTimeIncrement == 2 */
@@ -350,11 +358,71 @@ static int unpack_multiple_time_ranges(grib_accessor* a, long* val, size_t* len)
long the_coded_unit = arr_coded_unit[i];
long the_coded_time_range = arr_coded_time_range[i];
- err = convert_time_range(h, unit, the_coded_unit, &the_coded_time_range);
+ err = convert_time_range_long_(h, step_units, the_coded_unit, &the_coded_time_range);
if (err != GRIB_SUCCESS)
return err;
- *val = start_step + the_coded_time_range;
+ *val = start_step_value + the_coded_time_range;
+ return GRIB_SUCCESS;
+ }
+ }
+
+ grib_context_log(h->context, GRIB_LOG_ERROR,
+ "Cannot calculate endStep. No time range specification with typeOfTimeIncrement = 2");
+ return GRIB_DECODING_ERROR;
+}
+
+static int unpack_multiple_time_ranges_double_(grib_accessor* a, double* val, size_t* len)
+{
+ grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
+ int i = 0, err = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
+ long numberOfTimeRange = 0;
+ long step_units = 0;
+ long start_step_value = 0;
+ long start_step_unit = 0;
+
+ size_t count = 0;
+ long arr_typeOfTimeIncrement[MAX_NUM_TIME_RANGES] = {0, };
+ long arr_coded_unit[MAX_NUM_TIME_RANGES] = {0, };
+ long arr_coded_time_range[MAX_NUM_TIME_RANGES] = {0, };
+
+ if ((err = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
+ return err;
+ if ((err = grib_get_long_internal(h, "startStepUnit", &start_step_unit)))
+ return err;
+
+ eccodes::Step start_step{start_step_value, start_step_unit};
+
+ if ((err = grib_get_long_internal(h, self->step_units, &step_units)))
+ return err;
+
+ if ((err = grib_get_long_internal(h, self->numberOfTimeRange, &numberOfTimeRange)))
+ return err;
+ if (numberOfTimeRange > MAX_NUM_TIME_RANGES) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "Too many time range specifications!");
+ return GRIB_DECODING_ERROR;
+ }
+
+ count = numberOfTimeRange;
+ /* Get the arrays for the N time ranges */
+ if ((err = grib_get_long_array(h, self->typeOfTimeIncrement, arr_typeOfTimeIncrement, &count)))
+ return err;
+ if ((err = grib_get_long_array(h, self->time_range_unit, arr_coded_unit, &count)))
+ return err;
+ if ((err = grib_get_long_array(h, self->time_range_value, arr_coded_time_range, &count)))
+ return err;
+
+ /* Look in the array of typeOfTimeIncrements for first entry whose typeOfTimeIncrement == 2 */
+ for (i = 0; i < count; i++) {
+ if (arr_typeOfTimeIncrement[i] == 2) {
+ /* Found the required time range. Get the other two keys from it */
+ long the_coded_unit = arr_coded_unit[i];
+ long the_coded_time_range = arr_coded_time_range[i];
+
+ eccodes::Step time_range{the_coded_unit, the_coded_time_range};
+ *val = (start_step + time_range).value(eccodes::Unit(step_units));
+
return GRIB_SUCCESS;
}
}
@@ -370,38 +438,83 @@ static int unpack_multiple_time_ranges(grib_accessor* a, long* val, size_t* len)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
- int err = 0;
- long start_step;
- long numberOfTimeRange;
grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ long start_step_value;
+ long numberOfTimeRange;
- if ((err = grib_get_long_internal(h, self->start_step, &start_step)))
- return err;
+ if ((ret = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
+ return ret;
/* point in time */
if (self->year == NULL) {
- *val = start_step;
+ *val = start_step_value;
return 0;
}
Assert(self->numberOfTimeRange);
- if ((err = grib_get_long_internal(h, self->numberOfTimeRange, &numberOfTimeRange)))
- return err;
+ if ((ret = grib_get_long_internal(h, self->numberOfTimeRange, &numberOfTimeRange)))
+ return ret;
Assert(numberOfTimeRange == 1 || numberOfTimeRange == 2);
- if (numberOfTimeRange == 1) {
- return unpack_one_time_range(a, val, len);
+ try {
+ if (numberOfTimeRange == 1) {
+ ret = unpack_one_time_range_long_(a, val, len);
+ }
+ else {
+ ret = unpack_multiple_time_ranges_long_(a, val, len);
+ }
}
- else {
- return unpack_multiple_time_ranges(a, val, len);
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_accessor_g2end_step::unpack_long: %s", e.what());
+ ret = GRIB_DECODING_ERROR;
}
+
+ return ret;
}
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
+static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
- grib_handle* h = grib_handle_of_accessor(a);
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ long start_step_value;
+ long numberOfTimeRange;
+ if ((ret = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
+ return ret;
+
+ /* point in time */
+ if (self->year == NULL) {
+ *val = start_step_value;
+ return 0;
+ }
+
+ Assert(self->numberOfTimeRange);
+ if ((ret = grib_get_long_internal(h, self->numberOfTimeRange, &numberOfTimeRange)))
+ return ret;
+ Assert(numberOfTimeRange == 1 || numberOfTimeRange == 2);
+
+ try {
+ if (numberOfTimeRange == 1) {
+ ret = unpack_one_time_range_double_(a, val, len);
+ }
+ else {
+ ret = unpack_multiple_time_ranges_double_(a, val, len);
+ }
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_accessor_g2end_step::unpack_double: %s", e.what());
+ ret = GRIB_DECODING_ERROR;
+ }
+
+ return ret;
+}
+
+static int pack_long_(grib_accessor* a, const long end_step_value, const long end_step_unit)
+{
+ grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
int err = 0;
long year;
@@ -411,28 +524,30 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
long minute;
long second;
- long start_step;
- long unit, coded_unit;
+ long start_step_value;
+ long start_step_unit;
+ long time_range_unit;
long year_of_end_of_interval;
long month_of_end_of_interval;
long day_of_end_of_interval;
long hour_of_end_of_interval;
long minute_of_end_of_interval = 0;
long second_of_end_of_interval = 0;
-
- long coded_time_range, time_range, typeOfTimeIncrement;
+ long typeOfTimeIncrement;
double dend, dstep;
+ const int show_units_for_hours = a->context->grib_hourly_steps_with_units;
+
+ eccodes::Step end_step{end_step_value, end_step_unit};
/*point in time */
if (self->year == NULL) {
- err = grib_set_long_internal(h, self->start_step, *val);
+ err = grib_set_long_internal(h, "startStepUnit", end_step.unit().value());
+ err = grib_set_long_internal(h, self->start_step_value, end_step.value());
return err;
}
- if ((err = grib_get_long_internal(h, self->coded_unit, &coded_unit)))
- return err;
- if ((err = grib_get_long_internal(h, self->unit, &unit)))
+ if ((err = grib_get_long_internal(h, self->time_range_unit, &time_range_unit)))
return err;
if ((err = grib_get_long_internal(h, self->year, &year)))
return err;
@@ -447,16 +562,32 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
if ((err = grib_get_long_internal(h, self->second, &second)))
return err;
- if ((err = grib_get_long_internal(h, self->start_step, &start_step)))
+ if ((err = grib_get_long_internal(h, self->start_step_value, &start_step_value)))
return err;
+ if ((err = grib_get_long_internal(h, "startStepUnit", &start_step_unit)))
+ return err;
+
+ long force_step_units;
+ if ((err= grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
+ return err;
+
+ if (eccodes::Unit{start_step_unit} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ grib_context_log(h->context, GRIB_LOG_ERROR,
+ "missing start step unit");
+ return GRIB_WRONG_STEP_UNIT;
+ }
+
if ((err = grib_get_long_internal(h, self->typeOfTimeIncrement, &typeOfTimeIncrement)))
return err;
- time_range = *val - start_step;
+ eccodes::Step start_step{start_step_value, start_step_unit};
+ eccodes::Step time_range = end_step - start_step;
- if (time_range < 0) {
+ if (time_range.value() < 0) {
grib_context_log(h->context, GRIB_LOG_ERROR,
- "endStep < startStep (%ld < %ld)", *val, start_step);
+ "endStep < startStep (%s < %s)",
+ end_step.value("%g", show_units_for_hours).c_str(),
+ start_step.value("%g", show_units_for_hours).c_str());
return GRIB_WRONG_STEP;
}
@@ -464,7 +595,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
if (err != GRIB_SUCCESS)
return err;
- dstep = (((double)(*val)) * u2s[unit]) / u2s[2]; /* in days */
+ dstep = end_step.value(eccodes::Unit{eccodes::Unit::Value::DAY});
dend += dstep;
err = grib_julian_to_datetime(dend, &year_of_end_of_interval, &month_of_end_of_interval,
@@ -486,21 +617,142 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
if ((err = grib_set_long_internal(h, self->second_of_end_of_interval, second_of_end_of_interval)))
return err;
- if (time_range * u2s[unit] % u2s2[coded_unit]) {
- coded_unit = unit;
- if ((err = grib_set_long_internal(h, self->coded_unit, coded_unit)))
- return err;
- coded_time_range = time_range;
+ const char* forecast_time_value_key = "forecastTime";
+ const char* forecast_time_unit_key = "indicatorOfUnitOfTimeRange";
+ eccodes::Step forecast_time_opt;
+ eccodes::Step time_range_opt;
+ if (eccodes::Unit{force_step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ std::tie(forecast_time_opt, time_range_opt) = find_common_units(start_step.optimize_unit(), time_range.optimize_unit());
+ }
+ else {
+ forecast_time_opt = eccodes::Step{start_step.value(eccodes::Unit{force_step_units}), eccodes::Unit{force_step_units}};
+ time_range_opt = eccodes::Step{time_range.value(eccodes::Unit{force_step_units}), eccodes::Unit{force_step_units}};
}
- else
- coded_time_range = (time_range * u2s[unit]) / u2s2[coded_unit];
- if (typeOfTimeIncrement != 1) {
- /* 1 means "Successive times processed have same forecast time, start time of forecast is incremented" */
- /* Note: For this case, length of timeRange is not related to step and so should NOT be used to calculate step */
- if ((err = grib_set_long_internal(h, self->coded_time_range, coded_time_range)))
- return err;
+ if ((err = grib_set_long_internal(grib_handle_of_accessor(a), self->time_range_value, time_range_opt.value())) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_set_long_internal(grib_handle_of_accessor(a), self->time_range_unit, time_range_opt.unit().value())) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_set_long_internal(grib_handle_of_accessor(a), forecast_time_value_key, forecast_time_opt.value())) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_set_long_internal(grib_handle_of_accessor(a), forecast_time_unit_key, forecast_time_opt.unit().value())) != GRIB_SUCCESS)
+ return err;
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_string(grib_accessor* a, char* val, size_t* len)
+{
+ grib_accessor_g2end_step* self = (grib_accessor_g2end_step*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ char fp_format[128] = "%g";
+ size_t fp_format_len = sizeof(fp_format);
+ size_t step_len = 0;
+ long step_value;
+ long step_units;
+ const int show_units_for_hours = a->context->grib_hourly_steps_with_units;
+
+ if ((ret = unpack_long(a, &step_value, &step_len)) != GRIB_SUCCESS)
+ return ret;
+ if ((ret = grib_get_long_internal(h, self->step_units, &step_units)) != GRIB_SUCCESS)
+ return ret;
+ if ((ret = grib_get_string(h, "formatForDoubles", fp_format, &fp_format_len)) != GRIB_SUCCESS)
+ return ret;
+
+ try {
+ eccodes::Step step(step_value, step_units);
+ step.set_unit(step_units);
+
+ std::stringstream ss;
+
+ ss << step.value(fp_format, show_units_for_hours);
+
+ size_t size = ss.str().size() + 1;
+
+ if (*len < size)
+ return GRIB_ARRAY_TOO_SMALL;
+
+ *len = size;
+
+ memcpy(val, ss.str().c_str(), size);
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_accessor_g2end_step::unpack_string: %s", e.what());
+ return GRIB_DECODING_ERROR;
}
return GRIB_SUCCESS;
}
+
+static int pack_long(grib_accessor* a, const long* val, size_t* len)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret;
+
+ long force_step_units;
+ if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
+ return ret;
+
+ try {
+ long end_step_unit;
+ if (eccodes::Unit{force_step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if ((ret = grib_get_long_internal(h, "endStepUnit", &end_step_unit)) != GRIB_SUCCESS)
+ return ret;
+
+ if (eccodes::Unit{end_step_unit} == eccodes::Unit{eccodes::Unit::Value::MISSING})
+ end_step_unit = eccodes::Unit{eccodes::Unit::Value::HOUR}.value();
+ }
+ else {
+ end_step_unit = force_step_units;
+ }
+ ret = pack_long_(a, *val, end_step_unit);
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_accessor_g2end_step::pack_long: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+ return ret;
+}
+
+static int pack_string(grib_accessor* a, const char* val, size_t* len)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ long force_step_units;
+ if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
+ return ret;
+
+ try {
+ eccodes::Step end_step = step_from_string(val, eccodes::Unit{force_step_units});
+ end_step.optimize_unit();
+
+ if ((ret = grib_set_long_internal(h, "endStepUnit", end_step.unit().value())) != GRIB_SUCCESS)
+ return ret;
+
+ if ((ret = pack_long_(a, end_step.value(), end_step.unit().value())) != GRIB_SUCCESS)
+ return ret;
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_accessor_g2end_step::pack_string: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+ return GRIB_SUCCESS;
+}
+
+static int get_native_type(grib_accessor* a)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ const int show_units_for_hours = a->context->grib_hourly_steps_with_units;
+
+ if (!show_units_for_hours) {
+ long step_units = 0;
+ if (grib_get_long_internal(h, "stepUnits", &step_units) == GRIB_SUCCESS) {
+ if (eccodes::Unit{step_units} == eccodes::Unit::Value::HOUR) {
+ return GRIB_TYPE_LONG; // For backward compatibility
+ }
+ }
+ }
+
+ return GRIB_TYPE_STRING;
+}
diff --git a/src/grib_accessor_class_g2grid.cc b/src/grib_accessor_class_g2grid.cc
index 40aaca628..28d216b90 100644
--- a/src/grib_accessor_class_g2grid.cc
+++ b/src/grib_accessor_class_g2grid.cc
@@ -148,14 +148,13 @@ static int value_count(grib_accessor* a, long* count)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_g2grid* self = (grib_accessor_g2grid*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
- int ret = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ int ret = GRIB_SUCCESS;
long basic_angle = 0;
long sub_division = 0;
- int n = 0;
+ int n = 0;
long v[6];
- int i;
if (*len < 6) {
ret = GRIB_ARRAY_TOO_SMALL;
@@ -199,7 +198,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
if ((ret = grib_get_long_internal(hand, self->j_increment, &v[n++])) != GRIB_SUCCESS)
return ret;
}
- for (i = 0; i < n; i++)
+ for (int i = 0; i < n; i++)
if (v[i] == GRIB_MISSING_LONG)
val[i] = GRIB_MISSING_DOUBLE;
else
@@ -282,15 +281,14 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_g2grid* self = (grib_accessor_g2grid*)a;
grib_handle* hand = grib_handle_of_accessor(a);
- int ret;
+ int ret = GRIB_SUCCESS;
long v[6];
int n;
long basic_angle;
long sub_division;
if (*len < 6) {
- ret = GRIB_ARRAY_TOO_SMALL;
- return ret;
+ return GRIB_ARRAY_TOO_SMALL;
}
/* printf("pack_double %g %g %g %g %g %g\n",val[0],val[1],val[2],val[3],val[4],val[5]);*/
diff --git a/src/grib_accessor_class_g2level.cc b/src/grib_accessor_class_g2level.cc
index e1d8aaa38..39bd79033 100644
--- a/src/grib_accessor_class_g2level.cc
+++ b/src/grib_accessor_class_g2level.cc
@@ -17,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_double;pack_double
- IMPLEMENTS = unpack_long;pack_long;init;dump;is_missing
+ IMPLEMENTS = unpack_long;pack_long;init;is_missing
MEMBERS=const char* type_first
MEMBERS=const char* scale_first
MEMBERS=const char* value_first
@@ -41,7 +41,6 @@ static int pack_double(grib_accessor*, const double* val, size_t* len);
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g2level
@@ -67,7 +66,7 @@ static grib_accessor_class _grib_accessor_class_g2level = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -126,11 +125,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_COPY_IF_CHANGING_EDITION;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static bool is_tigge(grib_handle* h)
{
long productionStatus = 0;
diff --git a/src/grib_accessor_class_g2step_range.cc b/src/grib_accessor_class_g2step_range.cc
index 8d3440230..e1dd9494b 100644
--- a/src/grib_accessor_class_g2step_range.cc
+++ b/src/grib_accessor_class_g2step_range.cc
@@ -8,11 +8,12 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/*********************************************
- * Enrico Fucile
- *******************************************/
-
#include "grib_api_internal.h"
+#include "step.h"
+#include "step_utilities.h"
+#include
+#include
+#include
/*
This is used by make_class.pl
@@ -20,11 +21,13 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = pack_string;unpack_string;value_count
- IMPLEMENTS = pack_long;unpack_long;dump
+ IMPLEMENTS = unpack_long;pack_long
+ IMPLEMENTS = unpack_double
+ IMPLEMENTS = unpack_string;pack_string
IMPLEMENTS = get_native_type;string_length
IMPLEMENTS = init
- MEMBERS = const char* startStep
- MEMBERS = const char* endStep
+ MEMBERS = const char* start_step
+ MEMBERS = const char* end_step
END_CLASS_DEF
*/
@@ -42,11 +45,11 @@ or edit "accessor.class" and rerun ./make_class.pl
static int get_native_type(grib_accessor*);
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int pack_string(grib_accessor*, const char*, size_t* len);
+static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
static size_t string_length(grib_accessor*);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_g2step_range
@@ -54,8 +57,8 @@ typedef struct grib_accessor_g2step_range
grib_accessor att;
/* Members defined in gen */
/* Members defined in g2step_range */
- const char* startStep;
- const char* endStep;
+ const char* start_step;
+ const char* end_step;
} grib_accessor_g2step_range;
extern grib_accessor_class* grib_accessor_class_gen;
@@ -69,7 +72,7 @@ static grib_accessor_class _grib_accessor_class_g2step_range = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
&string_length, /* get length of string */
&value_count, /* get number of values */
@@ -83,7 +86,7 @@ static grib_accessor_class _grib_accessor_class_g2step_range = {
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
- 0, /* unpack_double */
+ &unpack_double, /* unpack_double */
0, /* unpack_float */
&pack_string, /* pack_string */
&unpack_string, /* unpack_string */
@@ -119,83 +122,151 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
int n = 0;
- self->startStep = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->endStep = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->start_step = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->end_step = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
a->length = 0;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_string(dumper, a, NULL);
-}
+//static void dump(grib_accessor* a, grib_dumper* dumper)
+//{
+ //grib_dump_string(dumper, a, NULL);
+//}
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_accessor_g2step_range* self = (grib_accessor_g2step_range*)a;
grib_handle* h = grib_handle_of_accessor(a);
- char buf[100];
int ret = 0;
size_t size = 0;
- long start = 0, theEnd = 0;
+ double start_step_value = 0;
+ double end_step_value = 0;
+ long step_units;
- ret = grib_get_long_internal(h, self->startStep, &start);
- if (ret)
+ int show_hours = a->context->grib_hourly_steps_with_units;
+
+ if ((ret = grib_get_double_internal(h, self->start_step, &start_step_value)) != GRIB_SUCCESS)
return ret;
+ if ((ret= grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ return ret;
+ try {
+ if (eccodes::Unit{step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if ((ret = grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ return ret;
+ }
- if (self->endStep == NULL) {
- snprintf(buf, sizeof(buf), "%ld", start);
- }
- else {
- ret = grib_get_long_internal(h, self->endStep, &theEnd);
- if (ret)
+ char fp_format[128] = "%g";
+ size_t fp_format_len = sizeof(fp_format);
+ if ((ret = grib_get_string_internal(h, "formatForDoubles", fp_format, &fp_format_len)) != GRIB_SUCCESS)
return ret;
+ std::stringstream ss;
- if (start == theEnd) {
- snprintf(buf, sizeof(buf), "%ld", theEnd);
+ eccodes::Step start_step{start_step_value, step_units};
+ if (self->end_step == NULL) {
+ ss << start_step.value(fp_format, show_hours);
}
else {
- snprintf(buf, sizeof(buf), "%ld-%ld", start, theEnd);
+ if ((ret = grib_get_double_internal(h, self->end_step, &end_step_value)) != GRIB_SUCCESS)
+ return ret;
+
+ eccodes::Step end_step{end_step_value, step_units};
+
+ if (start_step_value == end_step_value) {
+ ss << end_step.value(fp_format, show_hours);
+ }
+ else {
+ ss << start_step.value(fp_format, show_hours) << "-" << end_step.value(fp_format, show_hours);
+ }
}
+
+ size = ss.str().size() + 1;
+
+ if (*len < size)
+ return GRIB_ARRAY_TOO_SMALL;
+
+ *len = size;
+
+ memcpy(val, ss.str().c_str(), size);
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_g2step_range::unpack_string: %s", e.what());
+ return GRIB_DECODING_ERROR;
}
-
- size = strlen(buf) + 1;
-
- if (*len < size)
- return GRIB_ARRAY_TOO_SMALL;
-
- *len = size;
-
- memcpy(val, buf, size);
return GRIB_SUCCESS;
}
+
+// Step range format: [-]
+// and can be in different units
+// stepRange="X" in instantaneous field is equivalent to set step=X
+// stepRange="X" in accumulated field is equivalent to startStep=X, endStep=startStep
static int pack_string(grib_accessor* a, const char* val, size_t* len)
{
grib_accessor_g2step_range* self = (grib_accessor_g2step_range*)a;
grib_handle* h = grib_handle_of_accessor(a);
-
- long start = 0, theEnd = -1;
int ret = 0;
- char *p = NULL, *q = NULL;
- start = strtol(val, &p, 10);
- theEnd = start;
-
- if (*p != 0)
- theEnd = strtol(++p, &q, 10);
- ret = grib_set_long_internal(h, self->startStep, start);
- if (ret)
+ long force_step_units;
+ if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
return ret;
- if (self->endStep != NULL) {
- ret = grib_set_long_internal(h, self->endStep, theEnd);
- if (ret)
- return ret;
+ // Note:
+ // forceStepUnits is a special key that is used to identify the origin of the defined units
+ // i.e., whether they have been defined by the user.
+ // If this key is defined (!= 255), it indicates that the stepUnits have been defined by the user.
+ // Once this key is set, it has the highest priority: it automatically overrides certain units and the default value in stepUnits
+
+ if (h->loader) { // h->loader is set only when rebuilding or reparsing
+ force_step_units = 255; // See ECC-1768 and ECC-1800
}
- return 0;
+ try {
+ std::vector steps = parse_range(val, eccodes::Unit{force_step_units});
+ if (steps.size() == 0) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Could not parse step range: %s", val);
+ return GRIB_INVALID_ARGUMENT;
+ }
+
+ eccodes::Step step_0;
+ eccodes::Step step_1;
+ if (eccodes::Unit{force_step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if (steps.size() > 1)
+ std::tie(step_0, step_1) = find_common_units(steps[0].optimize_unit(), steps[1].optimize_unit());
+ else
+ step_0 = steps[0].optimize_unit();
+ }
+ else {
+ step_0 = eccodes::Step{steps[0].value(eccodes::Unit{force_step_units}), eccodes::Unit{force_step_units}};
+ if (steps.size() > 1) {
+ step_1 = eccodes::Step{steps[1].value(eccodes::Unit{force_step_units}), eccodes::Unit{force_step_units}};
+ }
+ }
+
+ if ((ret = grib_set_long_internal(h, "startStepUnit", step_0.unit().value())))
+ return ret;
+ if ((ret = set_step(h, "forecastTime" , "indicatorOfUnitOfTimeRange", step_0)) != GRIB_SUCCESS)
+ return ret;
+
+ if (self->end_step != NULL) {
+ if (steps.size() > 1) {
+ if ((ret = grib_set_long_internal(h, "endStepUnit", step_1.unit().value())))
+ return ret;
+ if ((ret = grib_set_long_internal(h, self->end_step, step_1.value())))
+ return ret;
+ } else {
+ if ((ret = grib_set_long_internal(h, "endStepUnit", step_0.unit().value())))
+ return ret;
+ if ((ret = grib_set_long_internal(h, self->end_step, step_0.value())))
+ return ret;
+ }
+ }
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_class_g2step_range::pack_string: %s", e.what());
+ return GRIB_INVALID_ARGUMENT;
+ }
+ return GRIB_SUCCESS;
}
static int value_count(grib_accessor* a, long* count)
@@ -218,29 +289,86 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
return pack_string(a, buff, &bufflen);
}
+
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- char buff[100];
- size_t bufflen = 100;
- long start, theEnd;
- char* p = buff;
- char* q = NULL;
- int err = 0;
+ grib_accessor_g2step_range* self = (grib_accessor_g2step_range*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ long end_start_value = 0;
+ long end_step_value = 0;
+ long step_units = 0;
+ if ((ret = grib_get_long_internal(h, self->start_step, &end_start_value)) != GRIB_SUCCESS)
+ return ret;
+ try {
+ if ((ret = grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ throw std::runtime_error("Failed to get stepUnits");
+ if (eccodes::Unit{step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if ((ret = grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ return ret;
+ }
- if ((err = unpack_string(a, buff, &bufflen)) != GRIB_SUCCESS)
- return err;
+ eccodes::Step start_step{end_start_value, step_units};
+ if (self->end_step == NULL) {
+ *val = start_step.value();
+ }
+ else {
+ if ((ret = grib_get_long_internal(h, self->end_step, &end_step_value)) != GRIB_SUCCESS)
+ return ret;
+ eccodes::Step end_step{end_step_value, step_units};
+ *val = end_step.value();
+ }
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Failed to unpack step range: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
- start = strtol(buff, &p, 10);
- theEnd = start;
- if (*p != 0)
- theEnd = strtol(++p, &q, 10);
-
- *val = theEnd;
-
- return 0;
+ return GRIB_SUCCESS;
}
+
+static int unpack_double(grib_accessor* a, double* val, size_t* len)
+{
+ grib_accessor_g2step_range* self = (grib_accessor_g2step_range*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = 0;
+ double end_start_value = 0;
+ double end_step_value = 0;
+ long step_units = 0;
+
+ if ((ret = grib_get_double_internal(h, self->start_step, &end_start_value)) != GRIB_SUCCESS)
+ return ret;
+ if ((ret = grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ throw std::runtime_error("Failed to get stepUnits");
+
+ try {
+ if (eccodes::Unit{step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if ((ret = grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ return ret;
+ }
+
+ eccodes::Step start_step{end_start_value, step_units};
+ if (self->end_step == NULL) {
+ *val = start_step.value();
+ }
+ else {
+ if ((ret = grib_get_double_internal(h, self->end_step, &end_step_value)) != GRIB_SUCCESS)
+ return ret;
+ eccodes::Step end_step{end_step_value, step_units};
+ *val = end_step.value();
+ }
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "grid_accessor_g2step_range::unpack_double: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_STRING;
diff --git a/src/grib_accessor_class_gaussian_grid_name.cc b/src/grib_accessor_class_gaussian_grid_name.cc
index 59a268f95..21117d4f1 100644
--- a/src/grib_accessor_class_gaussian_grid_name.cc
+++ b/src/grib_accessor_class_gaussian_grid_name.cc
@@ -157,6 +157,10 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
length = strlen(tmp) + 1;
if (*len < length) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, length, *len);
*len = length;
return GRIB_BUFFER_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_gen.cc b/src/grib_accessor_class_gen.cc
index 75f84bebd..b611f5043 100644
--- a/src/grib_accessor_class_gen.cc
+++ b/src/grib_accessor_class_gen.cc
@@ -193,8 +193,7 @@ static void init(grib_accessor* a, const long len, grib_arguments* param)
static void dump(grib_accessor* a, grib_dumper* dumper)
{
- int type = grib_accessor_get_native_type(a);
-
+ const int type = grib_accessor_get_native_type(a);
switch (type) {
case GRIB_TYPE_STRING:
grib_dump_string(dumper, a, NULL);
@@ -246,8 +245,8 @@ static long byte_offset(grib_accessor* a)
static int unpack_bytes(grib_accessor* a, unsigned char* val, size_t* len)
{
unsigned char* buf = grib_handle_of_accessor(a)->buffer->data;
- long length = grib_byte_count(a);
- long offset = grib_byte_offset(a);
+ const long length = grib_byte_count(a);
+ const long offset = grib_byte_offset(a);
if (*len < length) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it is %ld bytes long", a->name, length);
@@ -264,8 +263,8 @@ static int unpack_bytes(grib_accessor* a, unsigned char* val, size_t* len)
static int clear(grib_accessor* a)
{
unsigned char* buf = grib_handle_of_accessor(a)->buffer->data;
- long length = grib_byte_count(a);
- long offset = grib_byte_offset(a);
+ const long length = grib_byte_count(a);
+ const long offset = grib_byte_offset(a);
memset(buf + offset, 0, length);
@@ -384,10 +383,9 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
static int unpack_string_array(grib_accessor* a, char** v, size_t* len)
{
- int err = 0;
size_t length = 0;
- err = ecc__grib_get_string_length(a, &length);
+ int err = grib_get_string_length_acc(a, &length);
if (err)
return err;
v[0] = (char*)grib_context_malloc_clear(a->context, length);
@@ -406,7 +404,8 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
int ret = 0;
grib_handle* hand = grib_handle_of_accessor(a);
- switch (grib_accessor_get_native_type(a)) {
+ // Use the native type of the expression not the accessor
+ switch (grib_expression_native_type(hand, e)) {
case GRIB_TYPE_LONG: {
len = 1;
ret = grib_expression_evaluate_long(hand, e, &lval);
@@ -424,7 +423,7 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
len = 1;
ret = grib_expression_evaluate_double(hand, e, &dval);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to set %s as double (from %s)",
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to set %s as double (from %s)",
a->name, e->cclass->name);
return ret;
}
@@ -438,7 +437,7 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
len = sizeof(tmp);
cval = grib_expression_evaluate_string(hand, e, tmp, &len, &ret);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to set %s as string (from %s)",
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to set %s as string (from %s)",
a->name, e->cclass->name);
return ret;
}
@@ -456,16 +455,14 @@ static int pack_long(grib_accessor* a, const long* v, size_t* len)
{
grib_context* c = a->context;
if (a->cclass->pack_double && a->cclass->pack_double != &pack_double) {
- int i = 0, ret = 0;
double* val = (double*)grib_context_malloc(c, *len * (sizeof(double)));
if (!val) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "Unable to allocate %zu bytes", *len * (sizeof(double)));
+ grib_context_log(c, GRIB_LOG_ERROR, "Unable to allocate %zu bytes", *len * (sizeof(double)));
return GRIB_OUT_OF_MEMORY;
}
- for (i = 0; i < *len; i++)
- val[i] = (long)v[i];
- ret = grib_pack_double(a, val, len);
+ for (size_t i = 0; i < *len; i++)
+ val[i] = v[i];
+ int ret = grib_pack_double(a, val, len);
grib_context_free(c, val);
return ret;
}
@@ -480,14 +477,13 @@ static int pack_double_array_as_long(grib_accessor* a, const double* v, size_t*
{
grib_context* c = a->context;
int ret = GRIB_SUCCESS;
- size_t i = 0;
size_t numBytes = *len * (sizeof(long));
long* lValues = (long*)grib_context_malloc(c, numBytes);
if (!lValues) {
- grib_context_log(c, GRIB_LOG_ERROR, "Unable to allocate %ld bytes\n", numBytes);
+ grib_context_log(c, GRIB_LOG_ERROR, "Unable to allocate %ld bytes", numBytes);
return GRIB_OUT_OF_MEMORY;
}
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
lValues[i] = (long)v[i]; /* convert from double to long */
ret = grib_pack_long(a, lValues, len);
grib_context_free(c, lValues);
@@ -519,13 +515,12 @@ static int pack_double(grib_accessor* a, const double* v, size_t* len)
static int pack_string_array(grib_accessor* a, const char** v, size_t* len)
{
- long i;
int err = 0;
size_t length = 0;
grib_accessor* as = 0;
as = a;
- i = (long)*len - 1;
+ long i = (long)*len - 1;
while (as && i >= 0) {
length = strlen(v[i]);
err = grib_pack_string(as, v[i], &length);
@@ -545,7 +540,7 @@ static int pack_string(grib_accessor* a, const char* v, size_t* len)
double val = strtod(v, &endPtr);
if (*endPtr) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "%s: Invalid value (%s) for %s. String cannot be converted to a double",
+ "%s: Invalid value (%s) for key '%s'. String cannot be converted to a double",
__func__, v, a->name);
return GRIB_WRONG_TYPE;
}
@@ -599,9 +594,8 @@ static int notify_change(grib_accessor* self, grib_accessor* observed)
static void update_size(grib_accessor* a, size_t s)
{
- grib_context_log(a->context, GRIB_LOG_ERROR,
+ grib_context_log(a->context, GRIB_LOG_FATAL,
"Accessor %s [%s] must implement 'update_size'", a->name, a->cclass->name);
- Assert(0);
}
static grib_accessor* next(grib_accessor* a, int mod)
diff --git a/src/grib_accessor_class_getenv.cc b/src/grib_accessor_class_getenv.cc
index 6760dff6d..6bc0ced3e 100644
--- a/src/grib_accessor_class_getenv.cc
+++ b/src/grib_accessor_class_getenv.cc
@@ -138,7 +138,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
l = strlen(self->value);
if (*len < l)
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
snprintf(val, 1024, "%s", self->value);
*len = strlen(self->value);
diff --git a/src/grib_accessor_class_group.cc b/src/grib_accessor_class_group.cc
index 32f337d3b..df2118bff 100644
--- a/src/grib_accessor_class_group.cc
+++ b/src/grib_accessor_class_group.cc
@@ -172,19 +172,22 @@ static int get_native_type(grib_accessor* a)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int i = 0;
+ long i = 0;
+ size_t l = a->length + 1;
+ grib_handle* h = grib_handle_of_accessor(a);
- if (len[0] < (a->length + 1)) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
+ if (*len < l) {
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ a->cclass->name, a->name, l, *len);
+ *len = l;
return GRIB_ARRAY_TOO_SMALL;
}
for (i = 0; i < a->length; i++)
- val[i] = grib_handle_of_accessor(a)->buffer->data[a->offset + i];
+ val[i] = h->buffer->data[a->offset + i];
val[i] = 0;
- len[0] = i;
+ *len = i;
return GRIB_SUCCESS;
}
@@ -235,42 +238,32 @@ static int unpack_double(grib_accessor* a, double* v, size_t* len)
static int compare(grib_accessor* a, grib_accessor* b)
{
- int retval = 0;
- char* aval = 0;
- char* bval = 0;
- int err = 0;
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s:%s not implemented", __func__, a->name);
+ return GRIB_NOT_IMPLEMENTED;
- size_t alen = 0;
- size_t blen = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
- bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
-
- grib_unpack_string(a, aval, &alen);
- grib_unpack_string(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- if (strcmp(aval, bval))
- retval = GRIB_STRING_VALUE_MISMATCH;
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
+ // int retval = 0;
+ // char* aval = 0;
+ // char* bval = 0;
+ // int err = 0;
+ // size_t alen = 0;
+ // size_t blen = 0;
+ // long count = 0;
+ // err = grib_value_count(a, &count);
+ // if (err) return err;
+ // alen = count;
+ // err = grib_value_count(b, &count);
+ // if (err) return err;
+ // blen = count;
+ // if (alen != blen) return GRIB_COUNT_MISMATCH;
+ // aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
+ // bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
+ // grib_unpack_string(a, aval, &alen);
+ // grib_unpack_string(b, bval, &blen);
+ // retval = GRIB_SUCCESS;
+ // if (strcmp(aval, bval)) retval = GRIB_STRING_VALUE_MISMATCH;
+ // grib_context_free(a->context, aval);
+ // grib_context_free(b->context, bval);
+ // return retval;
}
static long next_offset(grib_accessor* a)
diff --git a/src/grib_accessor_class_gts_header.cc b/src/grib_accessor_class_gts_header.cc
index 44aa9852d..65b295634 100644
--- a/src/grib_accessor_class_gts_header.cc
+++ b/src/grib_accessor_class_gts_header.cc
@@ -15,7 +15,7 @@
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_ascii
- IMPLEMENTS = pack_string;unpack_string;value_count
+ IMPLEMENTS = unpack_string;value_count
IMPLEMENTS = init;string_length
MEMBERS = int gts_offset
MEMBERS = int gts_length
@@ -33,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
-static int pack_string(grib_accessor*, const char*, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
static size_t string_length(grib_accessor*);
static int value_count(grib_accessor*, long*);
@@ -76,7 +75,7 @@ static grib_accessor_class _grib_accessor_class_gts_header = {
0, /* pack_float */
0, /* unpack_double */
0, /* unpack_float */
- &pack_string, /* pack_string */
+ 0, /* pack_string */
&unpack_string, /* unpack_string */
0, /* pack_string_array */
0, /* unpack_string_array */
@@ -107,18 +106,13 @@ grib_accessor_class* grib_accessor_class_gts_header = &_grib_accessor_class_gts_
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_gts_header* self = (grib_accessor_gts_header*)a;
- self->gts_offset = -1;
- self->gts_length = -1;
- self->gts_offset = grib_arguments_get_long(grib_handle_of_accessor(a), c, 0);
- self->gts_length = grib_arguments_get_long(grib_handle_of_accessor(a), c, 1);
+ self->gts_offset = -1;
+ self->gts_length = -1;
+ self->gts_offset = grib_arguments_get_long(grib_handle_of_accessor(a), c, 0);
+ self->gts_length = grib_arguments_get_long(grib_handle_of_accessor(a), c, 1);
+ a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static int pack_string(grib_accessor* a, const char* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
-
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_accessor_gts_header* self = (grib_accessor_gts_header*)a;
@@ -128,12 +122,12 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
if (h->gts_header == NULL || h->gts_header_len < 8) {
if (*len < 8)
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
snprintf(val, 1024, "missing");
return GRIB_SUCCESS;
}
if (*len < h->gts_header_len)
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
offset = self->gts_offset > 0 ? self->gts_offset : 0;
length = self->gts_length > 0 ? self->gts_length : h->gts_header_len;
diff --git a/src/grib_accessor_class_hash_array.cc b/src/grib_accessor_class_hash_array.cc
index 987e68481..d191a5232 100644
--- a/src/grib_accessor_class_hash_array.cc
+++ b/src/grib_accessor_class_hash_array.cc
@@ -203,6 +203,11 @@ static grib_hash_array_value* find_hash_value(grib_accessor* a, int* err)
grib_context_log(a->context, GRIB_LOG_ERROR,
"hash_array: no match for %s=%s",
a->creator->name, self->key);
+ const char* full_path = get_hash_array_full_path(a->creator);
+ if (full_path) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "hash_array: file path = %s", full_path);
+ }
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Hint: Check the key 'masterTablesVersionNumber'");
return NULL;
}
return ha_ret;
diff --git a/src/grib_accessor_class_julian_date.cc b/src/grib_accessor_class_julian_date.cc
index fd94ee789..61fd6959c 100644
--- a/src/grib_accessor_class_julian_date.cc
+++ b/src/grib_accessor_class_julian_date.cc
@@ -282,7 +282,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
grib_handle* h = grib_handle_of_accessor(a);
if (*len < 15)
- return GRIB_ARRAY_TOO_SMALL;
+ return GRIB_BUFFER_TOO_SMALL;
if (self->ymd == NULL) {
ret = grib_get_long(h, self->year, &year);
@@ -334,6 +334,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
else {
snprintf(val, 1024, "%04ld%02ld%02ld%02ld%02ld%02ld", year, month, day, hour, minute, second);
}
+ *len = strlen(val)+1;
return ret;
}
@@ -433,7 +434,7 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
len = 1;
ret = grib_expression_evaluate_long(hand, e, &lval);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to set %s as long", a->name);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to set %s as long", a->name);
return ret;
}
/*if (hand->context->debug)
@@ -454,7 +455,7 @@ static int pack_expression(grib_accessor* a, grib_expression* e)
len = sizeof(tmp);
cval = grib_expression_evaluate_string(hand, e, tmp, &len, &ret);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to set %s as string", a->name);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to set %s as string", a->name);
return ret;
}
len = strlen(cval);
diff --git a/src/grib_accessor_class_label.cc b/src/grib_accessor_class_label.cc
index c5958dd98..8d7831faf 100644
--- a/src/grib_accessor_class_label.cc
+++ b/src/grib_accessor_class_label.cc
@@ -16,7 +16,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = init;dump;get_native_type;unpack_string
- IMPLEMENTS = compare
END_CLASS_DEF
*/
@@ -35,7 +34,6 @@ static int get_native_type(grib_accessor*);
static int unpack_string(grib_accessor*, char*, size_t* len);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_label
{
@@ -84,7 +82,7 @@ static grib_accessor_class _grib_accessor_class_label = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -116,11 +114,6 @@ static int get_native_type(grib_accessor* a)
return GRIB_TYPE_LABEL;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- return GRIB_SUCCESS;
-}
-
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
size_t vlen = strlen(a->name);
diff --git a/src/grib_accessor_class_latitudes.cc b/src/grib_accessor_class_latitudes.cc
index 4131ff066..35c1a9049 100644
--- a/src/grib_accessor_class_latitudes.cc
+++ b/src/grib_accessor_class_latitudes.cc
@@ -114,16 +114,16 @@ static int get_distinct(grib_accessor* a, double** val, long* len);
static int compare_doubles(const void* a, const void* b, int ascending)
{
- /* ascending is a boolean: 0 or 1 */
+ // ascending is a boolean: 0 or 1
double* arg1 = (double*)a;
double* arg2 = (double*)b;
if (ascending) {
if (*arg1 < *arg2)
- return -1; /*Smaller values come before larger ones*/
+ return -1; // Smaller values come before larger ones
}
else {
if (*arg1 > *arg2)
- return -1; /*Larger values come before smaller ones*/
+ return -1; // Larger values come before smaller ones
}
if (*arg1 == *arg2)
return 0;
@@ -155,7 +155,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_context* c = a->context;
grib_accessor_latitudes* self = (grib_accessor_latitudes*)a;
- int ret = 0;
+ int ret = GRIB_SUCCESS;
double* v = val;
double dummyLon = 0;
size_t size = 0;
@@ -167,7 +167,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
if (ret) return ret;
size = count;
if (*len < size) {
- /* self->lats are computed in value_count so must free */
+ // self->lats are computed in value_count so must free
if (self->lats) {
grib_context_free(c, self->lats);
self->lats = NULL;
@@ -176,7 +176,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
}
self->save = 0;
- /* self->lats are computed in value_count*/
+ // self->lats are computed in value_count
if (self->lats) {
int i;
*len = self->size;
@@ -211,7 +211,7 @@ static int value_count(grib_accessor* a, long* len)
grib_handle* h = grib_handle_of_accessor(a);
grib_context* c = a->context;
double* val = NULL;
- int ret;
+ int ret = GRIB_SUCCESS;
size_t size;
*len = 0;
@@ -221,6 +221,13 @@ static int value_count(grib_accessor* a, long* len)
}
*len = size;
+ // See ECC-1792
+ // Give priority to the Grid Section (rather than the Data Section)
+ long numberOfDataPoints = 0;
+ if (grib_get_long(h, "numberOfDataPoints", &numberOfDataPoints) == GRIB_SUCCESS) {
+ *len = numberOfDataPoints;
+ }
+
if (self->distinct) {
ret = get_distinct(a, &val, len);
if (ret != GRIB_SUCCESS)
@@ -244,9 +251,9 @@ static int get_distinct(grib_accessor* a, double** val, long* len)
double* v = NULL;
double* v1 = NULL;
double dummyLon = 0;
- int ret = 0;
+ int ret = GRIB_SUCCESS;
int i;
- long jScansPositively = 0; /* default: north to south */
+ long jScansPositively = 0; // default: north to south
size_t size = *len;
grib_context* c = a->context;
@@ -269,14 +276,14 @@ static int get_distinct(grib_accessor* a, double** val, long* len)
grib_iterator_delete(iter);
v = *val;
- /* See which direction the latitudes are to be scanned */
+ // See which direction the latitudes are to be scanned
if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), "jScansPositively", &jScansPositively)))
return ret;
if (jScansPositively) {
- qsort(v, *len, sizeof(double), &compare_doubles_ascending); /*South to North*/
+ qsort(v, *len, sizeof(double), &compare_doubles_ascending); //South to North
}
else {
- qsort(v, *len, sizeof(double), &compare_doubles_descending); /*North to South*/
+ qsort(v, *len, sizeof(double), &compare_doubles_descending); //North to South
}
v1 = (double*)grib_context_malloc_clear(c, size * sizeof(double));
@@ -285,14 +292,14 @@ static int get_distinct(grib_accessor* a, double** val, long* len)
return GRIB_OUT_OF_MEMORY;
}
- /* Construct a unique set of lats by filtering out duplicates */
+ // Construct a unique set of lats by filtering out duplicates
prev = v[0];
v1[0] = prev;
count = 1;
for (i = 1; i < *len; i++) {
if (v[i] != prev) {
prev = v[i];
- v1[count] = prev; /* Value different from previous so store it */
+ v1[count] = prev; // Value different from previous so store it
count++;
}
}
diff --git a/src/grib_accessor_class_long.cc b/src/grib_accessor_class_long.cc
index 1f97a539e..5eb10fec5 100644
--- a/src/grib_accessor_class_long.cc
+++ b/src/grib_accessor_class_long.cc
@@ -116,18 +116,15 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
static int unpack_string(grib_accessor* a, char* v, size_t* len)
{
- int err = 0;
long val = 0;
size_t l = 1;
char repres[1024];
char format[32] = "%ld";
grib_handle* h = grib_handle_of_accessor(a);
- err = grib_unpack_long(a, &val, &l);
+ grib_unpack_long(a, &val, &l);
/* TODO: We should catch all errors but in this case the test ERA_Gen.sh will fail
* as the output from grib_ls will be different */
- /* if (err) return err; */
- (void)err;
if ((val == GRIB_MISSING_LONG) && ((a->flags & GRIB_ACCESSOR_FLAG_CAN_BE_MISSING) != 0)) {
snprintf(repres, sizeof(repres), "MISSING");
@@ -139,8 +136,11 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
l = strlen(repres) + 1;
- if (l > *len) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_long : unpack_string : Buffer too small for %s ", a->name);
+ if (*len < l) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
@@ -241,10 +241,8 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_long(b, bval, &blen);
retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_LONG_VALUE_MISMATCH;
- alen--;
+ for (size_t i=0; icontext, aval);
@@ -257,10 +255,10 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len)
{
long v = 0; /* The converted value */
- // Requires more work e.g. filter
- //if (strcmp_nocase(val, "missing")==0) {
- // return pack_missing(a);
- //}
+ // ECC-1722
+ if (STR_EQUAL_NOCASE(val, "missing")) {
+ return pack_missing(a);
+ }
if (string_to_long(val, &v, 1) != GRIB_SUCCESS) {
grib_context_log(a->context, GRIB_LOG_ERROR,
diff --git a/src/grib_accessor_class_longitudes.cc b/src/grib_accessor_class_longitudes.cc
index 083d40138..78fc7a733 100644
--- a/src/grib_accessor_class_longitudes.cc
+++ b/src/grib_accessor_class_longitudes.cc
@@ -196,6 +196,13 @@ static int value_count(grib_accessor* a, long* len)
}
*len = size;
+ // See ECC-1792
+ // Give priority to the Grid Section (rather than the Data Section)
+ long numberOfDataPoints = 0;
+ if (grib_get_long(h, "numberOfDataPoints", &numberOfDataPoints) == GRIB_SUCCESS) {
+ *len = numberOfDataPoints;
+ }
+
if (self->distinct) {
ret = get_distinct(a, &val, len);
if (ret != GRIB_SUCCESS)
diff --git a/src/grib_accessor_class_mars_param.cc b/src/grib_accessor_class_mars_param.cc
index fc120dd89..beb7a68c5 100644
--- a/src/grib_accessor_class_mars_param.cc
+++ b/src/grib_accessor_class_mars_param.cc
@@ -15,7 +15,7 @@
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_ascii
- IMPLEMENTS = pack_string;unpack_string
+ IMPLEMENTS = unpack_string
IMPLEMENTS = init; string_length
MEMBERS= const char* paramId
MEMBERS= const char* table
@@ -34,7 +34,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
-static int pack_string(grib_accessor*, const char*, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
static size_t string_length(grib_accessor*);
static void init(grib_accessor*, const long, grib_arguments*);
@@ -77,7 +76,7 @@ static grib_accessor_class _grib_accessor_class_mars_param = {
0, /* pack_float */
0, /* unpack_double */
0, /* unpack_float */
- &pack_string, /* pack_string */
+ 0, /* pack_string */
&unpack_string, /* unpack_string */
0, /* pack_string_array */
0, /* unpack_string_array */
@@ -114,14 +113,12 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
self->param = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
}
-// For an alternative implementation of pack_string and unpack_string, see
+// For an implementation of pack_string, see
+// src/deprecated/grib_accessor_class_mars_param.cc
+
+// For an alternative implementation of unpack_string, see
// src/deprecated/grib_accessor_class_mars_param.cc
//
-static int pack_string(grib_accessor* a, const char* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_accessor_mars_param* self = (grib_accessor_mars_param*)a;
diff --git a/src/grib_accessor_class_mars_step.cc b/src/grib_accessor_class_mars_step.cc
index 81b7d7750..7792995a7 100644
--- a/src/grib_accessor_class_mars_step.cc
+++ b/src/grib_accessor_class_mars_step.cc
@@ -151,9 +151,10 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
size_t buflen = 100;
long step;
grib_accessor* stepRangeAcc = grib_find_accessor(grib_handle_of_accessor(a), self->stepRange);
+ const char* cclass_name = a->cclass->name;
if (!stepRangeAcc) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "%s not found", self->stepRange);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s: %s not found", cclass_name, self->stepRange);
return GRIB_NOT_FOUND;
}
@@ -162,8 +163,8 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
if (*len < buflen) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "grib_accessor_class_mars_step: Buffer too small for %s. It is %ld bytes long (len=%ld)\n",
- a->name, buflen, *len);
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, buflen, *len);
*len = buflen;
return GRIB_BUFFER_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_md5.cc b/src/grib_accessor_class_md5.cc
index 142270098..6a57c1329 100644
--- a/src/grib_accessor_class_md5.cc
+++ b/src/grib_accessor_class_md5.cc
@@ -176,14 +176,17 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
unsigned char* p;
long offset = 0, length = 0;
grib_string_list* blocklist = NULL;
- grib_accessor* b = NULL;
- int ret = 0;
- int i = 0;
+ int ret = GRIB_SUCCESS;
+ long i = 0;
struct grib_md5_state md5c;
if (*len < 32) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "md5: array too small");
- return GRIB_ARRAY_TOO_SMALL;
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %d bytes long (len=%zu)",
+ cclass_name, a->name, 32, *len);
+ *len = 32;
+ return GRIB_BUFFER_TOO_SMALL;
}
if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->offset, &offset)) != GRIB_SUCCESS)
@@ -201,7 +204,7 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
if (self->blocklist)
blocklist = self->blocklist;
while (blocklist && blocklist->value) {
- b = grib_find_accessor(grib_handle_of_accessor(a), blocklist->value);
+ const grib_accessor* b = grib_find_accessor(grib_handle_of_accessor(a), blocklist->value);
if (!b) {
grib_context_free(a->context, mess);
return GRIB_NOT_FOUND;
diff --git a/src/grib_accessor_class_message.cc b/src/grib_accessor_class_message.cc
index 6a87d00e5..6c5587b22 100644
--- a/src/grib_accessor_class_message.cc
+++ b/src/grib_accessor_class_message.cc
@@ -8,10 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -21,7 +17,6 @@
SUPER = grib_accessor_class_bytes
IMPLEMENTS = init;update_size;resize; value_count
IMPLEMENTS = unpack_string; string_length
- IMPLEMENTS = compare
END_CLASS_DEF
*/
@@ -42,7 +37,6 @@ static int value_count(grib_accessor*, long*);
static void init(grib_accessor*, const long, grib_arguments*);
static void update_size(grib_accessor*, size_t);
static void resize(grib_accessor*,size_t);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_message
{
@@ -92,7 +86,7 @@ static grib_accessor_class _grib_accessor_class_message = {
&resize, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -115,28 +109,28 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg)
a->length = grib_handle_of_accessor(a)->buffer->ulength - len - a->offset;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- if (a->length != b->length)
- return GRIB_COUNT_MISMATCH;
- return GRIB_SUCCESS;
-}
+// static int compare(grib_accessor* a, grib_accessor* b)
+// {
+// if (a->length != b->length)
+// return GRIB_COUNT_MISMATCH;
+// return GRIB_SUCCESS;
+// }
static void update_size(grib_accessor* a, size_t new_size)
{
- /* printf("update_size: grib_accessor_class_message.c %ld %ld %s %s\n", (long)new_size,(long)a->length,a->cclass->name,a->name); */
a->length = new_size;
}
static void resize(grib_accessor* a, size_t new_size)
{
- void* zero = grib_context_malloc_clear(a->context, new_size);
+ grib_context_log(a->context, GRIB_LOG_FATAL, "%s %s: Not supported", a->cclass->name, __func__);
- grib_buffer_replace(a, (const unsigned char*)zero, new_size, 1, 0);
- grib_context_free(a->context, zero);
- grib_context_log(a->context, GRIB_LOG_DEBUG, "resize: grib_accessor_class_message %ld %ld %s %s",
- (long)new_size, (long)a->length, a->cclass->name, a->name);
- Assert(new_size == a->length);
+ // void* zero = grib_context_malloc_clear(a->context, new_size);
+ // grib_buffer_replace(a, (const unsigned char*)zero, new_size, 1, 0);
+ // grib_context_free(a->context, zero);
+ // grib_context_log(a->context, GRIB_LOG_DEBUG, "resize: grib_accessor_class_message %ld %ld %s %s",
+ // (long)new_size, (long)a->length, a->cclass->name, a->name);
+ // Assert(new_size == a->length);
}
static int value_count(grib_accessor* a, long* count)
@@ -147,19 +141,22 @@ static int value_count(grib_accessor* a, long* count)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int i = 0;
+ long i = 0;
+ size_t l = string_length(a) + 1;
+ grib_handle* h = grib_handle_of_accessor(a);
- if (len[0] < (a->length + 1)) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < l) {
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ a->cclass->name, a->name, l, *len);
+ *len = l;
+ return GRIB_BUFFER_TOO_SMALL;
}
for (i = 0; i < a->length; i++)
- val[i] = grib_handle_of_accessor(a)->buffer->data[a->offset + i];
+ val[i] = h->buffer->data[a->offset + i];
val[i] = 0;
- len[0] = i;
+ *len = i;
return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_message_copy.cc b/src/grib_accessor_class_message_copy.cc
index 4b3df8857..30806b163 100644
--- a/src/grib_accessor_class_message_copy.cc
+++ b/src/grib_accessor_class_message_copy.cc
@@ -133,6 +133,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
if (v[i] > 126)
v[i] = 32;
memcpy(val, grib_handle_of_accessor(a)->buffer->data, slen);
+ val[i] = 0;
*len = slen;
diff --git a/src/grib_accessor_class_multdouble.cc b/src/grib_accessor_class_multdouble.cc
new file mode 100644
index 000000000..ac5771627
--- /dev/null
+++ b/src/grib_accessor_class_multdouble.cc
@@ -0,0 +1,127 @@
+/*
+ * (C) Copyright 2005- 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.
+ */
+
+#include "grib_api_internal.h"
+/*
+ This is used by make_class.pl
+
+ START_CLASS_DEF
+ CLASS = accessor
+ SUPER = grib_accessor_class_double
+ IMPLEMENTS = unpack_double
+ IMPLEMENTS = init
+ MEMBERS = const char* val
+ MEMBERS = double multiplier
+ END_CLASS_DEF
+
+ */
+
+/* START_CLASS_IMP */
+
+/*
+
+Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
+Instead edit values between START_CLASS_DEF and END_CLASS_DEF
+or edit "accessor.class" and rerun ./make_class.pl
+
+*/
+
+static int unpack_double(grib_accessor*, double* val, size_t* len);
+static void init(grib_accessor*, const long, grib_arguments*);
+
+typedef struct grib_accessor_multdouble
+{
+ grib_accessor att;
+ /* Members defined in gen */
+ /* Members defined in double */
+ /* Members defined in multdouble */
+ const char* val;
+ double multiplier;
+} grib_accessor_multdouble;
+
+extern grib_accessor_class* grib_accessor_class_double;
+
+static grib_accessor_class _grib_accessor_class_multdouble = {
+ &grib_accessor_class_double, /* super */
+ "multdouble", /* name */
+ sizeof(grib_accessor_multdouble), /* size */
+ 0, /* inited */
+ 0, /* init_class */
+ &init, /* init */
+ 0, /* post_init */
+ 0, /* destroy */
+ 0, /* dump */
+ 0, /* next_offset */
+ 0, /* get length of string */
+ 0, /* get number of values */
+ 0, /* get number of bytes */
+ 0, /* get offset to bytes */
+ 0, /* get native type */
+ 0, /* get sub_section */
+ 0, /* pack_missing */
+ 0, /* is_missing */
+ 0, /* pack_long */
+ 0, /* unpack_long */
+ 0, /* pack_double */
+ 0, /* pack_float */
+ &unpack_double, /* unpack_double */
+ 0, /* unpack_float */
+ 0, /* pack_string */
+ 0, /* unpack_string */
+ 0, /* pack_string_array */
+ 0, /* unpack_string_array */
+ 0, /* pack_bytes */
+ 0, /* unpack_bytes */
+ 0, /* pack_expression */
+ 0, /* notify_change */
+ 0, /* update_size */
+ 0, /* preferred_size */
+ 0, /* resize */
+ 0, /* nearest_smaller_value */
+ 0, /* next accessor */
+ 0, /* compare vs. another accessor */
+ 0, /* unpack only ith value (double) */
+ 0, /* unpack only ith value (float) */
+ 0, /* unpack a given set of elements (double) */
+ 0, /* unpack a given set of elements (float) */
+ 0, /* unpack a subarray */
+ 0, /* clear */
+ 0, /* clone accessor */
+};
+
+
+grib_accessor_class* grib_accessor_class_multdouble = &_grib_accessor_class_multdouble;
+
+/* END_CLASS_IMP */
+
+static void init(grib_accessor* a, const long l, grib_arguments* c)
+{
+ grib_accessor_multdouble* self = (grib_accessor_multdouble*)a;
+ int n = 0;
+
+ self->val = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->multiplier = grib_arguments_get_double(grib_handle_of_accessor(a), c, n++);
+}
+
+static int unpack_double(grib_accessor* a, double* val, size_t* len)
+{
+ const grib_accessor_multdouble* self = (grib_accessor_multdouble*)a;
+ int ret = GRIB_SUCCESS;
+ double value = 0;
+
+ ret = grib_get_double_internal(grib_handle_of_accessor(a), self->val, &value);
+ if (ret != GRIB_SUCCESS)
+ return ret;
+
+ *val = value * self->multiplier;
+
+ *len = 1;
+ return GRIB_SUCCESS;
+}
diff --git a/src/grib_accessor_class_non_alpha.cc b/src/grib_accessor_class_non_alpha.cc
index e0f52f4d9..821f2311f 100644
--- a/src/grib_accessor_class_non_alpha.cc
+++ b/src/grib_accessor_class_non_alpha.cc
@@ -15,14 +15,13 @@
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_gen
- IMPLEMENTS = unpack_string;pack_string
- IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = unpack_double;pack_double
+ IMPLEMENTS = unpack_string
+ IMPLEMENTS = unpack_long
+ IMPLEMENTS = unpack_double
IMPLEMENTS = init;dump;string_length
IMPLEMENTS = value_count
IMPLEMENTS = next_offset
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
END_CLASS_DEF
*/
@@ -38,9 +37,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_double(grib_accessor*, const double* val, size_t* len);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
-static int pack_string(grib_accessor*, const char*, size_t* len);
static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
@@ -49,7 +45,6 @@ static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_non_alpha
{
@@ -79,13 +74,13 @@ static grib_accessor_class _grib_accessor_class_non_alpha = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
- &pack_double, /* pack_double */
+ 0, /* pack_double */
0, /* pack_float */
&unpack_double, /* unpack_double */
0, /* unpack_float */
- &pack_string, /* pack_string */
+ 0, /* pack_string */
&unpack_string, /* unpack_string */
0, /* pack_string_array */
0, /* unpack_string_array */
@@ -98,7 +93,7 @@ static grib_accessor_class _grib_accessor_class_non_alpha = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -154,40 +149,23 @@ static int get_native_type(grib_accessor* a)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_handle* hand = grib_handle_of_accessor(a);
- int i = 0;
+ long i = 0;
- if (len[0] < (a->length + 1)) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < (a->length + 1)) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
+ *len, a->name, a->length + 1);
+ *len = a->length + 1;
+ return GRIB_BUFFER_TOO_SMALL;
}
for (i = 0; i < a->length; i++) {
val[i] = hand->buffer->data[a->offset + i];
}
val[i] = 0;
- len[0] = i;
+ *len = i;
return GRIB_SUCCESS;
}
-static int pack_string(grib_accessor* a, const char* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
-static int pack_long(grib_accessor* a, const long* v, size_t* len)
-{
- grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as an integer", a->name);
- return GRIB_NOT_IMPLEMENTED;
-}
-
-static int pack_double(grib_accessor* a, const double* v, size_t* len)
-{
- grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as a double", a->name);
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int unpack_long(grib_accessor* a, long* v, size_t* len)
{
char val[1024] = {0,};
@@ -212,7 +190,6 @@ static int unpack_long(grib_accessor* a, long* v, size_t* len)
*v = strtol(val, &last, 10);
- grib_context_log(a->context, GRIB_LOG_DEBUG, " Casting string %s to long", a->name);
return GRIB_SUCCESS;
}
@@ -226,53 +203,12 @@ static int unpack_double(grib_accessor* a, double* v, size_t* len)
*v = strtod(val, &last);
if (*last == 0) {
- grib_context_log(a->context, GRIB_LOG_DEBUG, " Casting string %s to long", a->name);
return GRIB_SUCCESS;
}
return GRIB_NOT_IMPLEMENTED;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- int retval = 0;
- char* aval = 0;
- char* bval = 0;
- int err = 0;
-
- size_t alen = 0;
- size_t blen = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
- bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
-
- grib_unpack_string(a, aval, &alen);
- grib_unpack_string(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- if (strcmp(aval, bval))
- retval = GRIB_STRING_VALUE_MISMATCH;
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
-}
-
static long next_offset(grib_accessor* a)
{
return a->offset + a->length;
diff --git a/src/grib_accessor_class_number_of_points.cc b/src/grib_accessor_class_number_of_points.cc
index 6a270bb69..b3d1eade2 100644
--- a/src/grib_accessor_class_number_of_points.cc
+++ b/src/grib_accessor_class_number_of_points.cc
@@ -110,12 +110,14 @@ grib_accessor_class* grib_accessor_class_number_of_points = &_grib_accessor_clas
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
- int n = 0;
+ int n = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
+
grib_accessor_number_of_points* self = (grib_accessor_number_of_points*)a;
- self->ni = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->nj = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->plpresent = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->pl = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->ni = grib_arguments_get_name(hand, c, n++);
+ self->nj = grib_arguments_get_name(hand, c, n++);
+ self->plpresent = grib_arguments_get_name(hand, c, n++);
+ self->pl = grib_arguments_get_name(hand, c, n++);
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION;
a->length = 0;
@@ -123,32 +125,41 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
+ grib_accessor_number_of_points* self = (grib_accessor_number_of_points*)a;
+
int ret = GRIB_SUCCESS;
long ni = 0, nj = 0, plpresent = 0;
size_t plsize = 0;
- long* pl;
- int i;
- grib_accessor_number_of_points* self = (grib_accessor_number_of_points*)a;
- grib_context* c = a->context;
+ long* pl = NULL;
+ int i = 0;
+ grib_context* c = a->context;
+ grib_handle* hand = grib_handle_of_accessor(a);
- if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->ni, &ni)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_internal(hand, self->ni, &ni)) != GRIB_SUCCESS)
return ret;
- if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->nj, &nj)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_internal(hand, self->nj, &nj)) != GRIB_SUCCESS)
return ret;
if (self->plpresent &&
- ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->plpresent, &plpresent)) != GRIB_SUCCESS))
+ ((ret = grib_get_long_internal(hand, self->plpresent, &plpresent)) != GRIB_SUCCESS))
return ret;
- if (nj == 0)
+ if (grib_is_missing(hand, self->nj, &ret) && ret == GRIB_SUCCESS) {
+ grib_context_log(c, GRIB_LOG_ERROR, "grib_accessor_class_number_of_points: Key %s cannot be 'missing'!", self->nj);
return GRIB_GEOCALCULUS_PROBLEM;
+ }
+
+ if (nj == 0) {
+ grib_context_log(c, GRIB_LOG_ERROR, "grib_accessor_class_number_of_points: Key %s cannot be 0!", self->nj);
+ return GRIB_GEOCALCULUS_PROBLEM;
+ }
if (plpresent) {
/*reduced*/
plsize = nj;
pl = (long*)grib_context_malloc(c, sizeof(long) * plsize);
- grib_get_long_array_internal(grib_handle_of_accessor(a), self->pl, pl, &plsize);
+ grib_get_long_array_internal(hand, self->pl, pl, &plsize);
*val = 0;
for (i = 0; i < plsize; i++)
*val += pl[i];
diff --git a/src/grib_accessor_class_number_of_points_gaussian.cc b/src/grib_accessor_class_number_of_points_gaussian.cc
index 5d952b937..2114a9c87 100644
--- a/src/grib_accessor_class_number_of_points_gaussian.cc
+++ b/src/grib_accessor_class_number_of_points_gaussian.cc
@@ -276,7 +276,7 @@ static int unpack_long_new(grib_accessor* a, long* val, size_t* len)
if (plpresent) {
long max_pl = 0;
int j = 0;
- double lon_first_row = 0, lon_last_row = 0;
+ // double lon_first_row = 0, lon_last_row = 0;
/*reduced*/
if ((err = grib_get_long_internal(h, self->order, &order)) != GRIB_SUCCESS)
@@ -324,11 +324,9 @@ static int unpack_long_new(grib_accessor* a, long* val, size_t* len)
return GRIB_GEOCALCULUS_PROBLEM;
}
grib_get_reduced_row_wrapper(h, pl[j], lon_first, lon_last, &row_count, &ilon_first, &ilon_last);
- lon_first_row = ((ilon_first)*360.0) / pl[j];
- lon_last_row = ((ilon_last)*360.0) / pl[j];
+ //lon_first_row = ((ilon_first)*360.0) / pl[j];
+ //lon_last_row = ((ilon_last)*360.0) / pl[j];
*val += row_count;
- (void)lon_last_row;
- (void)lon_first_row;
}
}
else {
@@ -388,7 +386,7 @@ static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t*
if (plpresent) {
long max_pl = 0;
int j = 0;
- double lon_first_row = 0, lon_last_row = 0;
+ // double lon_first_row = 0, lon_last_row = 0;
/*reduced*/
if ((err = grib_get_long_internal(h, self->order, &order)) != GRIB_SUCCESS)
@@ -452,11 +450,9 @@ static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t*
// if ( row_count != pl[j] ) {
// printf("oops...... rc=%ld but pl[%d]=%ld\n", row_count, j,pl[j]);
// }
- lon_first_row = ((ilon_first)*360.0) / pl[j];
- lon_last_row = ((ilon_last)*360.0) / pl[j];
+ // lon_first_row = ((ilon_first)*360.0) / pl[j];
+ // lon_last_row = ((ilon_last)*360.0) / pl[j];
*val += row_count;
- (void)lon_last_row;
- (void)lon_first_row;
#if EFDEBUG
printf(" ilon_first=%ld lon_first=%.10e ilon_last=%ld lon_last=%.10e count=%ld row_count=%ld\n",
ilon_first, lon_first_row, ilon_last, lon_last_row, *val, row_count);
diff --git a/src/grib_accessor_class_number_of_values_data_raw_packing.cc b/src/grib_accessor_class_number_of_values_data_raw_packing.cc
index 5bde2a163..5652797ac 100644
--- a/src/grib_accessor_class_number_of_values_data_raw_packing.cc
+++ b/src/grib_accessor_class_number_of_values_data_raw_packing.cc
@@ -152,7 +152,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
default:
return GRIB_NOT_IMPLEMENTED;
- break;
}
*val = byte_count / bytes;
diff --git a/src/grib_accessor_class_octet_number.cc b/src/grib_accessor_class_octet_number.cc
index 0f2a0d5be..cce0e742b 100644
--- a/src/grib_accessor_class_octet_number.cc
+++ b/src/grib_accessor_class_octet_number.cc
@@ -8,10 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -109,8 +105,8 @@ grib_accessor_class* grib_accessor_class_octet_number = &_grib_accessor_class_oc
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_octet_number* self = (grib_accessor_octet_number*)a;
- int n = 0;
+ int n = 0;
self->left = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
self->right = grib_arguments_get_long(grib_handle_of_accessor(a), c, n++);
@@ -120,17 +116,15 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_octet_number* self = (grib_accessor_octet_number*)a;
- int ret = 0;
+ int ret = GRIB_SUCCESS;
long offset;
offset = a->offset + self->right;
- /*printf("-------- setting %s to %ld\n", self->left,offset);*/
if ((ret = grib_set_long_internal(grib_handle_of_accessor(a), self->left, offset)) != GRIB_SUCCESS)
return ret;
*val = offset;
-
*len = 1;
return ret;
@@ -138,5 +132,5 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- return 0;
+ return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_offset_file.cc b/src/grib_accessor_class_offset_file.cc
index d056af268..8fd0a0018 100644
--- a/src/grib_accessor_class_offset_file.cc
+++ b/src/grib_accessor_class_offset_file.cc
@@ -7,10 +7,6 @@
* 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.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
#include "grib_api_internal.h"
/*
@@ -121,21 +117,22 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
size_t l = 1;
char repres[1024] = {0,};
int err = 0;
+ const char* cclass_name = a->cclass->name;
err = grib_unpack_double(a, &val, &l);
- if (err)
- return err;
+ if (err) return err;
snprintf(repres, sizeof(repres), "%.0f", val);
l = strlen(repres) + 1;
if (l > *len) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_offset: unpack_string: Buffer too small for %s",
- a->name);
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
*len = l;
return GRIB_BUFFER_TOO_SMALL;
}
- grib_context_log(a->context, GRIB_LOG_DEBUG, "grib_accessor_offset: Casting double %s to string", a->name);
+ grib_context_log(a->context, GRIB_LOG_DEBUG, "%s: Casting double %s to string", __func__, a->name);
*len = l;
diff --git a/src/grib_accessor_class_optimal_step_units.cc b/src/grib_accessor_class_optimal_step_units.cc
new file mode 100644
index 000000000..494667e9a
--- /dev/null
+++ b/src/grib_accessor_class_optimal_step_units.cc
@@ -0,0 +1,290 @@
+/*
+ * (C) Copyright 2005- 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.
+ */
+
+#include "grib_api_internal.h"
+#include "step.h"
+#include "step_utilities.h"
+/*
+ This is used by make_class.pl
+
+ START_CLASS_DEF
+ CLASS = accessor
+ SUPER = grib_accessor_class_gen
+ IMPLEMENTS = pack_long;unpack_long;dump
+ IMPLEMENTS = pack_string;unpack_string;dump
+ IMPLEMENTS = string_length;pack_expression;get_native_type;is_missing
+ IMPLEMENTS = init
+ MEMBERS = const char* forecast_time_value
+ MEMBERS = const char* forecast_time_unit
+ MEMBERS = const char* time_range_value
+ MEMBERS = const char* time_range_unit
+ MEMBERS = long overwriteStepUnits
+ END_CLASS_DEF
+
+ */
+
+/* START_CLASS_IMP */
+
+/*
+
+Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
+Instead edit values between START_CLASS_DEF and END_CLASS_DEF
+or edit "accessor.class" and rerun ./make_class.pl
+
+*/
+
+static int get_native_type(grib_accessor*);
+static int is_missing(grib_accessor*);
+static int pack_long(grib_accessor*, const long* val, size_t* len);
+static int pack_string(grib_accessor*, const char*, size_t* len);
+static int pack_expression(grib_accessor*, grib_expression*);
+static int unpack_long(grib_accessor*, long* val, size_t* len);
+static int unpack_string(grib_accessor*, char*, size_t* len);
+static size_t string_length(grib_accessor*);
+static void dump(grib_accessor*, grib_dumper*);
+static void init(grib_accessor*, const long, grib_arguments*);
+
+typedef struct grib_accessor_optimal_step_units
+{
+ grib_accessor att;
+ /* Members defined in gen */
+ /* Members defined in optimal_step_units */
+ const char* forecast_time_value;
+ const char* forecast_time_unit;
+ const char* time_range_value;
+ const char* time_range_unit;
+ long overwriteStepUnits;
+} grib_accessor_optimal_step_units;
+
+extern grib_accessor_class* grib_accessor_class_gen;
+
+static grib_accessor_class _grib_accessor_class_optimal_step_units = {
+ &grib_accessor_class_gen, /* super */
+ "optimal_step_units", /* name */
+ sizeof(grib_accessor_optimal_step_units), /* size */
+ 0, /* inited */
+ 0, /* init_class */
+ &init, /* init */
+ 0, /* post_init */
+ 0, /* destroy */
+ &dump, /* dump */
+ 0, /* next_offset */
+ &string_length, /* get length of string */
+ 0, /* get number of values */
+ 0, /* get number of bytes */
+ 0, /* get offset to bytes */
+ &get_native_type, /* get native type */
+ 0, /* get sub_section */
+ 0, /* pack_missing */
+ &is_missing, /* is_missing */
+ &pack_long, /* pack_long */
+ &unpack_long, /* unpack_long */
+ 0, /* pack_double */
+ 0, /* pack_float */
+ 0, /* unpack_double */
+ 0, /* unpack_float */
+ &pack_string, /* pack_string */
+ &unpack_string, /* unpack_string */
+ 0, /* pack_string_array */
+ 0, /* unpack_string_array */
+ 0, /* pack_bytes */
+ 0, /* unpack_bytes */
+ &pack_expression, /* pack_expression */
+ 0, /* notify_change */
+ 0, /* update_size */
+ 0, /* preferred_size */
+ 0, /* resize */
+ 0, /* nearest_smaller_value */
+ 0, /* next accessor */
+ 0, /* compare vs. another accessor */
+ 0, /* unpack only ith value (double) */
+ 0, /* unpack only ith value (float) */
+ 0, /* unpack a given set of elements (double) */
+ 0, /* unpack a given set of elements (float) */
+ 0, /* unpack a subarray */
+ 0, /* clear */
+ 0, /* clone accessor */
+};
+
+
+grib_accessor_class* grib_accessor_class_optimal_step_units = &_grib_accessor_class_optimal_step_units;
+
+/* END_CLASS_IMP */
+
+static void init(grib_accessor* a, const long l, grib_arguments* c)
+{
+ grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ int n = 0;
+
+ self->forecast_time_value = grib_arguments_get_name(hand, c, n++);
+ self->forecast_time_unit = grib_arguments_get_name(hand, c, n++);
+ self->time_range_value = grib_arguments_get_name(hand, c, n++);
+ self->time_range_unit = grib_arguments_get_name(hand, c, n++);
+ a->length = 0;
+ self->overwriteStepUnits = eccodes::Unit{eccodes::Unit::Value::MISSING}.value();
+}
+
+static void dump(grib_accessor* a, grib_dumper* dumper)
+{
+ grib_dump_string(dumper, a, NULL);
+}
+
+static size_t string_length(grib_accessor* a)
+{
+ return 255;
+}
+
+static int pack_expression(grib_accessor* a, grib_expression* e)
+{
+ const char* cval = NULL;
+ int ret = 0;
+ long lval = 0;
+ size_t len = 1;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ const char* cclass_name = a->cclass->name;
+
+ if (strcmp(e->cclass->name, "long") == 0) {
+ grib_expression_evaluate_long(hand, e, &lval); /* TODO: check return value */
+ ret = grib_pack_long(a, &lval, &len);
+ }
+ else {
+ char tmp[1024];
+ len = sizeof(tmp);
+ cval = grib_expression_evaluate_string(hand, e, tmp, &len, &ret);
+ if (ret != GRIB_SUCCESS) {
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s.%s: Unable to evaluate string %s to be set in %s",
+ cclass_name, __func__, grib_expression_get_name(e), a->name);
+ return ret;
+ }
+ len = strlen(cval) + 1;
+ //if (hand->context->debug)
+ // printf("ECCODES DEBUG grib_accessor_class_codetable::pack_expression %s %s\n", a->name, cval);
+ ret = grib_pack_string(a, cval, &len);
+ }
+ return ret;
+}
+
+static int pack_long(grib_accessor* a, const long* val, size_t* len)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a;
+
+ auto supported_units = eccodes::Unit::list_supported_units();
+ try {
+ eccodes::Unit unit{*val}; // throws if not supported
+ auto iter = std::find(supported_units.begin(), supported_units.end(), unit);
+ if (iter == supported_units.end()) {
+ throw std::runtime_error{"eccodes::Unit not supported"};
+ }
+ }
+ catch (std::exception& e) {
+ std::string supported_units_str;
+ for (auto& u : supported_units)
+ supported_units_str += eccodes::Unit{u}.value() + ",";
+ supported_units_str.pop_back();
+
+ std::string msg = std::string{"Invalid unit: "} + std::to_string(*val) + " (" + e.what() + ")" +
+ ". Available units are: " + supported_units_str;
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s", msg.c_str());
+ return GRIB_INVALID_ARGUMENT;
+ }
+
+ int ret;
+ self->overwriteStepUnits = *val;
+ if ((ret = grib_set_long_internal(h, "forceStepUnits", *val)) != GRIB_SUCCESS) {
+ return ret;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_long(grib_accessor* a, long* val, size_t* len)
+{
+ grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a;
+ try {
+ if (eccodes::Unit{self->overwriteStepUnits} != eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ *val = self->overwriteStepUnits;
+ return GRIB_SUCCESS;
+ }
+
+ const grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+
+ auto forecast_time_opt = get_step(h, self->forecast_time_value, self->forecast_time_unit);
+ auto time_range_opt = get_step(h, self->time_range_value, self->time_range_unit);
+
+ if (forecast_time_opt && time_range_opt) {
+ auto [step_a, step_b] = find_common_units(forecast_time_opt.value().optimize_unit(),
+ (forecast_time_opt.value() + time_range_opt.value()).optimize_unit());
+ *val = step_a.unit().value();
+ }
+ else if (forecast_time_opt && !time_range_opt) {
+ *val = forecast_time_opt.value().optimize_unit().unit().value();
+ }
+ else if (!forecast_time_opt && time_range_opt) {
+ *val = time_range_opt.value().optimize_unit().unit().value();
+ }
+ else if (!forecast_time_opt && !time_range_opt) {
+ *val = eccodes::Unit{eccodes::Unit::Value::HOUR}.value();
+ }
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s", e.what());
+ return GRIB_INTERNAL_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int pack_string(grib_accessor* a, const char* val, size_t* len)
+{
+ try {
+ long unit = eccodes::Unit{val}.value();
+ pack_long(a, &unit, len);
+ }
+ catch (std::exception& e) {
+ auto supported_units = eccodes::Unit::list_supported_units();
+ std::string supported_units_str;
+ for (auto& u : supported_units)
+ supported_units_str += eccodes::Unit{u}.value() + ",";
+ supported_units_str.pop_back();
+
+ std::string msg = "Invalid unit: " + std::string(val) + " (" + e.what() + ")" + ". Available units are: " + supported_units_str;
+ grib_context_log(a->context, GRIB_LOG_ERROR, "%s", msg.c_str());
+ return GRIB_INVALID_ARGUMENT;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_string(grib_accessor* a, char* val, size_t* len)
+{
+ int ret = 0;
+ long unit = 0;
+ size_t unit_len = 0;
+ if ((ret = unpack_long(a, &unit, &unit_len)) != GRIB_SUCCESS)
+ return ret;
+ *len = snprintf(val, *len, "%s", eccodes::Unit{unit}.value().c_str());
+ return GRIB_SUCCESS;
+}
+
+// Step units are never missing
+// If the user does not specify a step unit, we default to hours
+static int is_missing(grib_accessor* a)
+{
+ return 0;
+}
+
+static int get_native_type(grib_accessor* a)
+{
+ return GRIB_TYPE_LONG;
+}
diff --git a/src/grib_accessor_class_padding.cc b/src/grib_accessor_class_padding.cc
index 44e1083b2..790ea9db2 100644
--- a/src/grib_accessor_class_padding.cc
+++ b/src/grib_accessor_class_padding.cc
@@ -8,10 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -121,7 +117,6 @@ static int compare(grib_accessor* a, grib_accessor* b)
static void update_size(grib_accessor* a, size_t new_size)
{
- /* printf("update_size: grib_accessor_class_padding.c %ld %ld %s %s\n", (long)new_size,(long)a->length,a->cclass->name,a->name); */
a->length = new_size;
}
@@ -129,9 +124,13 @@ static void resize(grib_accessor* a, size_t new_size)
{
void* zero = grib_context_malloc_clear(a->context, new_size);
- grib_buffer_replace(a, (const unsigned char*)zero, new_size, 1, 0);
+ grib_buffer_replace(a, (const unsigned char*)zero, new_size,
+ /*update_lengths=*/1, /*update_paddings=*/0);
grib_context_free(a->context, zero);
- grib_context_log(a->context, GRIB_LOG_DEBUG, "resize: grib_accessor_class_padding.c %ld %ld %s %s\n", (long)new_size, (long)a->length, a->cclass->name, a->name);
+
+ grib_context_log(a->context, GRIB_LOG_DEBUG,
+ "grib_accessor_class_padding::resize new_size=%zu a->length=%ld %s %s",
+ new_size, a->length, a->cclass->name, a->name);
Assert(new_size == a->length);
}
@@ -140,10 +139,12 @@ static int value_count(grib_accessor* a, long* c)
*c = a->length;
return 0;
}
+
static long byte_count(grib_accessor* a)
{
return a->length;
}
+
static size_t string_length(grib_accessor* a)
{
return (size_t)a->length;
diff --git a/src/grib_accessor_class_position.cc b/src/grib_accessor_class_position.cc
index 1aef0a94f..0f9565c37 100644
--- a/src/grib_accessor_class_position.cc
+++ b/src/grib_accessor_class_position.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -23,7 +18,6 @@
IMPLEMENTS = unpack_long
IMPLEMENTS = get_native_type
IMPLEMENTS = init;dump
- IMPLEMENTS = compare
END_CLASS_DEF
*/
@@ -42,7 +36,6 @@ static int get_native_type(grib_accessor*);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_position
{
@@ -91,7 +84,7 @@ static grib_accessor_class _grib_accessor_class_position = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -136,9 +129,9 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- if (a->offset != b->offset)
- return GRIB_OFFSET_MISMATCH;
- return GRIB_SUCCESS;
-}
+// static int compare(grib_accessor* a, grib_accessor* b)
+// {
+// if (a->offset != b->offset)
+// return GRIB_OFFSET_MISMATCH;
+// return GRIB_SUCCESS;
+// }
diff --git a/src/grib_accessor_class_proj_string.cc b/src/grib_accessor_class_proj_string.cc
index ffd5ed831..7edfbf5be 100644
--- a/src/grib_accessor_class_proj_string.cc
+++ b/src/grib_accessor_class_proj_string.cc
@@ -161,7 +161,7 @@ static int proj_space_view(grib_handle* h, char* result)
{
return GRIB_NOT_IMPLEMENTED;
// int err = 0;
- // char shape[64] = {0,};
+ // char shape[128] = {0,};
// double latOfSubSatellitePointInDegrees, lonOfSubSatellitePointInDegrees;
// if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
// return err;
@@ -190,7 +190,7 @@ static int proj_equatorial_azimuthal_equidistant(grib_handle* h, char* result)
static int proj_lambert_conformal(grib_handle* h, char* result)
{
int err = 0;
- char shape[64] = {0,};
+ char shape[128] = {0,};
double LoVInDegrees = 0, LaDInDegrees = 0, Latin1InDegrees = 0, Latin2InDegrees = 0;
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
@@ -211,7 +211,7 @@ static int proj_lambert_conformal(grib_handle* h, char* result)
static int proj_lambert_azimuthal_equal_area(grib_handle* h, char* result)
{
int err = 0;
- char shape[64] = {0,};
+ char shape[128] = {0,};
double standardParallel = 0, centralLongitude = 0;
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
@@ -231,7 +231,7 @@ static int proj_polar_stereographic(grib_handle* h, char* result)
double centralLongitude = 0, centralLatitude = 0;
int has_northPole = 0;
long projectionCentreFlag = 0;
- char shape[64] = {0,};
+ char shape[128] = {0,};
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
return err;
@@ -252,7 +252,7 @@ static int proj_polar_stereographic(grib_handle* h, char* result)
static int proj_unprojected(grib_handle* h, char* result)
{
int err = 0;
- //char shape[64] = {0,};
+ //char shape[128] = {0,};
//if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS) return err;
//snprintf(result, 1024, "+proj=longlat %s", shape);
snprintf(result, 1024, "+proj=longlat +datum=WGS84 +no_defs +type=crs");
@@ -264,7 +264,7 @@ static int proj_mercator(grib_handle* h, char* result)
{
int err = 0;
double LaDInDegrees = 0;
- char shape[64] = {0,};
+ char shape[128] = {0,};
if ((err = grib_get_double_internal(h, "LaDInDegrees", &LaDInDegrees)) != GRIB_SUCCESS)
return err;
@@ -275,7 +275,6 @@ static int proj_mercator(grib_handle* h, char* result)
return err;
}
-#define NUMBER(a) (sizeof(a) / sizeof(a[0]))
static proj_mapping proj_mappings[] = {
{ "regular_ll", &proj_unprojected },
{ "regular_gg", &proj_unprojected },
@@ -298,17 +297,28 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
{
grib_accessor_proj_string* self = (grib_accessor_proj_string*)a;
int err = 0, found = 0;
- size_t i = 0;
+ size_t i = 0;
char grid_type[64] = {0,};
grib_handle* h = grib_handle_of_accessor(a);
- size_t size = sizeof(grid_type) / sizeof(*grid_type);
+ size_t size = sizeof(grid_type) / sizeof(*grid_type);
Assert(self->endpoint == ENDPOINT_SOURCE || self->endpoint == ENDPOINT_TARGET);
+ size_t l = 100; // Safe bet
+ if (*len < l) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is at least %zu bytes long (len=%zu)",
+ cclass_name, a->name, l, *len);
+ *len = l;
+ return GRIB_BUFFER_TOO_SMALL;
+ }
+
err = grib_get_string(h, self->grid_type, grid_type, &size);
if (err) return err;
- for (i = 0; !found && i < NUMBER(proj_mappings); ++i) {
+ const size_t num_proj_mappings = sizeof(proj_mappings) / sizeof(proj_mappings[0]);
+ for (i = 0; !found && i < num_proj_mappings; ++i) {
proj_mapping pm = proj_mappings[i];
if (strcmp(grid_type, pm.gridType) == 0) {
found = 1;
diff --git a/src/grib_accessor_class_raw.cc b/src/grib_accessor_class_raw.cc
index f38153b43..cdac6a100 100644
--- a/src/grib_accessor_class_raw.cc
+++ b/src/grib_accessor_class_raw.cc
@@ -124,7 +124,7 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg)
e = grib_arguments_get_expression(hand, arg, n++);
err = grib_expression_evaluate_long(hand, e, &(self->relativeOffset));
if (err)
- grib_context_log(hand->context, GRIB_LOG_ERROR, "unable to evaluate relativeOffset");
+ grib_context_log(hand->context, GRIB_LOG_ERROR, "Unable to evaluate relativeOffset");
grib_get_long(hand, self->sectionLength, §ionLength);
diff --git a/src/grib_accessor_class_rdbtime_guess_date.cc b/src/grib_accessor_class_rdbtime_guess_date.cc
index 7bd8a3c4a..8a3bfa2a1 100644
--- a/src/grib_accessor_class_rdbtime_guess_date.cc
+++ b/src/grib_accessor_class_rdbtime_guess_date.cc
@@ -17,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* typicalYear
MEMBERS=const char* typicalMonth
MEMBERS=const char* typicalDay
@@ -39,7 +39,6 @@ or edit "accessor.class" and rerun ./make_class.pl
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_rdbtime_guess_date
@@ -66,7 +65,7 @@ static grib_accessor_class _grib_accessor_class_rdbtime_guess_date = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -124,11 +123,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
/* a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; */
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_rdbtime_guess_date* self = (grib_accessor_rdbtime_guess_date*)a;
diff --git a/src/grib_accessor_class_scale_values.cc b/src/grib_accessor_class_scale_values.cc
index bae505f23..8c4b33fcb 100644
--- a/src/grib_accessor_class_scale_values.cc
+++ b/src/grib_accessor_class_scale_values.cc
@@ -131,7 +131,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
size_t size = 0;
int ret = 0, i = 0;
grib_accessor_scale_values* self = (grib_accessor_scale_values*)a;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
grib_handle* h = grib_handle_of_accessor(a);
if (*val == 1)
diff --git a/src/grib_accessor_class_section.cc b/src/grib_accessor_class_section.cc
index 4b29c93bd..f9c8857a7 100644
--- a/src/grib_accessor_class_section.cc
+++ b/src/grib_accessor_class_section.cc
@@ -151,7 +151,6 @@ static int get_native_type(grib_accessor* a)
static grib_section* sub_section(grib_accessor* a)
{
- /* grib_accessor_section* self = (grib_accessor_section*)a; */
return a->sub_section;
}
@@ -163,17 +162,15 @@ static void update_size(grib_accessor* a, size_t length)
if (a->sub_section->aclength) {
int e = grib_pack_long(a->sub_section->aclength, &len, &size);
Assert(e == GRIB_SUCCESS);
- printf("update_length %s %ld %ld\n", a->sub_section->aclength->name,
- (long)a->sub_section->aclength->offset,
- (long)a->sub_section->aclength->length
-
- );
+ // printf("update_length %s %ld %ld\n", a->sub_section->aclength->name,
+ // (long)a->sub_section->aclength->offset,
+ // (long)a->sub_section->aclength->length);
}
a->sub_section->length = a->length = length;
a->sub_section->padding = 0;
- printf("update_size %s %ld\n", a->name, a->length);
+ // printf("update_size %s %ld\n", a->name, a->length);
Assert(a->length >= 0);
}
diff --git a/src/grib_accessor_class_section_pointer.cc b/src/grib_accessor_class_section_pointer.cc
index e9b81614a..861ab12e7 100644
--- a/src/grib_accessor_class_section_pointer.cc
+++ b/src/grib_accessor_class_section_pointer.cc
@@ -107,7 +107,7 @@ grib_accessor_class* grib_accessor_class_section_pointer = &_grib_accessor_class
static void init(grib_accessor* a, const long len, grib_arguments* arg)
{
- int n = 0;
+ int n = 0;
grib_accessor_section_pointer* self = (grib_accessor_section_pointer*)a;
self->sectionOffset = grib_arguments_get_name(grib_handle_of_accessor(a), arg, n++);
@@ -162,13 +162,13 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len)
static long byte_count(grib_accessor* a)
{
grib_accessor_section_pointer* self = (grib_accessor_section_pointer*)a;
- long sectionLength = 0;
- int ret = 0;
+ long sectionLength = 0;
+ int ret = 0;
ret = grib_get_long(grib_handle_of_accessor(a), self->sectionLength, §ionLength);
if (ret) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to get %s %s",
+ "Unable to get %s %s",
self->sectionLength, grib_get_error_message(ret));
return -1;
}
@@ -179,13 +179,13 @@ static long byte_count(grib_accessor* a)
static long byte_offset(grib_accessor* a)
{
grib_accessor_section_pointer* self = (grib_accessor_section_pointer*)a;
- long sectionOffset = 0;
- int ret = 0;
+ long sectionOffset = 0;
+ int ret = 0;
ret = grib_get_long(grib_handle_of_accessor(a), self->sectionOffset, §ionOffset);
if (ret) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to get %s %s",
+ "Unable to get %s %s",
self->sectionOffset, grib_get_error_message(ret));
return -1;
}
diff --git a/src/grib_accessor_class_signed_bits.cc b/src/grib_accessor_class_signed_bits.cc
index 7082f827e..dc8ccf488 100644
--- a/src/grib_accessor_class_signed_bits.cc
+++ b/src/grib_accessor_class_signed_bits.cc
@@ -16,7 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
IMPLEMENTS = next_offset
IMPLEMENTS = byte_count
IMPLEMENTS = value_count
@@ -45,7 +45,6 @@ static long byte_count(grib_accessor*);
static long byte_offset(grib_accessor*);
static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
static void update_size(grib_accessor*, size_t);
@@ -70,7 +69,7 @@ static grib_accessor_class _grib_accessor_class_signed_bits = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
&next_offset, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -152,13 +151,10 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->length = compute_byte_count(a);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
+ return GRIB_NOT_IMPLEMENTED;
+#if 0
grib_accessor_signed_bits* self = (grib_accessor_signed_bits*)a;
int i;
int ret = 0;
@@ -193,10 +189,13 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
*len = rlen;
return GRIB_SUCCESS;
+#endif
}
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
+ return GRIB_NOT_IMPLEMENTED;
+#if 0
grib_accessor_signed_bits* self = (grib_accessor_signed_bits*)a;
int ret = 0;
long off = 0;
@@ -232,6 +231,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
grib_context_free(a->context, buf);
return ret;
+#endif
}
static int value_count(grib_accessor* a, long* numberOfElements)
diff --git a/src/grib_accessor_class_simple_packing_error.cc b/src/grib_accessor_class_simple_packing_error.cc
index 3f5038a78..64f96eeea 100644
--- a/src/grib_accessor_class_simple_packing_error.cc
+++ b/src/grib_accessor_class_simple_packing_error.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_scaling.h"
#include "grib_api_internal.h"
/*
@@ -116,13 +111,14 @@ grib_accessor_class* grib_accessor_class_simple_packing_error = &_grib_accessor_
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_simple_packing_error* self = (grib_accessor_simple_packing_error*)a;
- int n = 0;
+ int n = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
- self->bitsPerValue = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->binaryScaleFactor = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->decimalScaleFactor = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->referenceValue = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->floatType = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->bitsPerValue = grib_arguments_get_name(h, c, n++);
+ self->binaryScaleFactor = grib_arguments_get_name(h, c, n++);
+ self->decimalScaleFactor = grib_arguments_get_name(h, c, n++);
+ self->referenceValue = grib_arguments_get_name(h, c, n++);
+ self->floatType = grib_arguments_get_name(h, c, n++);
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
a->length = 0;
@@ -131,25 +127,23 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_simple_packing_error* self = (grib_accessor_simple_packing_error*)a;
- int ret = 0;
- long binaryScaleFactor = 0;
- long bitsPerValue = 0;
- long decimalScaleFactor = 0;
- double referenceValue = 0;
- if ((ret = grib_get_long_internal(grib_handle_of_accessor(a),
- self->binaryScaleFactor, &binaryScaleFactor)) != GRIB_SUCCESS)
+ int ret = 0;
+ long binaryScaleFactor = 0;
+ long bitsPerValue = 0;
+ long decimalScaleFactor = 0;
+ double referenceValue = 0;
+ grib_handle* h = grib_handle_of_accessor(a);
+
+ if ((ret = grib_get_long_internal(h, self->binaryScaleFactor, &binaryScaleFactor)) != GRIB_SUCCESS)
return ret;
- if ((ret = grib_get_long_internal(grib_handle_of_accessor(a),
- self->bitsPerValue, &bitsPerValue)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_internal(h, self->bitsPerValue, &bitsPerValue)) != GRIB_SUCCESS)
return ret;
- if ((ret = grib_get_long_internal(grib_handle_of_accessor(a),
- self->decimalScaleFactor, &decimalScaleFactor)) != GRIB_SUCCESS)
+ if ((ret = grib_get_long_internal(h, self->decimalScaleFactor, &decimalScaleFactor)) != GRIB_SUCCESS)
return ret;
- if ((ret = grib_get_double_internal(grib_handle_of_accessor(a),
- self->referenceValue, &referenceValue)) != GRIB_SUCCESS)
+ if ((ret = grib_get_double_internal(h, self->referenceValue, &referenceValue)) != GRIB_SUCCESS)
return ret;
if (!strcmp(self->floatType, "ibm"))
diff --git a/src/grib_accessor_class_smart_table.cc b/src/grib_accessor_class_smart_table.cc
index 61b5d49e3..a3f257312 100644
--- a/src/grib_accessor_class_smart_table.cc
+++ b/src/grib_accessor_class_smart_table.cc
@@ -8,10 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/*****************************************
- * Enrico Fucile
- ****************************************/
-
#include "grib_api_internal.h"
#include
@@ -165,9 +161,9 @@ static int grib_load_smart_table(grib_context* c, const char* filename, const ch
static void init(grib_accessor* a, const long len, grib_arguments* params)
{
- int n = 0;
+ int n = 0;
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
+ grib_handle* hand = grib_handle_of_accessor(a);
self->values = grib_arguments_get_name(hand, params, n++);
self->tablename = grib_arguments_get_string(hand, params, n++);
@@ -179,25 +175,25 @@ static void init(grib_accessor* a, const long len, grib_arguments* params)
a->length = 0;
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
- self->dirty = 1;
+ self->dirty = 1;
self->tableCodesSize = 0;
- self->tableCodes = 0;
+ self->tableCodes = 0;
}
static grib_smart_table* load_table(grib_accessor* a)
{
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
- size_t size = 0;
- grib_handle* h = ((grib_accessor*)self)->parent->h;
- grib_context* c = h->context;
- grib_smart_table* t = NULL;
+ size_t size = 0;
+ grib_handle* h = ((grib_accessor*)self)->parent->h;
+ grib_context* c = h->context;
+ grib_smart_table* t = NULL;
grib_smart_table* next = NULL;
- char* filename = 0;
+ char* filename = 0;
char recomposed[1024] = {0,};
char localRecomposed[1024] = {0,};
- char* localFilename = 0;
+ char* localFilename = 0;
char extraRecomposed[1024] = {0,};
- char* extraFilename = 0;
+ char* extraFilename = 0;
char masterDir[1024] = {0,};
char localDir[1024] = {0,};
char extraDir[1024] = {0,};
@@ -253,13 +249,13 @@ static grib_smart_table* load_table(grib_accessor* a)
next = next->next;
}
- /* Note: self->widthOfCode is chosen so that 2^width is bigger than the maximum descriptor code,
- * which for BUFR4 is the Table C operator 243255
- */
- size = (1ULL << self->widthOfCode); /* = 2^self->widthOfCode (as a 64 bit number) */
+ // Note: self->widthOfCode is chosen so that 2^width is bigger than the maximum descriptor code,
+ // which for BUFR4 is the Table C operator 243255
+ //
+ size = (1ULL << self->widthOfCode); // = 2^self->widthOfCode (as a 64 bit number)
- t = (grib_smart_table*)grib_context_malloc_clear_persistent(c, sizeof(grib_smart_table));
- t->entries = (grib_smart_table_entry*)grib_context_malloc_clear_persistent(c, size * sizeof(grib_smart_table_entry));
+ t = (grib_smart_table*)grib_context_malloc_clear_persistent(c, sizeof(grib_smart_table));
+ t->entries = (grib_smart_table_entry*)grib_context_malloc_clear_persistent(c, size * sizeof(grib_smart_table_entry));
t->numberOfEntries = size;
if (filename != 0)
@@ -284,7 +280,8 @@ static int grib_load_smart_table(grib_context* c, const char* filename,
{
char line[1024] = {0,};
FILE* f = NULL;
- int lineNumber, numberOfColumns, code;
+ // int lineNumber;
+ int numberOfColumns, code;
grib_context_log(c, GRIB_LOG_DEBUG, "Loading code table from %s", filename);
@@ -295,32 +292,32 @@ static int grib_load_smart_table(grib_context* c, const char* filename,
Assert(t != NULL);
if (t->filename[0] == NULL) {
- t->filename[0] = grib_context_strdup_persistent(c, filename);
+ t->filename[0] = grib_context_strdup_persistent(c, filename);
t->recomposed_name[0] = grib_context_strdup_persistent(c, recomposed_name);
- t->next = c->smart_table;
- t->numberOfEntries = size;
+ t->next = c->smart_table;
+ t->numberOfEntries = size;
GRIB_MUTEX_INIT_ONCE(&once, &thread_init);
GRIB_MUTEX_LOCK(&mutex);
c->smart_table = t;
GRIB_MUTEX_UNLOCK(&mutex);
}
else if (t->filename[1] == NULL) {
- t->filename[1] = grib_context_strdup_persistent(c, filename);
+ t->filename[1] = grib_context_strdup_persistent(c, filename);
t->recomposed_name[1] = grib_context_strdup_persistent(c, recomposed_name);
}
else {
- t->filename[2] = grib_context_strdup_persistent(c, filename);
+ t->filename[2] = grib_context_strdup_persistent(c, filename);
t->recomposed_name[2] = grib_context_strdup_persistent(c, recomposed_name);
}
- lineNumber = 0;
+ // lineNumber = 0;
while (fgets(line, sizeof(line) - 1, f)) {
char* s = line;
char* p;
line[strlen(line) - 1] = 0;
- ++lineNumber;
+ // ++lineNumber;
while (*s != '\0' && isspace(*s))
s++;
@@ -343,7 +340,7 @@ static int grib_load_smart_table(grib_context* c, const char* filename,
*p = 0;
numberOfColumns = 0;
- /* The highest possible descriptor code must fit into t->numberOfEntries */
+ // The highest possible descriptor code must fit into t->numberOfEntries
DEBUG_ASSERT(code < t->numberOfEntries);
while (*s) {
char* tcol = t->entries[code].column[numberOfColumns];
@@ -404,7 +401,7 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
{
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
- grib_smart_table* table = NULL;
+ grib_smart_table* table = NULL;
size_t size = 1;
long value;
@@ -434,7 +431,7 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
}
strcpy(buffer, tmp);
- *len = l;
+ *len = l;
self->dirty = 0;
return GRIB_SUCCESS;
@@ -443,9 +440,9 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
static int get_table_codes(grib_accessor* a)
{
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
- size_t size = 0;
- long* v = 0;
- int err = 0;
+ size_t size = 0;
+ long* v = 0;
+ int err = 0;
int count, j;
size_t i;
@@ -454,7 +451,7 @@ static int get_table_codes(grib_accessor* a)
if (!self->dirty)
return 0;
- table_size = (1 << self->widthOfCode); /* 2 ^ self->widthOfCode */
+ table_size = (1 << self->widthOfCode); // 2 ^ self->widthOfCode
if (!self->table)
self->table = load_table(a);
@@ -478,7 +475,7 @@ static int get_table_codes(grib_accessor* a)
if (self->tableCodes)
grib_context_free(a->context, self->tableCodes);
self->tableCodes = (long*)grib_context_malloc_clear(a->context, count * sizeof(long));
- j = 0;
+ j = 0;
for (i = 0; i < size; i++) {
if (v[i] < table_size)
self->tableCodes[j++] = v[i];
@@ -487,16 +484,16 @@ static int get_table_codes(grib_accessor* a)
grib_context_free(a->context, v);
self->tableCodesSize = count;
- self->dirty = 0;
+ self->dirty = 0;
return 0;
}
static int value_count(grib_accessor* a, long* count)
{
- int err = 0;
+ int err = 0;
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
- *count = 0;
+ *count = 0;
if (!self->values)
return 0;
@@ -522,8 +519,8 @@ static void destroy(grib_context* context, grib_accessor* a)
static int get_native_type(grib_accessor* a)
{
int type = GRIB_TYPE_LONG;
- /*printf("---------- %s flags=%ld GRIB_ACCESSOR_FLAG_STRING_TYPE=%d\n",
- a->name,a->flags,GRIB_ACCESSOR_FLAG_STRING_TYPE);*/
+ //printf("---------- %s flags=%ld GRIB_ACCESSOR_FLAG_STRING_TYPE=%d\n",
+ // a->name,a->flags,GRIB_ACCESSOR_FLAG_STRING_TYPE);
if (a->flags & GRIB_ACCESSOR_FLAG_STRING_TYPE)
type = GRIB_TYPE_STRING;
return type;
@@ -531,7 +528,7 @@ static int get_native_type(grib_accessor* a)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- int err = 0;
+ int err = 0;
grib_accessor_smart_table* self = (grib_accessor_smart_table*)a;
size_t i;
@@ -544,8 +541,8 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
if (*len < self->tableCodesSize) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "Wrong size (%lu) for %s it contains %lu values", *len, a->name, self->tableCodesSize);
- *len = 0;
+ "Wrong size (%zu) for %s, it contains %zu values", *len, a->name, self->tableCodesSize);
+ *len = self->tableCodesSize;
return GRIB_ARRAY_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_smart_table_column.cc b/src/grib_accessor_class_smart_table_column.cc
index 11ff964d3..295f29281 100644
--- a/src/grib_accessor_class_smart_table_column.cc
+++ b/src/grib_accessor_class_smart_table_column.cc
@@ -130,11 +130,11 @@ typedef struct grib_accessor_smart_table
static void init(grib_accessor* a, const long len, grib_arguments* params)
{
- int n = 0;
+ int n = 0;
grib_accessor_smart_table_column* self = (grib_accessor_smart_table_column*)a;
self->smartTable = grib_arguments_get_name(grib_handle_of_accessor(a), params, n++);
- self->index = grib_arguments_get_long(grib_handle_of_accessor(a), params, n++);
+ self->index = grib_arguments_get_long(grib_handle_of_accessor(a), params, n++);
a->length = 0;
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
@@ -158,22 +158,22 @@ static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len)
{
grib_accessor_smart_table_column* self = (grib_accessor_smart_table_column*)a;
grib_accessor_smart_table* tableAccessor = NULL;
- grib_smart_table* table = NULL;
+ grib_smart_table* table = NULL;
size_t size = 1;
long* code;
- int err = GRIB_SUCCESS;
+ int err = GRIB_SUCCESS;
char tmp[1024] = {0,};
int i = 0;
tableAccessor = (grib_accessor_smart_table*)grib_find_accessor(grib_handle_of_accessor(a), self->smartTable);
if (!tableAccessor) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find accessor %s", self->smartTable);
+ "Unable to find accessor %s", self->smartTable);
return GRIB_NOT_FOUND;
}
- err = ecc__grib_get_size(grib_handle_of_accessor(a), (grib_accessor*)tableAccessor, &size);
+ err = grib_get_size_acc(grib_handle_of_accessor(a), (grib_accessor*)tableAccessor, &size);
if (err)
return err;
if (*len < size) {
@@ -213,7 +213,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_smart_table_column* self = (grib_accessor_smart_table_column*)a;
grib_accessor_smart_table* tableAccessor = NULL;
- grib_smart_table* table = NULL;
+ grib_smart_table* table = NULL;
size_t size = 1;
long* code;
@@ -226,11 +226,11 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
tableAccessor = (grib_accessor_smart_table*)grib_find_accessor(grib_handle_of_accessor(a), self->smartTable);
if (!tableAccessor) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "unable to find accessor %s", self->smartTable);
+ "Unable to find accessor %s", self->smartTable);
return GRIB_NOT_FOUND;
}
- err = ecc__grib_get_size(grib_handle_of_accessor(a), (grib_accessor*)tableAccessor, &size);
+ err = grib_get_size_acc(grib_handle_of_accessor(a), (grib_accessor*)tableAccessor, &size);
if (err)
return err;
if (*len < size) {
@@ -263,14 +263,14 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int value_count(grib_accessor* a, long* count)
{
grib_accessor_smart_table_column* self = (grib_accessor_smart_table_column*)a;
- size_t size = 0;
- int err = 0;
- *count = 0;
+ size_t size = 0;
+ int err = 0;
+ *count = 0;
if (!self->smartTable)
return 0;
- err = grib_get_size(grib_handle_of_accessor(a), self->smartTable, &size);
+ err = grib_get_size(grib_handle_of_accessor(a), self->smartTable, &size);
*count = size;
return err;
}
diff --git a/src/grib_accessor_class_spd.cc b/src/grib_accessor_class_spd.cc
index 22fa03dc5..e0f4a20a7 100644
--- a/src/grib_accessor_class_spd.cc
+++ b/src/grib_accessor_class_spd.cc
@@ -16,7 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
IMPLEMENTS = next_offset
IMPLEMENTS = byte_count
IMPLEMENTS = value_count
@@ -45,7 +45,6 @@ static long byte_count(grib_accessor*);
static long byte_offset(grib_accessor*);
static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
static void update_size(grib_accessor*, size_t);
@@ -70,7 +69,7 @@ static grib_accessor_class _grib_accessor_class_spd = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
&next_offset, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -153,11 +152,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->length = compute_byte_count(a);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_spd* self = (grib_accessor_spd*)a;
@@ -173,8 +167,8 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
if (*len < rlen) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "Wrong size (%ld) for %s it contains %ld values", *len, a->name, rlen);
- *len = 0;
+ "Wrong size (%zu) for %s, it contains %ld values", *len, a->name, rlen);
+ *len = rlen;
return GRIB_ARRAY_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_statistics.cc b/src/grib_accessor_class_statistics.cc
index a041414ee..915701a3a 100644
--- a/src/grib_accessor_class_statistics.cc
+++ b/src/grib_accessor_class_statistics.cc
@@ -313,10 +313,9 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_double(a, aval, &alen);
grib_unpack_double(b, bval, &blen);
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ retval = GRIB_SUCCESS;
+ for (size_t i=0; icontext, aval);
diff --git a/src/grib_accessor_class_statistics_spectral.cc b/src/grib_accessor_class_statistics_spectral.cc
index f545df07e..435582bef 100644
--- a/src/grib_accessor_class_statistics_spectral.cc
+++ b/src/grib_accessor_class_statistics_spectral.cc
@@ -266,10 +266,8 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_double(b, bval, &blen);
retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ for (size_t i=0; icontext, aval);
diff --git a/src/grib_accessor_class_step_human_readable.cc b/src/grib_accessor_class_step_human_readable.cc
index 1e62e044d..557a58185 100644
--- a/src/grib_accessor_class_step_human_readable.cc
+++ b/src/grib_accessor_class_step_human_readable.cc
@@ -9,6 +9,7 @@
*/
#include "grib_api_internal.h"
+#include "step.h"
/*
This is used by make_class.pl
@@ -127,10 +128,10 @@ static int get_step_human_readable(grib_handle* h, char* result, size_t* length)
/* Change units to seconds (highest resolution)
* before computing the step value
*/
- err = grib_set_string(h, "stepUnits", "s", &slen);
- if (err) return err;
- err = grib_get_long(h, "step", &step);
- if (err) return err;
+ if ((err = grib_set_string(h, "stepUnits", "s", &slen)) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_get_long(h, "step", &step)) != GRIB_SUCCESS)
+ return err;
hour = step/3600;
minute = step/60 % 60;
diff --git a/src/grib_accessor_class_step_in_units.cc b/src/grib_accessor_class_step_in_units.cc
index acf570c19..a25c85aec 100644
--- a/src/grib_accessor_class_step_in_units.cc
+++ b/src/grib_accessor_class_step_in_units.cc
@@ -9,6 +9,9 @@
*/
#include "grib_api_internal.h"
+#include "step.h"
+#include "step_utilities.h"
+#include
/*
This is used by make_class.pl
@@ -16,12 +19,15 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
+ IMPLEMENTS = unpack_double
+ IMPLEMENTS = unpack_string;pack_string
IMPLEMENTS = init;dump
- MEMBERS = const char* codedStep
- MEMBERS = const char* codedUnits
- MEMBERS = const char* stepUnits
- MEMBERS = const char* indicatorOfUnitForTimeRange
- MEMBERS = const char* lengthOfTimeRange
+ IMPLEMENTS = get_native_type
+ MEMBERS = const char* forecast_time_value
+ MEMBERS = const char* forecast_time_unit
+ MEMBERS = const char* step_units
+ MEMBERS = const char* time_range_unit
+ MEMBERS = const char* time_range_value
END_CLASS_DEF
@@ -37,8 +43,12 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
+static int get_native_type(grib_accessor*);
static int pack_long(grib_accessor*, const long* val, size_t* len);
+static int pack_string(grib_accessor*, const char*, size_t* len);
+static int unpack_double(grib_accessor*, double* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
+static int unpack_string(grib_accessor*, char*, size_t* len);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
@@ -48,11 +58,11 @@ typedef struct grib_accessor_step_in_units
/* Members defined in gen */
/* Members defined in long */
/* Members defined in step_in_units */
- const char* codedStep;
- const char* codedUnits;
- const char* stepUnits;
- const char* indicatorOfUnitForTimeRange;
- const char* lengthOfTimeRange;
+ const char* forecast_time_value;
+ const char* forecast_time_unit;
+ const char* step_units;
+ const char* time_range_unit;
+ const char* time_range_value;
} grib_accessor_step_in_units;
extern grib_accessor_class* grib_accessor_class_long;
@@ -72,7 +82,7 @@ static grib_accessor_class _grib_accessor_class_step_in_units = {
0, /* get number of values */
0, /* get number of bytes */
0, /* get offset to bytes */
- 0, /* get native type */
+ &get_native_type, /* get native type */
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
@@ -80,10 +90,10 @@ static grib_accessor_class _grib_accessor_class_step_in_units = {
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
- 0, /* unpack_double */
+ &unpack_double, /* unpack_double */
0, /* unpack_float */
- 0, /* pack_string */
- 0, /* unpack_string */
+ &pack_string, /* pack_string */
+ &unpack_string, /* unpack_string */
0, /* pack_string_array */
0, /* unpack_string_array */
0, /* pack_bytes */
@@ -113,13 +123,14 @@ grib_accessor_class* grib_accessor_class_step_in_units = &_grib_accessor_class_s
static void init(grib_accessor* a, const long l, grib_arguments* c)
{
grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
- int n = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
+ int n = 0;
- self->codedStep = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->codedUnits = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->stepUnits = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->indicatorOfUnitForTimeRange = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
- self->lengthOfTimeRange = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++);
+ self->forecast_time_value = grib_arguments_get_name(hand, c, n++);
+ self->forecast_time_unit = grib_arguments_get_name(hand, c, n++);
+ self->step_units = grib_arguments_get_name(hand, c, n++);
+ self->time_range_unit = grib_arguments_get_name(hand, c, n++);
+ self->time_range_value = grib_arguments_get_name(hand, c, n++);
}
static void dump(grib_accessor* a, grib_dumper* dumper)
@@ -127,139 +138,227 @@ static void dump(grib_accessor* a, grib_dumper* dumper)
grib_dump_double(dumper, a, NULL);
}
-/* Conversion of to seconds - Grib edition 2 table 4.4 */
-static const int u2s2[] = {
- 60, /* (0) minutes */
- 3600, /* (1) hour */
- 86400, /* (2) day */
- 2592000, /* (3) month */
- -1, /* (4) year */
- -1, /* (5) decade */
- -1, /* (6) 30 years */
- -1, /* (7) century */
- -1, /* (8) RESERVED */
- -1, /* (9) RESERVED */
- 10800, /* (10) 3 hours */
- 21600, /* (11) 6 hours */
- 43200, /* (12) 12 hours */
- 1 /* (13) seconds */
-};
-
-/* Note: 'stepUnits' has a different table with extra entries e.g. 15 and 30 mins */
-static const int u2s[] = {
- 60, /* (0) minutes */
- 3600, /* (1) hour */
- 86400, /* (2) day */
- 2592000, /* (3) month */
- -1, /* (4) year */
- -1, /* (5) decade */
- -1, /* (6) 30 years */
- -1, /* (7) century */
- -1, /* (8) */
- -1, /* (9) */
- 10800, /* (10) 3 hours */
- 21600, /* (11) 6 hours */
- 43200, /* (12) 12 hours */
- 1, /* (13) seconds */
- 900, /* (14) 15 minutes */
- 1800 /* (15) 30 minutes */
-};
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
- int err = 0;
- long codedStep, codedUnits, stepUnits;
+ const grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
+ int err = 0;
+ long forecast_time_value, forecast_time_unit, step_units;
grib_handle* h = grib_handle_of_accessor(a);
- int factor = 0;
- long u2sf, u2sf_step_unit;
-
- if ((err = grib_get_long_internal(h, self->codedUnits, &codedUnits)))
+ if ((err= grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
return err;
- if ((err = grib_get_long_internal(h, self->stepUnits, &stepUnits)))
+ if ((err = grib_get_long_internal(h, self->forecast_time_unit, &forecast_time_unit)))
return err;
- if ((err = grib_get_long_internal(h, self->codedStep, &codedStep)))
+ if ((err = grib_get_long_internal(h, self->forecast_time_value, &forecast_time_value)))
return err;
- if (stepUnits != codedUnits) {
- *val = codedStep * u2s2[codedUnits];
- if (*val < 0) {
- factor = 60;
- if (u2s2[codedUnits] % factor)
- return GRIB_DECODING_ERROR;
- if (u2s[stepUnits] % factor)
- return GRIB_DECODING_ERROR;
- u2sf = u2s2[codedUnits] / factor;
- *val = codedStep * u2sf;
- u2sf_step_unit = u2s[stepUnits] / factor;
- }
- else {
- u2sf_step_unit = u2s[stepUnits];
- }
+ try {
+ eccodes::Step step{forecast_time_value, forecast_time_unit};
+ step.optimize_unit();
- if (*val % u2sf_step_unit != 0) {
- err = grib_set_long_internal(h, self->stepUnits, codedUnits);
- *val = codedStep;
+ if ((err = grib_set_long_internal(h, "startStepUnit", eccodes::Unit{step_units}.value())) != GRIB_SUCCESS)
return err;
- }
- *val = *val / u2sf_step_unit;
+
+ *val = step.value(eccodes::Unit{step_units});
}
- else
- *val = codedStep;
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "step_in_units: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_double(grib_accessor* a, double * val, size_t* len)
+{
+ const grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
+ int err = 0;
+ long forecast_time_value, forecast_time_unit, step_units;
+ grib_handle* h = grib_handle_of_accessor(a);
+
+ if ((err= grib_get_long_internal(h, "stepUnits", &step_units)) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_get_long_internal(h, self->forecast_time_unit, &forecast_time_unit)))
+ return err;
+ if ((err = grib_get_long_internal(h, self->forecast_time_value, &forecast_time_value)))
+ return err;
+
+ try {
+ eccodes::Step step{forecast_time_value, forecast_time_unit};
+
+ if ((err = grib_set_long_internal(h, "startStepUnit", eccodes::Unit{step_units}.value())) != GRIB_SUCCESS)
+ return err;
+
+ *val = step.value(eccodes::Unit{step_units});
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "step_in_units: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int pack_long_new_(grib_accessor* a, const long start_step_value, const long start_step_unit, const long force_step_units)
+{
+ const grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int err = 0;
+ long forecast_time_unit;
+ long start_step_value_old;
+ long start_step_unit_old;
+ size_t len = 0;
+
+ if ((err = grib_get_long_internal(h, self->forecast_time_unit, &forecast_time_unit)) != GRIB_SUCCESS)
+ return err;
+ if ((err = unpack_long(a, &start_step_value_old, &len)) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_get_long_internal(h, "startStepUnit", &start_step_unit_old)) != GRIB_SUCCESS)
+ return err;
+
+ eccodes::Step start_step_old(start_step_value_old, start_step_unit_old);
+ eccodes::Step forecast_time(start_step_value, start_step_unit);
+ eccodes::Step time_range_new{};
+
+ auto time_range_opt = get_step(h, self->time_range_value, self->time_range_unit);
+
+ if (time_range_opt) {
+ auto time_range = time_range_opt.value();
+ time_range = time_range - (forecast_time - start_step_old);
+ if (time_range.value() < 0)
+ time_range = eccodes::Step{0l, time_range.unit()};
+ auto [sa, sb] = find_common_units(forecast_time.optimize_unit(), time_range.optimize_unit());
+ if ((err = set_step(h, self->forecast_time_value, self->forecast_time_unit, sa)) != GRIB_SUCCESS)
+ return err;
+ if ((err = grib_set_long_internal(h, "startStepUnit", forecast_time.unit().value())) != GRIB_SUCCESS)
+ return err;
+ if ((err = set_step(h, self->time_range_value, self->time_range_unit, sb)) != GRIB_SUCCESS)
+ return err;
+ return GRIB_SUCCESS;
+ }
+
+ if (eccodes::Unit{force_step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ forecast_time.optimize_unit();
+ }
+
+ if ((err = grib_set_long_internal(h, "startStepUnit", forecast_time.unit().value())) != GRIB_SUCCESS)
+ return err;
+ if ((err = set_step(h, self->forecast_time_value, self->forecast_time_unit, forecast_time)) != GRIB_SUCCESS)
+ return err;
return GRIB_SUCCESS;
}
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
- grib_handle* h = grib_handle_of_accessor(a);
- int err = 0;
- long codedStep, codedUnits, stepUnits;
- long oldStep = 0;
- long indicatorOfUnitForTimeRange, lengthOfTimeRange;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = GRIB_SUCCESS;
- if ((err = grib_get_long_internal(h, self->codedUnits, &codedUnits)))
- return err;
- if ((err = grib_get_long_internal(h, self->stepUnits, &stepUnits)))
- return err;
+ long force_step_units;
+ if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
+ return ret;
- unpack_long(a, &oldStep, len);
+ long start_step_unit;
+ try {
+ if (eccodes::Unit{force_step_units} == eccodes::Unit{eccodes::Unit::Value::MISSING}) {
+ if ((ret = grib_get_long_internal(h, "startStepUnit", &start_step_unit)) != GRIB_SUCCESS)
+ return ret;
- if (stepUnits != codedUnits) {
- codedStep = *val * u2s[stepUnits];
- if (codedStep % u2s2[codedUnits] != 0) {
- codedUnits = stepUnits;
- err = grib_set_long_internal(h, self->codedUnits, codedUnits);
- if (err != GRIB_SUCCESS)
- return err;
- codedStep = *val;
+ if (eccodes::Unit{start_step_unit} == eccodes::Unit{eccodes::Unit::Value::MISSING})
+ start_step_unit = eccodes::Unit{eccodes::Unit::Value::HOUR}.value();
}
else {
- codedStep = codedStep / u2s2[codedUnits];
+ start_step_unit = force_step_units;
}
}
- else {
- codedStep = *val;
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "step_in_units: %s", e.what());
+ return GRIB_DECODING_ERROR;
}
- if (self->indicatorOfUnitForTimeRange) {
- if ((err = grib_get_long_internal(h,
- self->indicatorOfUnitForTimeRange, &indicatorOfUnitForTimeRange)))
- return err;
- if ((err = grib_get_long_internal(h,
- self->lengthOfTimeRange, &lengthOfTimeRange)))
- return err;
- if (codedUnits == indicatorOfUnitForTimeRange)
- lengthOfTimeRange -= codedStep - oldStep;
- else
- lengthOfTimeRange -= codedStep * u2s2[codedUnits] / u2s2[indicatorOfUnitForTimeRange];
- lengthOfTimeRange = lengthOfTimeRange > 0 ? lengthOfTimeRange : 0;
- err = grib_set_long_internal(grib_handle_of_accessor(a), self->lengthOfTimeRange, lengthOfTimeRange);
- if (err != GRIB_SUCCESS)
- return err;
- }
+ ret = pack_long_new_(a, *val, start_step_unit, force_step_units);
- return grib_set_long_internal(grib_handle_of_accessor(a), self->codedStep, codedStep);
+ return ret;
+}
+
+static int pack_string(grib_accessor* a, const char* val, size_t* len)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ //long force_step_units = eccodes::Unit(eccodes::Unit::Value::MISSING).value();
+ int ret = GRIB_SUCCESS;
+ long force_step_units;
+ if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS)
+ return ret;
+
+ try {
+ eccodes::Step step = step_from_string(val, eccodes::Unit{force_step_units});
+ if ((ret = pack_long_new_(a, step.value(), step.unit().value(), force_step_units)) != GRIB_SUCCESS)
+ return ret;
+ }
+ catch (std::exception& e) {
+ grib_context_log(a->context, GRIB_LOG_ERROR, "step_in_units: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int unpack_string(grib_accessor* a, char* val, size_t* len)
+{
+ const grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a;
+ grib_handle* h = grib_handle_of_accessor(a);
+ int ret = GRIB_SUCCESS;
+ long start_step_value = 0;
+ long start_step_unit = 0;
+ long step_units = 0;
+ char fp_format[128] = "%g";
+ size_t fp_format_len = sizeof(fp_format);
+ int show_hours = a->context->grib_hourly_steps_with_units;
+
+ if ((ret = grib_get_long_internal(h, "startStep", &start_step_value)) != GRIB_SUCCESS)
+ return ret;
+ if ((ret = grib_get_long_internal(h, "startStepUnit", &start_step_unit)) != GRIB_SUCCESS)
+ return ret;
+ if ((ret = grib_get_long_internal(h, self->step_units, &step_units)))
+ return ret;
+ if ((ret = grib_get_string_internal(h, "formatForDoubles", fp_format, &fp_format_len)) != GRIB_SUCCESS)
+ return ret;
+
+ try {
+ eccodes::Step step{start_step_value, start_step_unit};
+ std::stringstream ss;
+
+ ss << step.value(fp_format, show_hours);
+
+ size_t size = ss.str().size() + 1;
+
+ if (*len < size)
+ return GRIB_ARRAY_TOO_SMALL;
+
+ *len = size;
+
+ memcpy(val, ss.str().c_str(), size);
+ }
+ catch (std::exception& e) {
+ grib_context_log(h->context, GRIB_LOG_ERROR, "step_in_units: %s", e.what());
+ return GRIB_DECODING_ERROR;
+ }
+
+ return GRIB_SUCCESS;
+}
+
+static int get_native_type(grib_accessor* a)
+{
+ grib_handle* h = grib_handle_of_accessor(a);
+ const int show_units_for_hours = a->context->grib_hourly_steps_with_units;
+
+ if (!show_units_for_hours) {
+ long step_units = 0;
+ if (grib_get_long_internal(h, "stepUnits", &step_units) == GRIB_SUCCESS) {
+ if (eccodes::Unit{step_units} == eccodes::Unit::Value::HOUR) {
+ return GRIB_TYPE_LONG; // For backward compatibility
+ }
+ }
+ }
+ return GRIB_TYPE_STRING;
}
diff --git a/src/grib_accessor_class_time.cc b/src/grib_accessor_class_time.cc
index e993bc734..3251fdd33 100644
--- a/src/grib_accessor_class_time.cc
+++ b/src/grib_accessor_class_time.cc
@@ -18,7 +18,7 @@
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
IMPLEMENTS = unpack_string
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* hour
MEMBERS=const char* minute
MEMBERS=const char* second
@@ -39,7 +39,6 @@ or edit "accessor.class" and rerun ./make_class.pl
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_time
@@ -64,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_time = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -119,19 +118,13 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
self->second = grib_arguments_get_name(hand, c, n++);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- int ret = 0;
- grib_accessor_time* self = (grib_accessor_time*)a;
- long hour = 0;
- long minute = 0;
- long second = 0;
- grib_handle* hand = grib_handle_of_accessor(a);
+ const grib_accessor_time* self = (grib_accessor_time*)a;
+
+ int ret = 0;
+ long hour = 0, minute = 0, second = 0;
+ grib_handle* hand = grib_handle_of_accessor(a);
if ((ret = grib_get_long_internal(hand, self->hour, &hour)) != GRIB_SUCCESS)
return ret;
@@ -143,7 +136,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
/* We ignore the 'seconds' in our time calculation! */
if (second != 0) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "Key %s (unpack_long): Truncating time: non-zero seconds(%ld) ignored", a->name, second);
+ "Key %s (%s): Truncating time: non-zero seconds(%ld) ignored", a->name, __func__, second);
}
if (*len < 1)
@@ -151,30 +144,34 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
*val = hour * 100 + minute;
- if (hour == 255)
+ if (hour == 255) {
*val = 12 * 100;
-
- if (hour != 255 && minute == 255)
+ }
+ if (hour != 255 && minute == 255) {
*val = hour * 100;
-
+ }
return GRIB_SUCCESS;
}
-/* TODO: Check for a valid date */
-
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int ret = 0;
- long v = val[0];
- grib_accessor_time* self = (grib_accessor_time*)a;
- grib_handle* hand = grib_handle_of_accessor(a);
- long hour = 0;
- long minute = 0;
- long second = 0;
+ const grib_accessor_time* self = (grib_accessor_time*)a;
+
+ int ret = 0;
+ long v = val[0];
+ grib_handle* hand = grib_handle_of_accessor(a);
+ long hour = 0, minute = 0, second = 0;
if (*len != 1)
return GRIB_WRONG_ARRAY_SIZE;
+ if (!is_time_valid(v)) {
+ // ECC-1777: For now just a warning. Will later change to an error
+ fprintf(stderr, "ECCODES WARNING : %s:%s: Time is not valid! hour=%ld min=%ld sec=%ld\n",
+ a->cclass->name, __func__, hour, minute, second);
+ // return GRIB_ENCODING_ERROR;
+ }
+
hour = v / 100;
minute = v % 100;
second = 0; /* We ignore the 'seconds' in our time calculation! */
@@ -191,20 +188,21 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- long v = 0;
- size_t lsize = 1;
+ long v = 0;
+ size_t lsize = 1, lmin = 5;
unpack_long(a, &v, &lsize);
- if (*len < 5) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Key %s (unpack_string): Buffer too small", a->name);
-
- *len = 5;
+ if (*len < lmin) {
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ a->cclass->name, a->name, lmin, *len);
+ *len = lmin;
return GRIB_BUFFER_TOO_SMALL;
}
snprintf(val, 64, "%04ld", v);
- len[0] = 5;
+ len[0] = lmin;
return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_to_double.cc b/src/grib_accessor_class_to_double.cc
index d0d4351c5..69b06add9 100644
--- a/src/grib_accessor_class_to_double.cc
+++ b/src/grib_accessor_class_to_double.cc
@@ -22,7 +22,6 @@
IMPLEMENTS = value_count
IMPLEMENTS = next_offset
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
MEMBERS = const char* key
MEMBERS = long start
MEMBERS = size_t length
@@ -50,7 +49,6 @@ static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_to_double
{
@@ -103,7 +101,7 @@ static grib_accessor_class _grib_accessor_class_to_double = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -152,7 +150,7 @@ static size_t string_length(grib_accessor* a)
if (self->length)
return self->length;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
return size;
}
@@ -168,18 +166,17 @@ static int get_native_type(grib_accessor* a)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int err = 0;
grib_accessor_to_double* self = (grib_accessor_to_double*)a;
- char buff[512] = {0,};
- size_t length;
+
+ int err = 0;
+ char buff[512] = {0,};
size_t size = 512;
+ size_t length = string_length(a);
- length = string_length(a);
-
- if (len[0] < length + 1) {
+ if (*len < length + 1) {
grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
+ *len, a->name, a->length + 1);
+ *len = length + 1;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -194,7 +191,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
memcpy(val, buff + self->start, length);
val[length] = 0;
- len[0] = length;
+ *len = length;
return err;
}
@@ -242,43 +239,3 @@ static long next_offset(grib_accessor* a)
{
return a->offset + a->length;
}
-
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- int retval = 0;
- char* aval = 0;
- char* bval = 0;
- int err = 0;
-
- size_t alen = 0;
- size_t blen = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
- bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
-
- grib_unpack_string(a, aval, &alen);
- grib_unpack_string(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- if (strcmp(aval, bval))
- retval = GRIB_STRING_VALUE_MISMATCH;
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
-}
diff --git a/src/grib_accessor_class_to_integer.cc b/src/grib_accessor_class_to_integer.cc
index 30fa00251..76ce1205d 100644
--- a/src/grib_accessor_class_to_integer.cc
+++ b/src/grib_accessor_class_to_integer.cc
@@ -22,7 +22,6 @@
IMPLEMENTS = value_count
IMPLEMENTS = next_offset
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
MEMBERS = const char* key
MEMBERS = long start
MEMBERS = size_t length
@@ -52,7 +51,6 @@ static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_to_integer
{
@@ -104,7 +102,7 @@ static grib_accessor_class _grib_accessor_class_to_integer = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -166,19 +164,21 @@ static int get_native_type(grib_accessor* a)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
- int err = 0;
grib_accessor_to_integer* self = (grib_accessor_to_integer*)a;
- char buff[512] = {0,};
- size_t length;
+
+ int err = 0;
+ char buff[512] = {0,};
size_t size = 512;
- length = string_length(a);
+ size_t length = string_length(a);
- if (len[0] < length + 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < length + 1) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, length+1, *len);
+ *len = length + 1;
+ return GRIB_BUFFER_TOO_SMALL;
}
err = grib_get_string(grib_handle_of_accessor(a), self->key, buff, &size);
@@ -192,7 +192,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
memcpy(val, buff + self->start, length);
val[length] = 0;
- len[0] = length;
+ *len = length;
return GRIB_SUCCESS;
}
@@ -239,46 +239,6 @@ static int unpack_double(grib_accessor* a, double* v, size_t* len)
return err;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- int retval = 0;
- char* aval = 0;
- char* bval = 0;
- int err = 0;
-
- size_t alen = 0;
- size_t blen = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
- bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
-
- grib_unpack_string(a, aval, &alen);
- grib_unpack_string(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- if (strcmp(aval, bval))
- retval = GRIB_STRING_VALUE_MISMATCH;
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
-}
-
static long next_offset(grib_accessor* a)
{
return a->offset + a->length;
diff --git a/src/grib_accessor_class_to_string.cc b/src/grib_accessor_class_to_string.cc
index ce8bf4e74..648edd1aa 100644
--- a/src/grib_accessor_class_to_string.cc
+++ b/src/grib_accessor_class_to_string.cc
@@ -22,7 +22,6 @@
IMPLEMENTS = value_count
IMPLEMENTS = next_offset
IMPLEMENTS = get_native_type
- IMPLEMENTS = compare
MEMBERS = const char* key
MEMBERS = long start
MEMBERS = size_t length
@@ -49,7 +48,6 @@ static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_to_string
{
@@ -101,7 +99,7 @@ static grib_accessor_class _grib_accessor_class_to_string = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -165,16 +163,18 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
grib_accessor_to_string* self = (grib_accessor_to_string*)a;
- int err = 0;
+ int err = 0;
char buff[512] = {0,};
size_t length = string_length(a);
- if (len[0] < length + 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values",
- len[0], a->name, a->length + 1);
- len[0] = 0;
- return GRIB_ARRAY_TOO_SMALL;
+ if (*len < length + 1) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, length+1, *len);
+ *len = length + 1;
+ return GRIB_BUFFER_TOO_SMALL;
}
size_t size = sizeof(buff);
@@ -189,7 +189,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
memcpy(val, buff + self->start, length);
val[length] = 0;
- len[0] = length;
+ *len = length;
return GRIB_SUCCESS;
}
@@ -221,46 +221,6 @@ static int unpack_double(grib_accessor* a, double* v, size_t* len)
return err;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- int retval = 0;
- char* aval = 0;
- char* bval = 0;
- int err = 0;
-
- size_t alen = 0;
- size_t blen = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (char*)grib_context_malloc(a->context, alen * sizeof(char));
- bval = (char*)grib_context_malloc(b->context, blen * sizeof(char));
-
- grib_unpack_string(a, aval, &alen);
- grib_unpack_string(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- if (strcmp(aval, bval))
- retval = GRIB_STRING_VALUE_MISMATCH;
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
-}
-
static long next_offset(grib_accessor* a)
{
return a->offset + a->length;
diff --git a/src/grib_accessor_class_transient_darray.cc b/src/grib_accessor_class_transient_darray.cc
index 9a316459b..51dbc2433 100644
--- a/src/grib_accessor_class_transient_darray.cc
+++ b/src/grib_accessor_class_transient_darray.cc
@@ -19,7 +19,7 @@
IMPLEMENTS = unpack_double;pack_double
IMPLEMENTS = unpack_long;pack_long;destroy
IMPLEMENTS = init;dump;value_count
- IMPLEMENTS = compare;get_native_type
+ IMPLEMENTS = get_native_type
MEMBERS=grib_darray* arr
MEMBERS=int type;
END_CLASS_DEF
@@ -45,7 +45,6 @@ static int value_count(grib_accessor*, long*);
static void destroy(grib_context*, grib_accessor*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
-static int compare(grib_accessor*, grib_accessor*);
typedef struct grib_accessor_transient_darray
{
@@ -96,7 +95,7 @@ static grib_accessor_class _grib_accessor_class_transient_darray = {
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
- &compare, /* compare vs. another accessor */
+ 0, /* compare vs. another accessor */
0, /* unpack only ith value (double) */
0, /* unpack only ith value (float) */
0, /* unpack a given set of elements (double) */
@@ -119,23 +118,20 @@ static void init(grib_accessor* a, const long length, grib_arguments* args)
a->length = 0;
}
-
static void dump(grib_accessor* a, grib_dumper* dumper)
{
- /* grib_accessor_transient_darray *self = (grib_accessor_transient_darray*)a; */
grib_dump_double(dumper, a, NULL);
}
static int pack_double(grib_accessor* a, const double* val, size_t* len)
{
grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
- size_t i;
if (self->arr)
grib_darray_delete(a->context, self->arr);
self->arr = grib_darray_new(a->context, *len, 10);
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
grib_darray_push(a->context, self->arr, val[i]);
return GRIB_SUCCESS;
@@ -144,13 +140,12 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
- size_t i;
if (self->arr)
grib_darray_delete(a->context, self->arr);
self->arr = grib_darray_new(a->context, *len, 10);
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
grib_darray_push(a->context, self->arr, (double)val[i]);
return GRIB_SUCCESS;
@@ -159,45 +154,43 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
- long count = 0;
- size_t i;
+ long count = 0;
value_count(a, &count);
if (*len < count) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s (setting %ld, required %ld) ", a->name, *len, count);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s (setting %zu, required %ld)", a->name, *len, count);
+ *len = count;
return GRIB_ARRAY_TOO_SMALL;
}
*len = count;
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
val[i] = self->arr->v[i];
-
return GRIB_SUCCESS;
}
+
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
- long count = 0;
- size_t i;
+ long count = 0;
value_count(a, &count);
if (*len < count) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s (setting %ld, required %ld) ", a->name, *len, count);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s (setting %zu, required %ld)", a->name, *len, count);
+ *len = count;
return GRIB_ARRAY_TOO_SMALL;
}
*len = count;
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
val[i] = (long)self->arr->v[i];
-
return GRIB_SUCCESS;
}
-
static void destroy(grib_context* c, grib_accessor* a)
{
grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
@@ -216,51 +209,8 @@ static int value_count(grib_accessor* a, long* count)
return 0;
}
-static int compare(grib_accessor* a, grib_accessor* b)
-{
- int retval = 0;
- double* aval = 0;
- double* bval = 0;
-
- size_t alen = 0;
- size_t blen = 0;
- int err = 0;
- long count = 0;
-
- err = grib_value_count(a, &count);
- if (err)
- return err;
- alen = count;
-
- err = grib_value_count(b, &count);
- if (err)
- return err;
- blen = count;
-
- if (alen != blen)
- return GRIB_COUNT_MISMATCH;
-
- aval = (double*)grib_context_malloc(a->context, alen * sizeof(double));
- bval = (double*)grib_context_malloc(b->context, blen * sizeof(double));
-
- grib_unpack_double(a, aval, &alen);
- grib_unpack_double(b, bval, &blen);
-
- retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
- }
-
- grib_context_free(a->context, aval);
- grib_context_free(b->context, bval);
-
- return retval;
-}
-
static int get_native_type(grib_accessor* a)
{
- grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
+ const grib_accessor_transient_darray* self = (grib_accessor_transient_darray*)a;
return self->type;
}
diff --git a/src/grib_accessor_class_uint16.cc b/src/grib_accessor_class_uint16.cc
index e95105b32..4bac26b59 100644
--- a/src/grib_accessor_class_uint16.cc
+++ b/src/grib_accessor_class_uint16.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint16
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint16 = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -106,8 +104,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
/*unsigned char* data = grib_handle_of_accessor(a)->buffer->data;*/
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -116,12 +112,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_NOT_IMPLEMENTED;
}
-
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_uint32.cc b/src/grib_accessor_class_uint32.cc
index 01889e79c..b45b7451f 100644
--- a/src/grib_accessor_class_uint32.cc
+++ b/src/grib_accessor_class_uint32.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint32
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint32 = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -106,8 +104,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
/* unsigned char* data = grib_handle_of_accessor(a)->buffer->data; */
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -116,11 +112,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_NOT_IMPLEMENTED;
}
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_uint32_little_endian.cc b/src/grib_accessor_class_uint32_little_endian.cc
index 79907c466..3e39e0586 100644
--- a/src/grib_accessor_class_uint32_little_endian.cc
+++ b/src/grib_accessor_class_uint32_little_endian.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint32_little_endian
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint32_little_endian = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -106,8 +104,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
/* unsigned char* data = grib_handle_of_accessor(a)->buffer->data; */
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -116,12 +112,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_NOT_IMPLEMENTED;
}
-
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_uint64.cc b/src/grib_accessor_class_uint64.cc
index 1e8ef3a93..20bd7e194 100644
--- a/src/grib_accessor_class_uint64.cc
+++ b/src/grib_accessor_class_uint64.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint64
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint64 = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -108,8 +106,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
int i;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -132,11 +128,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS;
}
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_uint64_little_endian.cc b/src/grib_accessor_class_uint64_little_endian.cc
index cd579403e..0553aefbf 100644
--- a/src/grib_accessor_class_uint64_little_endian.cc
+++ b/src/grib_accessor_class_uint64_little_endian.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint64_little_endian
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint64_little_endian = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -108,8 +106,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
int i;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -132,12 +128,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS;
}
-
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_uint8.cc b/src/grib_accessor_class_uint8.cc
index 1c0ac0a2e..3f4195eff 100644
--- a/src/grib_accessor_class_uint8.cc
+++ b/src/grib_accessor_class_uint8.cc
@@ -17,7 +17,6 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = unpack_long
- IMPLEMENTS = pack_long
IMPLEMENTS = get_native_type
END_CLASS_DEF
@@ -34,7 +33,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
-static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
typedef struct grib_accessor_uint8
@@ -65,7 +63,7 @@ static grib_accessor_class _grib_accessor_class_uint8 = {
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
- &pack_long, /* pack_long */
+ 0, /* pack_long */
&unpack_long, /* unpack_long */
0, /* pack_double */
0, /* pack_float */
@@ -106,8 +104,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
unsigned char* data = grib_handle_of_accessor(a)->buffer->data;
if (*len < 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
- *len = 0;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -118,12 +114,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS;
}
-
-static int pack_long(grib_accessor* a, const long* val, size_t* len)
-{
- return GRIB_NOT_IMPLEMENTED;
-}
-
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
diff --git a/src/grib_accessor_class_unexpanded_descriptors.cc b/src/grib_accessor_class_unexpanded_descriptors.cc
index b583ce5cd..a026388f2 100644
--- a/src/grib_accessor_class_unexpanded_descriptors.cc
+++ b/src/grib_accessor_class_unexpanded_descriptors.cc
@@ -16,7 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
IMPLEMENTS = next_offset
IMPLEMENTS = value_count
IMPLEMENTS = byte_offset
@@ -43,7 +43,6 @@ static int unpack_long(grib_accessor*, long* val, size_t* len);
static long byte_offset(grib_accessor*);
static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
static void update_size(grib_accessor*, size_t);
@@ -68,7 +67,7 @@ static grib_accessor_class _grib_accessor_class_unexpanded_descriptors = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
&next_offset, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -122,11 +121,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->length = 0;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_unexpanded_descriptors* self = (grib_accessor_unexpanded_descriptors*)a;
diff --git a/src/grib_accessor_class_unsigned_bits.cc b/src/grib_accessor_class_unsigned_bits.cc
index 026d4ff67..38c3425cf 100644
--- a/src/grib_accessor_class_unsigned_bits.cc
+++ b/src/grib_accessor_class_unsigned_bits.cc
@@ -16,7 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long;pack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
IMPLEMENTS = next_offset
IMPLEMENTS = byte_count
IMPLEMENTS = value_count
@@ -45,7 +45,6 @@ static long byte_count(grib_accessor*);
static long byte_offset(grib_accessor*);
static long next_offset(grib_accessor*);
static int value_count(grib_accessor*, long*);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
static void update_size(grib_accessor*, size_t);
@@ -70,7 +69,7 @@ static grib_accessor_class _grib_accessor_class_unsigned_bits = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
&next_offset, /* next_offset */
0, /* get length of string */
&value_count, /* get number of values */
@@ -149,11 +148,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* args)
a->length = compute_byte_count(a);
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_unsigned_bits* self = (grib_accessor_unsigned_bits*)a;
@@ -169,7 +163,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
if (*len < rlen) {
grib_context_log(a->context, GRIB_LOG_ERROR,
"Wrong size (%ld) for %s, it contains %ld values", *len, a->name, rlen);
- *len = 0;
+ *len = rlen;
return GRIB_ARRAY_TOO_SMALL;
}
diff --git a/src/grib_accessor_class_validity_date.cc b/src/grib_accessor_class_validity_date.cc
index 8182228ae..760b7bccd 100644
--- a/src/grib_accessor_class_validity_date.cc
+++ b/src/grib_accessor_class_validity_date.cc
@@ -17,7 +17,7 @@
CLASS = accessor
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* date
MEMBERS=const char* time
MEMBERS=const char* step
@@ -40,7 +40,6 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
static int unpack_long(grib_accessor*, long* val, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_validity_date
@@ -69,7 +68,7 @@ static grib_accessor_class _grib_accessor_class_validity_date = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -165,11 +164,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_validity_date* self = (grib_accessor_validity_date*)a;
diff --git a/src/grib_accessor_class_validity_time.cc b/src/grib_accessor_class_validity_time.cc
index e07e71e15..34eb78128 100644
--- a/src/grib_accessor_class_validity_time.cc
+++ b/src/grib_accessor_class_validity_time.cc
@@ -18,7 +18,7 @@
SUPER = grib_accessor_class_long
IMPLEMENTS = unpack_long
IMPLEMENTS = unpack_string
- IMPLEMENTS = init;dump
+ IMPLEMENTS = init
MEMBERS=const char* date
MEMBERS=const char* time
MEMBERS=const char* step
@@ -41,7 +41,6 @@ or edit "accessor.class" and rerun ./make_class.pl
static int unpack_long(grib_accessor*, long* val, size_t* len);
static int unpack_string(grib_accessor*, char*, size_t* len);
-static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
typedef struct grib_accessor_validity_time
@@ -69,7 +68,7 @@ static grib_accessor_class _grib_accessor_class_validity_time = {
&init, /* init */
0, /* post_init */
0, /* destroy */
- &dump, /* dump */
+ 0, /* dump */
0, /* next_offset */
0, /* get length of string */
0, /* get number of values */
@@ -164,11 +163,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-static void dump(grib_accessor* a, grib_dumper* dumper)
-{
- grib_dump_long(dumper, a, NULL);
-}
-
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
grib_accessor_validity_time* self = (grib_accessor_validity_time*)a;
@@ -234,19 +228,22 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
int err = 0;
long v = 0;
- size_t lsize = 1;
+ size_t lsize = 1, lmin = 5;
err = unpack_long(a, &v, &lsize);
if (err) return err;
- if (*len < 5) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Key %s (unpack_string): Buffer too small", a->name);
- *len = 5;
+ if (*len < lmin) {
+ const char* cclass_name = a->cclass->name;
+ grib_context_log(a->context, GRIB_LOG_ERROR,
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ cclass_name, a->name, lmin, *len);
+ *len = lmin;
return GRIB_BUFFER_TOO_SMALL;
}
snprintf(val, 64, "%04ld", v);
- len[0] = 5;
+ len[0] = lmin;
return GRIB_SUCCESS;
}
diff --git a/src/grib_accessor_class_values.cc b/src/grib_accessor_class_values.cc
index 3e69cf56e..384282317 100644
--- a/src/grib_accessor_class_values.cc
+++ b/src/grib_accessor_class_values.cc
@@ -231,10 +231,8 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_double(b, bval, &blen);
retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ for (size_t i=0; icontext, aval);
@@ -245,15 +243,13 @@ static int compare(grib_accessor* a, grib_accessor* b)
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
- int ret = 0;
grib_accessor_values* self = (grib_accessor_values*)a;
- int i;
double* dval = (double*)grib_context_malloc(a->context, *len * sizeof(double));
- for (i = 0; i < *len; i++)
+ for (size_t i = 0; i < *len; i++)
dval[i] = (double)val[i];
- ret = grib_pack_double(a, dval, len);
+ int ret = grib_pack_double(a, dval, len);
grib_context_free(a->context, dval);
diff --git a/src/grib_accessor_class_variable.cc b/src/grib_accessor_class_variable.cc
index 745b12e14..f47da7383 100644
--- a/src/grib_accessor_class_variable.cc
+++ b/src/grib_accessor_class_variable.cc
@@ -126,6 +126,12 @@ grib_accessor_class* grib_accessor_class_variable = &_grib_accessor_class_variab
/* END_CLASS_IMP */
+//
+// This accessor is used for:
+// constant
+// transient
+//
+
#define MAX_VARIABLE_STRING_LENGTH 255
static void init(grib_accessor* a, const long length, grib_arguments* args)
@@ -135,9 +141,9 @@ static void init(grib_accessor* a, const long length, grib_arguments* args)
grib_expression* expression = grib_arguments_get_expression(hand, args, 0);
const char* p = 0;
size_t len = 1;
- long l;
+ long l = 0;
int ret = 0;
- double d;
+ double d = 0;
self->cname = NULL;
a->length = 0;
@@ -160,7 +166,7 @@ static void init(grib_accessor* a, const long length, grib_arguments* args)
len = sizeof(tmp);
p = grib_expression_evaluate_string(hand, expression, tmp, &len, &ret);
if (ret != GRIB_SUCCESS) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "unable to evaluate %s as string: %s",
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Unable to evaluate %s as string: %s",
a->name, grib_get_error_message(ret));
return;
}
@@ -180,7 +186,7 @@ void accessor_variable_set_type(grib_accessor* a, int type)
static void dump(grib_accessor* a, grib_dumper* dumper)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
switch (self->type) {
case GRIB_TYPE_DOUBLE:
grib_dump_double(dumper, a, NULL);
@@ -202,11 +208,16 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len)
const double dval = *val;
if (*len != 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values", a->name, 1);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains 1 value", a->name);
*len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
+ //if (std::isnan(dval)) {
+ // grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Invalid number for %s: %g", __func__, a->name, dval);
+ // return GRIB_INVALID_ARGUMENT;
+ //}
+
self->dval = dval;
if (dval < (double)LONG_MIN || dval > (double)LONG_MAX)
self->type = GRIB_TYPE_DOUBLE;
@@ -222,7 +233,7 @@ static int pack_float(grib_accessor* a, const float* val, size_t* len)
const double fval = *val;
if (*len != 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains 1 value", a->name);
*len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -241,7 +252,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
grib_accessor_variable* self = (grib_accessor_variable*)a;
if (*len != 1) {
- grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
+ grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains 1 value", a->name);
*len = 1;
return GRIB_ARRAY_TOO_SMALL;
}
@@ -255,7 +266,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len)
static int unpack_double(grib_accessor* a, double* val, size_t* len)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
if (*len < 1) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1);
@@ -269,7 +280,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
static int unpack_float(grib_accessor* a, float* val, size_t* len)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
if (*len < 1) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1);
@@ -283,7 +294,7 @@ static int unpack_float(grib_accessor* a, float* val, size_t* len)
static int unpack_long(grib_accessor* a, long* val, size_t* len)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
if (*len < 1) {
grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1);
@@ -297,7 +308,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len)
static int get_native_type(grib_accessor* a)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
return self->type;
}
@@ -324,7 +335,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
char buf[80];
char* p = buf;
- size_t slen;
+ size_t slen = 0;
if (self->type == GRIB_TYPE_STRING) {
p = self->cval;
@@ -336,8 +347,8 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
slen = strlen(p) + 1;
if (*len < slen) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "Variable unpack_string. Wrong size for %s, it is %ld bytes long (len=%lu)",
- a->name, slen, *len);
+ "%s: Buffer too small for %s. It is %zu bytes long (len=%zu)",
+ a->cclass->name, a->name, slen, *len);
*len = slen;
return GRIB_BUFFER_TOO_SMALL;
}
@@ -350,7 +361,7 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len)
static int pack_string(grib_accessor* a, const char* val, size_t* len)
{
grib_accessor_variable* self = (grib_accessor_variable*)a;
- grib_context* c = a->context;
+ const grib_context* c = a->context;
grib_context_free(c, self->cval);
self->cval = grib_context_strdup(c, val);
@@ -369,7 +380,7 @@ static int value_count(grib_accessor* a, long* count)
static size_t string_length(grib_accessor* a)
{
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
if (self->type == GRIB_TYPE_STRING)
return strlen(self->cval);
else
@@ -383,7 +394,7 @@ static long byte_count(grib_accessor* a)
static int compare(grib_accessor* a, grib_accessor* b)
{
- int retval = 0;
+ int retval = GRIB_SUCCESS;
double* aval = 0;
double* bval = 0;
@@ -412,10 +423,9 @@ static int compare(grib_accessor* a, grib_accessor* b)
grib_unpack_double(b, bval, &blen);
retval = GRIB_SUCCESS;
- while (alen != 0) {
- if (*bval != *aval)
- retval = GRIB_DOUBLE_VALUE_MISMATCH;
- alen--;
+ retval = GRIB_SUCCESS;
+ for (size_t i=0; icontext, aval);
@@ -426,13 +436,13 @@ static int compare(grib_accessor* a, grib_accessor* b)
static grib_accessor* make_clone(grib_accessor* a, grib_section* s, int* err)
{
- grib_accessor* the_clone = NULL;
- grib_accessor_variable* self = (grib_accessor_variable*)a;
+ grib_accessor* the_clone = NULL;
+ const grib_accessor_variable* self = (grib_accessor_variable*)a;
grib_accessor_variable* variableAccessor = NULL;
- grib_action creator = {0,};
- creator.op = (char*)"variable";
+ grib_action creator = {0,};
+ creator.op = (char*)"variable";
creator.name_space = (char*)"";
- creator.set = 0;
+ creator.set = 0;
creator.name = grib_context_strdup(a->context, a->name);
the_clone = grib_accessor_factory(s, &creator, 0, NULL);
diff --git a/src/grib_accessor_class_when.cc b/src/grib_accessor_class_when.cc
index 6717c2c4a..1bf0d999e 100644
--- a/src/grib_accessor_class_when.cc
+++ b/src/grib_accessor_class_when.cc
@@ -8,11 +8,6 @@
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
-/**************************************
- * Enrico Fucile
- **************************************/
-
-
#include "grib_api_internal.h"
/*
This is used by make_class.pl
@@ -21,6 +16,7 @@
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = init;dump;
+ IMPLEMENTS = get_native_type
IMPLEMENTS = notify_change
END_CLASS_DEF
@@ -36,6 +32,7 @@ or edit "accessor.class" and rerun ./make_class.pl
*/
+static int get_native_type(grib_accessor*);
static void dump(grib_accessor*, grib_dumper*);
static void init(grib_accessor*, const long, grib_arguments*);
static int notify_change(grib_accessor*, grib_accessor*);
@@ -64,7 +61,7 @@ static grib_accessor_class _grib_accessor_class_when = {
0, /* get number of values */
0, /* get number of bytes */
0, /* get offset to bytes */
- 0, /* get native type */
+ &get_native_type, /* get native type */
0, /* get sub_section */
0, /* pack_missing */
0, /* is_missing */
@@ -109,7 +106,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg)
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
}
-
static void dump(grib_accessor* a, grib_dumper* dumper)
{
/* grib_dump_when(dumper,a,NULL); */
@@ -119,3 +115,8 @@ static int notify_change(grib_accessor* a, grib_accessor* changed)
{
return grib_action_notify_change(a->creator, a, changed);
}
+
+static int get_native_type(grib_accessor* a)
+{
+ return GRIB_TYPE_UNDEFINED;
+}
diff --git a/src/grib_accessor_classes_hash.cc b/src/grib_accessor_classes_hash.cc
index ef515c9e1..5617c9456 100644
--- a/src/grib_accessor_classes_hash.cc
+++ b/src/grib_accessor_classes_hash.cc
@@ -35,9 +35,9 @@
#include "grib_accessor_class.h"
#line 6 "accessor_class_list.gperf"
-struct accessor_class_hash { char *name; grib_accessor_class **cclass;};
+struct accessor_class_hash { const char *name; grib_accessor_class **cclass;};
-#define TOTAL_KEYWORDS 203
+#define TOTAL_KEYWORDS 205
#define MIN_WORD_LENGTH 1
#define MAX_WORD_LENGTH 44
#define MIN_HASH_VALUE 1
@@ -117,21 +117,21 @@ static const struct accessor_class_hash classes[] =
#line 9 "accessor_class_list.gperf"
{" "},
{""}, {""}, {""}, {""},
-#line 177 "accessor_class_list.gperf"
+#line 179 "accessor_class_list.gperf"
{"size", &grib_accessor_class_size},
#line 12 "accessor_class_list.gperf"
{"ascii", &grib_accessor_class_ascii},
-#line 174 "accessor_class_list.gperf"
+#line 176 "accessor_class_list.gperf"
{"signed", &grib_accessor_class_signed},
-#line 154 "accessor_class_list.gperf"
+#line 156 "accessor_class_list.gperf"
{"pad", &grib_accessor_class_pad},
-#line 180 "accessor_class_list.gperf"
+#line 182 "accessor_class_list.gperf"
{"spd", &grib_accessor_class_spd},
{""},
#line 75 "accessor_class_list.gperf"
{"dirty", &grib_accessor_class_dirty},
{""},
-#line 175 "accessor_class_list.gperf"
+#line 177 "accessor_class_list.gperf"
{"signed_bits", &grib_accessor_class_signed_bits},
{""},
#line 66 "accessor_class_list.gperf"
@@ -141,7 +141,7 @@ static const struct accessor_class_hash classes[] =
{"data_simple_packing", &grib_accessor_class_data_simple_packing},
#line 68 "accessor_class_list.gperf"
{"data_secondary_bitmap", &grib_accessor_class_data_secondary_bitmap},
-#line 168 "accessor_class_list.gperf"
+#line 170 "accessor_class_list.gperf"
{"section", &grib_accessor_class_section},
#line 43 "accessor_class_list.gperf"
{"data_apply_bitmap", &grib_accessor_class_data_apply_bitmap},
@@ -155,36 +155,36 @@ static const struct accessor_class_hash classes[] =
{"data_jpeg2000_packing", &grib_accessor_class_data_jpeg2000_packing},
#line 65 "accessor_class_list.gperf"
{"data_png_packing", &grib_accessor_class_data_png_packing},
-#line 170 "accessor_class_list.gperf"
+#line 172 "accessor_class_list.gperf"
{"section_padding", &grib_accessor_class_section_padding},
-#line 171 "accessor_class_list.gperf"
+#line 173 "accessor_class_list.gperf"
{"section_pointer", &grib_accessor_class_section_pointer},
#line 44 "accessor_class_list.gperf"
{"data_apply_boustrophedonic", &grib_accessor_class_data_apply_boustrophedonic},
{""}, {""}, {""}, {""},
#line 80 "accessor_class_list.gperf"
{"expanded_descriptors", &grib_accessor_class_expanded_descriptors},
-#line 155 "accessor_class_list.gperf"
+#line 157 "accessor_class_list.gperf"
{"padding", &grib_accessor_class_padding},
#line 45 "accessor_class_list.gperf"
{"data_apply_boustrophedonic_bitmap", &grib_accessor_class_data_apply_boustrophedonic_bitmap},
#line 110 "accessor_class_list.gperf"
{"gds_is_present", &grib_accessor_class_gds_is_present},
-#line 167 "accessor_class_list.gperf"
- {"second_order_bits_per_value", &grib_accessor_class_second_order_bits_per_value},
#line 169 "accessor_class_list.gperf"
+ {"second_order_bits_per_value", &grib_accessor_class_second_order_bits_per_value},
+#line 171 "accessor_class_list.gperf"
{"section_length", &grib_accessor_class_section_length},
#line 113 "accessor_class_list.gperf"
{"getenv", &grib_accessor_class_getenv},
#line 57 "accessor_class_list.gperf"
{"data_g22order_packing", &grib_accessor_class_data_g22order_packing},
-#line 189 "accessor_class_list.gperf"
+#line 191 "accessor_class_list.gperf"
{"time", &grib_accessor_class_time},
{""},
#line 61 "accessor_class_list.gperf"
{"data_g2shsimple_packing", &grib_accessor_class_data_g2shsimple_packing},
{""},
-#line 153 "accessor_class_list.gperf"
+#line 155 "accessor_class_list.gperf"
{"packing_type", &grib_accessor_class_packing_type},
#line 62 "accessor_class_list.gperf"
{"data_g2simple_packing", &grib_accessor_class_data_g2simple_packing},
@@ -198,28 +198,28 @@ static const struct accessor_class_hash classes[] =
{"g2end_step", &grib_accessor_class_g2end_step},
#line 98 "accessor_class_list.gperf"
{"g2_eps", &grib_accessor_class_g2_eps},
-#line 141 "accessor_class_list.gperf"
+#line 142 "accessor_class_list.gperf"
{"nearest", &grib_accessor_class_nearest},
{""},
-#line 156 "accessor_class_list.gperf"
+#line 158 "accessor_class_list.gperf"
{"padto", &grib_accessor_class_padto},
-#line 187 "accessor_class_list.gperf"
+#line 189 "accessor_class_list.gperf"
{"sum", &grib_accessor_class_sum},
{""},
#line 107 "accessor_class_list.gperf"
{"g2lon", &grib_accessor_class_g2lon},
-#line 201 "accessor_class_list.gperf"
+#line 203 "accessor_class_list.gperf"
{"uint8", &grib_accessor_class_uint8},
{""},
-#line 186 "accessor_class_list.gperf"
+#line 188 "accessor_class_list.gperf"
{"step_in_units", &grib_accessor_class_step_in_units},
#line 63 "accessor_class_list.gperf"
{"data_g2simple_packing_with_preprocessing", &grib_accessor_class_data_g2simple_packing_with_preprocessing},
-#line 199 "accessor_class_list.gperf"
+#line 201 "accessor_class_list.gperf"
{"uint64", &grib_accessor_class_uint64},
#line 47 "accessor_class_list.gperf"
{"data_complex_packing", &grib_accessor_class_data_complex_packing},
-#line 197 "accessor_class_list.gperf"
+#line 199 "accessor_class_list.gperf"
{"uint32", &grib_accessor_class_uint32},
#line 13 "accessor_class_list.gperf"
{"bit", &grib_accessor_class_bit},
@@ -233,7 +233,7 @@ static const struct accessor_class_hash classes[] =
{"julian_day", &grib_accessor_class_julian_day},
#line 123 "accessor_class_list.gperf"
{"julian_date", &grib_accessor_class_julian_date},
-#line 142 "accessor_class_list.gperf"
+#line 143 "accessor_class_list.gperf"
{"non_alpha", &grib_accessor_class_non_alpha},
{""},
#line 29 "accessor_class_list.gperf"
@@ -245,14 +245,14 @@ static const struct accessor_class_hash classes[] =
#line 16 "accessor_class_list.gperf"
{"bits_per_value", &grib_accessor_class_bits_per_value},
{""}, {""}, {""}, {""}, {""},
-#line 165 "accessor_class_list.gperf"
+#line 167 "accessor_class_list.gperf"
{"scale", &grib_accessor_class_scale},
{""},
-#line 183 "accessor_class_list.gperf"
+#line 185 "accessor_class_list.gperf"
{"statistics", &grib_accessor_class_statistics},
#line 102 "accessor_class_list.gperf"
{"g2date", &grib_accessor_class_g2date},
-#line 144 "accessor_class_list.gperf"
+#line 145 "accessor_class_list.gperf"
{"number_of_points", &grib_accessor_class_number_of_points},
#line 100 "accessor_class_list.gperf"
{"g2bitmap", &grib_accessor_class_g2bitmap},
@@ -265,13 +265,13 @@ static const struct accessor_class_hash classes[] =
{"gds_not_present_bitmap", &grib_accessor_class_gds_not_present_bitmap},
#line 122 "accessor_class_list.gperf"
{"iterator", &grib_accessor_class_iterator},
-#line 184 "accessor_class_list.gperf"
+#line 186 "accessor_class_list.gperf"
{"statistics_spectral", &grib_accessor_class_statistics_spectral},
#line 46 "accessor_class_list.gperf"
{"data_ccsds_packing", &grib_accessor_class_data_ccsds_packing},
-#line 145 "accessor_class_list.gperf"
+#line 146 "accessor_class_list.gperf"
{"number_of_points_gaussian", &grib_accessor_class_number_of_points_gaussian},
-#line 204 "accessor_class_list.gperf"
+#line 206 "accessor_class_list.gperf"
{"unsigned", &grib_accessor_class_unsigned},
#line 138 "accessor_class_list.gperf"
{"md5", &grib_accessor_class_md5},
@@ -280,30 +280,30 @@ static const struct accessor_class_hash classes[] =
{"g2_aerosol", &grib_accessor_class_g2_aerosol},
#line 139 "accessor_class_list.gperf"
{"message", &grib_accessor_class_message},
-#line 205 "accessor_class_list.gperf"
+#line 207 "accessor_class_list.gperf"
{"unsigned_bits", &grib_accessor_class_unsigned_bits},
-#line 172 "accessor_class_list.gperf"
+#line 174 "accessor_class_list.gperf"
{"select_step_template", &grib_accessor_class_select_step_template},
#line 136 "accessor_class_list.gperf"
{"mars_param", &grib_accessor_class_mars_param},
-#line 202 "accessor_class_list.gperf"
+#line 204 "accessor_class_list.gperf"
{"unexpanded_descriptors", &grib_accessor_class_unexpanded_descriptors},
-#line 191 "accessor_class_list.gperf"
+#line 193 "accessor_class_list.gperf"
{"to_integer", &grib_accessor_class_to_integer},
{""}, {""}, {""},
-#line 176 "accessor_class_list.gperf"
+#line 178 "accessor_class_list.gperf"
{"simple_packing_error", &grib_accessor_class_simple_packing_error},
-#line 185 "accessor_class_list.gperf"
+#line 187 "accessor_class_list.gperf"
{"step_human_readable", &grib_accessor_class_step_human_readable},
#line 140 "accessor_class_list.gperf"
{"message_copy", &grib_accessor_class_message_copy},
-#line 161 "accessor_class_list.gperf"
+#line 163 "accessor_class_list.gperf"
{"raw", &grib_accessor_class_raw},
{""}, {""},
-#line 200 "accessor_class_list.gperf"
+#line 202 "accessor_class_list.gperf"
{"uint64_little_endian", &grib_accessor_class_uint64_little_endian},
{""},
-#line 198 "accessor_class_list.gperf"
+#line 200 "accessor_class_list.gperf"
{"uint32_little_endian", &grib_accessor_class_uint32_little_endian},
#line 114 "accessor_class_list.gperf"
{"global_gaussian", &grib_accessor_class_global_gaussian},
@@ -311,20 +311,20 @@ static const struct accessor_class_hash classes[] =
#line 76 "accessor_class_list.gperf"
{"divdouble", &grib_accessor_class_divdouble},
{""},
-#line 173 "accessor_class_list.gperf"
+#line 175 "accessor_class_list.gperf"
{"sexagesimal2decimal", &grib_accessor_class_sexagesimal2decimal},
#line 99 "accessor_class_list.gperf"
{"g2_mars_labeling", &grib_accessor_class_g2_mars_labeling},
#line 78 "accessor_class_list.gperf"
{"element", &grib_accessor_class_element},
-#line 158 "accessor_class_list.gperf"
+#line 160 "accessor_class_list.gperf"
{"padtomultiple", &grib_accessor_class_padtomultiple},
#line 127 "accessor_class_list.gperf"
{"latitudes", &grib_accessor_class_latitudes},
-#line 162 "accessor_class_list.gperf"
+#line 164 "accessor_class_list.gperf"
{"rdbtime_guess_date", &grib_accessor_class_rdbtime_guess_date},
{""}, {""}, {""},
-#line 192 "accessor_class_list.gperf"
+#line 194 "accessor_class_list.gperf"
{"to_string", &grib_accessor_class_to_string},
#line 132 "accessor_class_list.gperf"
{"long", &grib_accessor_class_long},
@@ -348,20 +348,20 @@ static const struct accessor_class_hash classes[] =
{""},
#line 28 "accessor_class_list.gperf"
{"bufrdc_expanded_descriptors", &grib_accessor_class_bufrdc_expanded_descriptors},
-#line 159 "accessor_class_list.gperf"
+#line 161 "accessor_class_list.gperf"
{"position", &grib_accessor_class_position},
{""}, {""}, {""},
#line 17 "accessor_class_list.gperf"
{"blob", &grib_accessor_class_blob},
#line 109 "accessor_class_list.gperf"
{"gaussian_grid_name", &grib_accessor_class_gaussian_grid_name},
-#line 195 "accessor_class_list.gperf"
+#line 197 "accessor_class_list.gperf"
{"trim", &grib_accessor_class_trim},
{""}, {""},
#line 119 "accessor_class_list.gperf"
{"ibmfloat", &grib_accessor_class_ibmfloat},
{""}, {""},
-#line 193 "accessor_class_list.gperf"
+#line 195 "accessor_class_list.gperf"
{"transient", &grib_accessor_class_transient},
#line 55 "accessor_class_list.gperf"
{"data_g1shsimple_packing", &grib_accessor_class_data_g1shsimple_packing},
@@ -370,15 +370,15 @@ static const struct accessor_class_hash classes[] =
{"data_g1simple_packing", &grib_accessor_class_data_g1simple_packing},
#line 49 "accessor_class_list.gperf"
{"data_g1complex_packing", &grib_accessor_class_data_g1complex_packing},
-#line 164 "accessor_class_list.gperf"
+#line 166 "accessor_class_list.gperf"
{"round", &grib_accessor_class_round},
-#line 194 "accessor_class_list.gperf"
+#line 196 "accessor_class_list.gperf"
{"transient_darray", &grib_accessor_class_transient_darray},
#line 18 "accessor_class_list.gperf"
{"budgdate", &grib_accessor_class_budgdate},
-#line 208 "accessor_class_list.gperf"
+#line 210 "accessor_class_list.gperf"
{"values", &grib_accessor_class_values},
-#line 143 "accessor_class_list.gperf"
+#line 144 "accessor_class_list.gperf"
{"number_of_coded_values", &grib_accessor_class_number_of_coded_values},
#line 126 "accessor_class_list.gperf"
{"label", &grib_accessor_class_label},
@@ -386,30 +386,30 @@ static const struct accessor_class_hash classes[] =
#line 38 "accessor_class_list.gperf"
{"concept", &grib_accessor_class_concept},
{""},
-#line 181 "accessor_class_list.gperf"
+#line 183 "accessor_class_list.gperf"
{"spectral_truncation", &grib_accessor_class_spectral_truncation},
{""}, {""},
#line 83 "accessor_class_list.gperf"
{"g1_message_length", &grib_accessor_class_g1_message_length},
-#line 182 "accessor_class_list.gperf"
+#line 184 "accessor_class_list.gperf"
{"sprintf", &grib_accessor_class_sprintf},
-#line 188 "accessor_class_list.gperf"
+#line 190 "accessor_class_list.gperf"
{"suppressed", &grib_accessor_class_suppressed},
{""},
-#line 211 "accessor_class_list.gperf"
+#line 213 "accessor_class_list.gperf"
{"when", &grib_accessor_class_when},
{""}, {""},
-#line 178 "accessor_class_list.gperf"
+#line 180 "accessor_class_list.gperf"
{"smart_table", &grib_accessor_class_smart_table},
{""},
#line 39 "accessor_class_list.gperf"
{"constant", &grib_accessor_class_constant},
{""}, {""},
-#line 160 "accessor_class_list.gperf"
+#line 162 "accessor_class_list.gperf"
{"proj_string", &grib_accessor_class_proj_string},
-#line 149 "accessor_class_list.gperf"
+#line 150 "accessor_class_list.gperf"
{"octet_number", &grib_accessor_class_octet_number},
-#line 179 "accessor_class_list.gperf"
+#line 181 "accessor_class_list.gperf"
{"smart_table_column", &grib_accessor_class_smart_table_column},
{""},
#line 135 "accessor_class_list.gperf"
@@ -426,7 +426,7 @@ static const struct accessor_class_hash classes[] =
{"data_sh_unpacked", &grib_accessor_class_data_sh_unpacked},
#line 27 "accessor_class_list.gperf"
{"bufr_string_values", &grib_accessor_class_bufr_string_values},
-#line 196 "accessor_class_list.gperf"
+#line 198 "accessor_class_list.gperf"
{"uint16", &grib_accessor_class_uint16},
{""}, {""},
#line 71 "accessor_class_list.gperf"
@@ -439,26 +439,27 @@ static const struct accessor_class_hash classes[] =
{""},
#line 54 "accessor_class_list.gperf"
{"data_g1secondary_bitmap", &grib_accessor_class_data_g1secondary_bitmap},
-#line 190 "accessor_class_list.gperf"
+#line 192 "accessor_class_list.gperf"
{"to_double", &grib_accessor_class_to_double},
#line 101 "accessor_class_list.gperf"
{"g2bitmap_present", &grib_accessor_class_g2bitmap_present},
#line 120 "accessor_class_list.gperf"
{"ieeefloat", &grib_accessor_class_ieeefloat},
-#line 150 "accessor_class_list.gperf"
+#line 151 "accessor_class_list.gperf"
{"offset_file", &grib_accessor_class_offset_file},
-#line 206 "accessor_class_list.gperf"
+#line 208 "accessor_class_list.gperf"
{"validity_date", &grib_accessor_class_validity_date},
-#line 207 "accessor_class_list.gperf"
+#line 209 "accessor_class_list.gperf"
{"validity_time", &grib_accessor_class_validity_time},
{""},
#line 130 "accessor_class_list.gperf"
{"library_version", &grib_accessor_class_library_version},
-#line 210 "accessor_class_list.gperf"
+#line 212 "accessor_class_list.gperf"
{"vector", &grib_accessor_class_vector},
#line 84 "accessor_class_list.gperf"
{"g1_section4_length", &grib_accessor_class_g1_section4_length},
- {""},
+#line 141 "accessor_class_list.gperf"
+ {"multdouble", &grib_accessor_class_multdouble},
#line 52 "accessor_class_list.gperf"
{"data_g1second_order_general_packing", &grib_accessor_class_data_g1second_order_general_packing},
{""}, {""},
@@ -467,7 +468,7 @@ static const struct accessor_class_hash classes[] =
{""},
#line 24 "accessor_class_list.gperf"
{"bufr_extract_subsets", &grib_accessor_class_bufr_extract_subsets},
-#line 157 "accessor_class_list.gperf"
+#line 159 "accessor_class_list.gperf"
{"padtoeven", &grib_accessor_class_padtoeven},
#line 50 "accessor_class_list.gperf"
{"data_g1second_order_constant_width_packing", &grib_accessor_class_data_g1second_order_constant_width_packing},
@@ -483,7 +484,7 @@ static const struct accessor_class_hash classes[] =
#line 21 "accessor_class_list.gperf"
{"bufr_elements_table", &grib_accessor_class_bufr_elements_table},
{""}, {""}, {""}, {""},
-#line 152 "accessor_class_list.gperf"
+#line 154 "accessor_class_list.gperf"
{"pack_bufr_values", &grib_accessor_class_pack_bufr_values},
#line 35 "accessor_class_list.gperf"
{"codetable", &grib_accessor_class_codetable},
@@ -495,7 +496,7 @@ static const struct accessor_class_hash classes[] =
{""},
#line 88 "accessor_class_list.gperf"
{"g1end_of_interval_monthly", &grib_accessor_class_g1end_of_interval_monthly},
-#line 146 "accessor_class_list.gperf"
+#line 147 "accessor_class_list.gperf"
{"number_of_values", &grib_accessor_class_number_of_values},
{""},
#line 116 "accessor_class_list.gperf"
@@ -503,24 +504,26 @@ static const struct accessor_class_hash classes[] =
{""},
#line 33 "accessor_class_list.gperf"
{"closest_date", &grib_accessor_class_closest_date},
- {""}, {""},
-#line 209 "accessor_class_list.gperf"
+#line 153 "accessor_class_list.gperf"
+ {"optimal_step_units", &grib_accessor_class_optimal_step_units},
+ {""},
+#line 211 "accessor_class_list.gperf"
{"variable", &grib_accessor_class_variable},
#line 133 "accessor_class_list.gperf"
{"long_vector", &grib_accessor_class_long_vector},
-#line 166 "accessor_class_list.gperf"
+#line 168 "accessor_class_list.gperf"
{"scale_values", &grib_accessor_class_scale_values},
{""}, {""}, {""},
#line 128 "accessor_class_list.gperf"
{"latlon_increment", &grib_accessor_class_latlon_increment},
{""}, {""}, {""},
-#line 147 "accessor_class_list.gperf"
+#line 148 "accessor_class_list.gperf"
{"number_of_values_data_raw_packing", &grib_accessor_class_number_of_values_data_raw_packing},
{""},
#line 79 "accessor_class_list.gperf"
{"evaluate", &grib_accessor_class_evaluate},
{""}, {""}, {""}, {""}, {""},
-#line 151 "accessor_class_list.gperf"
+#line 152 "accessor_class_list.gperf"
{"offset_values", &grib_accessor_class_offset_values},
#line 69 "accessor_class_list.gperf"
{"data_sh_packed", &grib_accessor_class_data_sh_packed},
@@ -533,7 +536,7 @@ static const struct accessor_class_hash classes[] =
{""}, {""},
#line 41 "accessor_class_list.gperf"
{"count_missing", &grib_accessor_class_count_missing},
-#line 203 "accessor_class_list.gperf"
+#line 205 "accessor_class_list.gperf"
{"unpack_bufr_values", &grib_accessor_class_unpack_bufr_values},
{""}, {""},
#line 121 "accessor_class_list.gperf"
@@ -567,7 +570,7 @@ static const struct accessor_class_hash classes[] =
#line 31 "accessor_class_list.gperf"
{"change_scanning_direction", &grib_accessor_class_change_scanning_direction},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 148 "accessor_class_list.gperf"
+#line 149 "accessor_class_list.gperf"
{"octahedral_gaussian", &grib_accessor_class_octahedral_gaussian},
#line 10 "accessor_class_list.gperf"
{"abstract_long_vector", &grib_accessor_class_abstract_long_vector},
@@ -598,7 +601,7 @@ static const struct accessor_class_hash classes[] =
#line 87 "accessor_class_list.gperf"
{"g1day_of_the_year_date", &grib_accessor_class_g1day_of_the_year_date},
{""}, {""}, {""}, {""}, {""},
-#line 163 "accessor_class_list.gperf"
+#line 165 "accessor_class_list.gperf"
{"reference_value_error", &grib_accessor_class_reference_value_error},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -619,11 +622,11 @@ static const struct accessor_class_hash classes[] =
};
static const struct accessor_class_hash* grib_accessor_classes_hash(const char *str, size_t len)
-{
- unsigned int key = grib_accessor_classes_get_id (str, len);
+ {
+ unsigned int key = grib_accessor_classes_get_id (str, len);
#ifdef DEBUG
- {
+ {
const char *s;
Assert( len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH );
Assert( key <= MAX_HASH_VALUE );
@@ -632,5 +635,5 @@ static const struct accessor_class_hash* grib_accessor_classes_hash(const char *
}
#endif
- return &classes[key];
+ return &classes[key];
}
diff --git a/src/grib_accessor_factory.h b/src/grib_accessor_factory.h
index 96a9bc024..2f889a0c6 100644
--- a/src/grib_accessor_factory.h
+++ b/src/grib_accessor_factory.h
@@ -130,6 +130,7 @@
{ "md5", &grib_accessor_class_md5, },
{ "message", &grib_accessor_class_message, },
{ "message_copy", &grib_accessor_class_message_copy, },
+{ "multdouble", &grib_accessor_class_multdouble, },
{ "nearest", &grib_accessor_class_nearest, },
{ "non_alpha", &grib_accessor_class_non_alpha, },
{ "number_of_coded_values", &grib_accessor_class_number_of_coded_values, },
@@ -141,6 +142,7 @@
{ "octet_number", &grib_accessor_class_octet_number, },
{ "offset_file", &grib_accessor_class_offset_file, },
{ "offset_values", &grib_accessor_class_offset_values, },
+{ "optimal_step_units", &grib_accessor_class_optimal_step_units, },
{ "pack_bufr_values", &grib_accessor_class_pack_bufr_values, },
{ "packing_type", &grib_accessor_class_packing_type, },
{ "pad", &grib_accessor_class_pad, },
diff --git a/src/grib_accessor_factory_hash_list b/src/grib_accessor_factory_hash_list
index 4c8a05671..1f7687f38 100644
--- a/src/grib_accessor_factory_hash_list
+++ b/src/grib_accessor_factory_hash_list
@@ -131,6 +131,7 @@ mars_step, &grib_accessor_class_mars_step
md5, &grib_accessor_class_md5
message, &grib_accessor_class_message
message_copy, &grib_accessor_class_message_copy
+multdouble, &grib_accessor_class_multdouble
nearest, &grib_accessor_class_nearest
non_alpha, &grib_accessor_class_non_alpha
number_of_coded_values, &grib_accessor_class_number_of_coded_values
@@ -142,6 +143,7 @@ octahedral_gaussian, &grib_accessor_class_octahedral_gaussian
octet_number, &grib_accessor_class_octet_number
offset_file, &grib_accessor_class_offset_file
offset_values, &grib_accessor_class_offset_values
+optimal_step_units, &grib_accessor_class_optimal_step_units
pack_bufr_values, &grib_accessor_class_pack_bufr_values
packing_type, &grib_accessor_class_packing_type
pad, &grib_accessor_class_pad
diff --git a/src/grib_api.h b/src/grib_api.h
index 9a3e46ffc..84566b108 100644
--- a/src/grib_api.h
+++ b/src/grib_api.h
@@ -507,6 +507,7 @@ grib_handle* grib_handle_new_from_samples(grib_context* c, const char* sample_na
* @return the new handle, NULL if the message is invalid or a problem is encountered
*/
grib_handle* grib_handle_clone(const grib_handle* h);
+grib_handle* grib_handle_clone_headers_only(const grib_handle* h);
/**
* Frees a handle, also frees the message if it is not a user message
@@ -732,7 +733,7 @@ int grib_nearest_find_multiple(const grib_handle* h, int is_lsm,
/*! \defgroup get_set Accessing header and data values */
/*! @{ */
/**
- * Get the number offset of a key, in a message if several keys of the same name
+ * Get the byte offset of a key. If several keys of the same name
* are present, the offset of the last one is returned
*
* @param h : the handle to get the offset from
@@ -745,7 +746,7 @@ int grib_get_offset(const grib_handle* h, const char* key, size_t* offset);
/**
* Get the number of coded value from a key, if several keys of the same name are present, the total sum is returned
*
- * @param h : the handle to get the offset from
+ * @param h : the handle to get the data from
* @param key : the key to be searched
* @param size : the address of a size_t where the size will be set
* @return 0 if OK, integer value on error
@@ -755,7 +756,7 @@ int grib_get_size(const grib_handle* h, const char* key, size_t* size);
/**
* Get the length of the string representation of the key, if several keys of the same name are present, the maximum length is returned
*
- * @param h : the handle to get the offset from
+ * @param h : the handle to get the data from
* @param key : the key to be searched
* @param length : the address of a size_t where the length will be set
* @return 0 if OK, integer value on error
@@ -1658,7 +1659,7 @@ Error codes returned by the grib_api functions.
#define GRIB_WRONG_STEP_UNIT -26
/** Invalid file id */
#define GRIB_INVALID_FILE -27
-/** Invalid grib id */
+/** Invalid GRIB id */
#define GRIB_INVALID_GRIB -28
/** Invalid index id */
#define GRIB_INVALID_INDEX -29
diff --git a/src/grib_api_internal.h b/src/grib_api_internal.h
index bf6b3694d..d13edbc46 100644
--- a/src/grib_api_internal.h
+++ b/src/grib_api_internal.h
@@ -171,20 +171,6 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t* attr, int type);
if (!(a)) codes_assertion_failed(#a, __FILE__, __LINE__); \
} while (0)
-#ifdef __gnu_hurd__
-#define COMPILE_TIME_ASSERT(condition) \
- extern int compile_time_assert[!!(condition)-1]
-#else
-/* Compile time assertion - Thanks to Ralf Holly */
-#define COMPILE_TIME_ASSERT(condition) \
- do { \
- enum \
- { \
- assert_static__ = 1 / (condition) \
- }; \
- } while (0)
-#endif
-
#ifdef DEBUG
#define DEBUG_ASSERT(a) Assert(a)
#define DEBUG_ASSERT_ACCESS(array, index, size) \
@@ -201,6 +187,8 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t* attr, int type);
/* Return true if two strings are equal */
#define STR_EQUAL(a, b) (strcmp((a), (b)) == 0)
+/* Return true if two strings are equal, ignoring case */
+#define STR_EQUAL_NOCASE(a, b) (strcmp_nocase((a), (b)) == 0)
#include "grib_api.h"
@@ -256,7 +244,6 @@ typedef struct grib_accessor_class grib_accessor_class;
typedef struct grib_action grib_action;
typedef struct grib_action_class grib_action_class;
typedef struct grib_section grib_section;
-typedef struct grib_packer grib_packer;
typedef struct grib_codetable grib_codetable;
typedef struct grib_smart_table grib_smart_table;
@@ -266,12 +253,10 @@ typedef struct grib_nearest_class grib_nearest_class;
typedef struct grib_dumper grib_dumper;
typedef struct grib_dumper_class grib_dumper_class;
typedef struct grib_dependency grib_dependency;
-typedef struct string_feed string_feed;
typedef struct codes_condition codes_condition;
-/* typedef void (*dynamic_key_proc) (const char*, void*)
-*/
+/* typedef void (*dynamic_key_proc) (const char*, void*) */
typedef void (*nearest_init_class_proc)(grib_nearest_class*);
typedef int (*nearest_init_proc)(grib_nearest* i, grib_handle*, grib_arguments*);
@@ -350,9 +335,6 @@ typedef double (*grib_unop_double_proc)(double);
typedef int (*grib_binop_string_proc)(char*, char*);
-typedef struct second_order_packed second_order_packed;
-typedef void grib_expression_visit_proc(void* udata, grib_expression* e);
-
struct grib_key_value_list
{
const char* name;
@@ -367,7 +349,7 @@ struct grib_key_value_list
grib_key_value_list* next;
};
-struct second_order_packed
+/* struct second_order_packed
{
unsigned long nbits_per_widths;
unsigned long nbits_per_group_size;
@@ -376,20 +358,7 @@ struct second_order_packed
unsigned long* array_of_group_size;
unsigned long* array_of_group_width;
long* array_of_group_refs;
-};
-
-/**
-* an grib_compression
-* Structure supporting the packing and unpacking procedures
-*
-* @see grib_action_create_data
-*/
-struct grib_packer
-{
- const char* name;
- grib_pack_proc pack; /** < packing procedure */
- grib_unpack_proc unpack; /** < unpacking procedure */
-};
+}; */
/* --------------- */
typedef struct grib_loader grib_loader;
@@ -406,7 +375,7 @@ struct grib_loader
};
/**
-* an action
+* An action
* Structure supporting the creation of accessor, resulting of a statement during a definition file parsing
*
* @see grib_action_class
@@ -449,7 +418,7 @@ typedef grib_action* (*action_reparse_proc)(grib_action* a, grib_accessor*, int*
typedef int (*action_execute_proc)(grib_action* a, grib_handle*);
/**
-* an action_class
+* An action_class
* Structure supporting the specific behaviour of an action
*
* @see grib_action
@@ -476,22 +445,22 @@ struct grib_action_class
};
/**
-* a buffer
+* A buffer
* Structure containing the data of a message
*/
struct grib_buffer
{
- int property; /** < property parameter of buffer */
- int validity; /** < validity parameter of buffer */
- int growable; /** < buffer can be grown */
- size_t length; /** < Buffer length */
- size_t ulength; /** < length used of the buffer */
- size_t ulength_bits; /** < length used of the buffer in bits */
- unsigned char* data; /** < the data byte array */
+ int property; /** < property parameter of buffer */
+ int validity; /** < validity parameter of buffer */
+ int growable; /** < buffer can be grown */
+ size_t length; /** < Buffer length */
+ size_t ulength; /** < length used of the buffer */
+ size_t ulength_bits; /** < length used of the buffer in bits */
+ unsigned char* data; /** < the data byte array */
};
/**
-* an Accessor
+* An accessor
* Structure supporting each single data unit and allowing its access
* @see grib_accessor_class
*/
@@ -512,18 +481,18 @@ struct grib_virtual_value
struct grib_accessor
{
- const char* name; /** < name of the accessor */
- const char* name_space; /** < namespace to which the accessor belongs */
+ const char* name; /** < name of the accessor */
+ const char* name_space; /** < namespace to which the accessor belongs */
grib_context* context;
grib_handle* h;
- grib_action* creator; /** < action that created the accessor */
- long length; /** < byte length of the accessor */
- long offset; /** < offset of the data in the buffer */
- grib_section* parent; /** < section to which the accessor is attached */
- grib_accessor* next; /** < next accessor in list */
- grib_accessor* previous; /** < next accessor in list */
- grib_accessor_class* cclass; /** < behaviour of the accessor */
- unsigned long flags; /** < Various flags */
+ grib_action* creator; /** < action that created the accessor */
+ long length; /** < byte length of the accessor */
+ long offset; /** < offset of the data in the buffer */
+ grib_section* parent; /** < section to which the accessor is attached */
+ grib_accessor* next; /** < next accessor in list */
+ grib_accessor* previous; /** < next accessor in list */
+ grib_accessor_class* cclass; /** < behaviour of the accessor */
+ unsigned long flags; /** < Various flags */
grib_section* sub_section;
const char* all_names[MAX_ACCESSOR_NAMES]; /** < name of the accessor */
@@ -559,7 +528,7 @@ struct grib_accessor
#define GRIB_ACCESSOR_FLAG_COPY_IF_CHANGING_EDITION (1 << 19)
/**
-* a section accessor
+* A section accessor
* Structure supporting hierarchical naming of the accessors
* @see grib_accessor
*/
@@ -567,9 +536,9 @@ struct grib_section
{
grib_accessor* owner;
grib_handle* h; /** < Handles of all accessors and buffer */
- grib_accessor* aclength; /** < block of the length of the block */
- grib_block_of_accessors* block; /** < block */
- grib_action* branch; /** < branch that created the block */
+ grib_accessor* aclength; /** < block of the length of the block */
+ grib_block_of_accessors* block; /** < block */
+ grib_action* branch; /** < branch that created the block */
size_t length;
size_t padding;
};
@@ -579,17 +548,14 @@ struct grib_iterator_class
grib_iterator_class** super;
const char* name;
size_t size;
-
int inited;
iterator_init_class_proc init_class;
-
- iterator_init_proc init;
- iterator_destroy_proc destroy;
-
- iterator_next_proc next;
- iterator_previous_proc previous;
- iterator_reset_proc reset;
- iterator_has_next_proc has_next;
+ iterator_init_proc init;
+ iterator_destroy_proc destroy;
+ iterator_next_proc next;
+ iterator_previous_proc previous;
+ iterator_reset_proc reset;
+ iterator_has_next_proc has_next;
};
struct grib_nearest_class
@@ -597,14 +563,11 @@ struct grib_nearest_class
grib_nearest_class** super;
const char* name;
size_t size;
-
int inited;
nearest_init_class_proc init_class;
-
- nearest_init_proc init;
- nearest_destroy_proc destroy;
-
- nearest_find_proc find;
+ nearest_init_proc init;
+ nearest_destroy_proc destroy;
+ nearest_find_proc find;
};
/* --------------- */
@@ -652,18 +615,18 @@ struct grib_dumper_class
struct grib_iterator
{
- grib_arguments* args; /** args of iterator */
+ grib_arguments* args; /** args of iterator */
grib_handle* h;
- long e; /** current element */
- size_t nv; /** number of values */
- double* data; /** data values */
+ long e; /** current element */
+ size_t nv; /** number of values */
+ double* data; /** data values */
grib_iterator_class* cclass;
unsigned long flags;
};
struct grib_nearest
{
- grib_arguments* args; /** args of iterator */
+ grib_arguments* args; /** args of iterator */
grib_handle* h;
grib_context* context;
double* values;
@@ -835,10 +798,9 @@ void codes_assertion_failed(const char* message, const char* file, int line);
struct grib_handle
{
- grib_context* context; /** < context attached to this handle */
- grib_buffer* buffer; /** < buffer attached to the handle */
+ grib_context* context; /** < context attached to this handle */
+ grib_buffer* buffer; /** < buffer attached to the handle */
grib_section* root; /** the root section*/
- grib_section* rules; /** the rules section*/
grib_dependency* dependencies; /** List of dependencies */
grib_handle* main; /** Used during reparsing */
grib_handle* kid; /** Used during reparsing */
@@ -862,15 +824,15 @@ struct grib_handle
/* grib_trie* bufr_elements_table; */
};
+/* For GRIB2 multi-field messages */
struct grib_multi_handle
{
- grib_context* context; /** < context attached to this handle */
- grib_buffer* buffer; /** < buffer attached to the handle */
+ grib_context* context; /** < context attached to this handle */
+ grib_buffer* buffer; /** < buffer attached to the handle */
size_t offset;
size_t length;
};
-
struct grib_accessor_class
{
grib_accessor_class** super;
@@ -938,7 +900,6 @@ struct grib_accessor_class
};
typedef struct grib_multi_support grib_multi_support;
-
struct grib_multi_support
{
FILE* file;
@@ -948,14 +909,13 @@ struct grib_multi_support
unsigned char* sections[8];
unsigned char* bitmap_section;
size_t bitmap_section_length;
- size_t sections_length[9];
+ size_t sections_length[9]; /* GRIB2 has 9 sections */
int section_number;
grib_multi_support* next;
};
/* Hash_array */
typedef struct grib_hash_array_value grib_hash_array_value;
-
struct grib_hash_array_value
{
grib_hash_array_value* next;
@@ -968,7 +928,6 @@ struct grib_hash_array_value
/* Concepts */
typedef struct grib_concept_condition grib_concept_condition;
-
struct grib_concept_condition
{
grib_concept_condition* next;
@@ -985,7 +944,6 @@ struct grib_concept_value_name
};
typedef struct grib_concept_value grib_concept_value;
-
struct grib_concept_value
{
grib_concept_value* next;
@@ -1005,6 +963,7 @@ struct grib_context
int no_big_group_split;
int no_spd;
int keep_matrix;
+ int grib_hourly_steps_with_units;
char* grib_definition_files_path;
char* grib_samples_path;
char* grib_concept_path;
@@ -1103,24 +1062,17 @@ struct grib_expression_class
const char* name;
size_t size;
int inited;
-
- expression_class_init_proc init_class;
- expression_init_proc init;
- expression_destroy_proc destroy;
-
-
- expression_print_proc print;
- expression_add_dependency_proc add_dependency;
-
- expression_native_type_proc native_type;
- expression_get_name_proc get_name;
-
- expression_evaluate_long_proc evaluate_long;
+ expression_init_proc init;
+ expression_destroy_proc destroy;
+ expression_print_proc print;
+ expression_add_dependency_proc add_dependency;
+ expression_native_type_proc native_type;
+ expression_get_name_proc get_name;
+ expression_evaluate_long_proc evaluate_long;
expression_evaluate_double_proc evaluate_double;
expression_evaluate_string_proc evaluate_string;
};
-
struct grib_arguments
{
struct grib_arguments* next;
@@ -1237,44 +1189,6 @@ struct grib_fieldset
grib_field** fields;
};
-/* concept index structures */
-
-typedef struct grib_concept_index_key grib_concept_index_key;
-typedef struct grib_concept_index grib_concept_index;
-typedef struct grib_conditions_tree grib_conditions_tree;
-typedef struct grib_concept_entry grib_concept_entry;
-typedef struct grib_concept_key grib_concept_key;
-
-struct grib_concept_index_entry
-{
- char* name;
- char* value;
- int type;
- grib_concept_entry* next;
-};
-
-struct grib_concept_index_key
-{
- char* name;
- int type;
- grib_concept_key* next;
-};
-
-struct grib_concept_index
-{
- grib_context* context;
- grib_concept_key* keys;
- grib_conditions_tree* conditions;
-};
-
-struct grib_conditions_tree
-{
- char* value;
- void* object;
- grib_conditions_tree* next;
- grib_conditions_tree* next_key;
-};
-
/* support for in-memory definition and tables */
extern int codes_memfs_exists(const char* path);
@@ -1315,7 +1229,6 @@ struct grib_field_list
grib_field_list* next;
};
-
struct grib_index
{
grib_context* context;
@@ -1402,10 +1315,8 @@ struct bufr_keys_iterator
grib_trie* seen;
};
-/* ----------*/
-/* md5 */
+/* --------- md5 --------*/
typedef unsigned long cvs_uint32;
-
struct cvs_MD5Context
{
cvs_uint32 buf[4];
@@ -1415,7 +1326,6 @@ struct cvs_MD5Context
/* --- */
typedef struct grib_rule_entry grib_rule_entry;
-
struct grib_rule_entry
{
grib_rule_entry* next;
@@ -1424,7 +1334,6 @@ struct grib_rule_entry
};
typedef struct grib_rule grib_rule;
-
struct grib_rule
{
grib_rule* next;
@@ -1433,7 +1342,6 @@ struct grib_rule
};
typedef struct grib_case grib_case;
-
struct grib_case
{
grib_arguments* values;
@@ -1442,7 +1350,6 @@ struct grib_case
};
/* ----------*/
-
typedef struct code_table_entry
{
char* abbreviation;
@@ -1461,7 +1368,7 @@ struct grib_codetable
typedef struct grib_smart_table_entry
{
- /*int code;*/
+ /*int code;*/
char* abbreviation;
char* column[MAX_SMART_TABLE_COLUMNS];
} grib_smart_table_entry;
@@ -1530,4 +1437,3 @@ typedef struct j2k_encode_helper
#endif
#endif
-
diff --git a/src/grib_buffer.cc b/src/grib_buffer.cc
index 370cafc13..525e59f31 100644
--- a/src/grib_buffer.cc
+++ b/src/grib_buffer.cc
@@ -13,9 +13,9 @@
***************************************************************************/
#include "grib_api_internal.h"
-void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b)
+static void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b)
{
- unsigned char* newdata;
+ unsigned char* newdata = NULL;
if (b->property == CODES_MY_BUFFER)
return;
@@ -78,11 +78,9 @@ void grib_buffer_delete(const grib_context* c, grib_buffer* b)
static void grib_grow_buffer_to(const grib_context* c, grib_buffer* b, size_t ns)
{
- unsigned char* newdata;
-
if (ns > b->length) {
grib_get_buffer_ownership(c, b);
- newdata = (unsigned char*)grib_context_malloc_clear(c, ns);
+ unsigned char* newdata = (unsigned char*)grib_context_malloc_clear(c, ns);
memcpy(newdata, b->data, b->length);
grib_context_free(c, b->data);
b->data = newdata;
@@ -137,23 +135,19 @@ static void update_offsets_after(grib_accessor* a, long len)
}
}
-// /* new GCC compiler v4.5.0 complains function is defined but not used*/
// void grib_recompute_sections_lengths(grib_section* s)
// {
// if(s)
// {
// long plen = 0;
// size_t len = 1;
-
// grib_accessor* a = s->block->first;
-
// while(a)
// {
// /* grib_recompute_sections_lengths(grib_get_sub_section(a)); */
// grib_recompute_sections_lengths(a->sub_section);
// a = a->next;
// }
-
// if(s->aclength)
// {
// int ret;
@@ -161,11 +155,9 @@ static void update_offsets_after(grib_accessor* a, long len)
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
// else
// plen = grib_get_next_position_offset(s->block->last);
-
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
// ;
-
-//
+//
// if(s->h->context->debug)
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
// }
@@ -177,7 +169,6 @@ static void update_offsets_after(grib_accessor* a, long len)
// {
// long plen = 0;
// size_t len = 1;
-
// if(!s) return;
// if(s->aclength)
// {
@@ -186,14 +177,11 @@ static void update_offsets_after(grib_accessor* a, long len)
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
// else
// plen = grib_get_next_position_offset(s->block->last);
-
// /* if(s->owner) */
// /* s->owner->length = plen; */
-
// /* if(s->aclength) */
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
// ;
-
// if(s->h->context->debug)
// {
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
@@ -207,8 +195,8 @@ static void update_offsets_after(grib_accessor* a, long len)
// update_sections_lengths(s->owner->parent);
// }
-void grib_buffer_replace(grib_accessor* a, const unsigned char* data,
- size_t newsize, int update_lengths, int update_paddings)
+int grib_buffer_replace(grib_accessor* a, const unsigned char* data,
+ size_t newsize, int update_lengths, int update_paddings)
{
size_t offset = a->offset;
long oldsize = grib_get_next_position_offset(a) - offset;
@@ -244,11 +232,13 @@ void grib_buffer_replace(grib_accessor* a, const unsigned char* data,
update_offsets_after(a, increase);
if (update_lengths) {
grib_update_size(a, newsize);
- grib_section_adjust_sizes(grib_handle_of_accessor(a)->root, 1, 0);
+ int err = grib_section_adjust_sizes(grib_handle_of_accessor(a)->root, 1, 0);
+ if (err) return err;
if (update_paddings)
grib_update_paddings(grib_handle_of_accessor(a)->root);
}
}
+ return GRIB_SUCCESS;
}
void grib_update_sections_lengths(grib_handle* h)
diff --git a/src/grib_bufr_descriptor.cc b/src/grib_bufr_descriptor.cc
index fa653bc29..fcaeeac46 100644
--- a/src/grib_bufr_descriptor.cc
+++ b/src/grib_bufr_descriptor.cc
@@ -48,45 +48,40 @@ bufr_descriptor* grib_bufr_descriptor_clone(bufr_descriptor* d)
return cd;
}
-int grib_bufr_descriptor_set_code(grib_accessor* tables_accessor, int code, bufr_descriptor* v)
+int grib_bufr_descriptor_set_code(bufr_descriptor* v, int code)
{
- int err = 0;
- bufr_descriptor* d;
+ if (!v) return GRIB_NULL_POINTER;
+ Assert(v->type == BUFR_DESCRIPTOR_TYPE_REPLICATION || v->type == BUFR_DESCRIPTOR_TYPE_OPERATOR);
- if (!v)
- return GRIB_NULL_POINTER;
+ v->code = code;
+ v->F = code / 100000;
+ if (v->type == BUFR_DESCRIPTOR_TYPE_REPLICATION) Assert(v->F == 1);
+ if (v->type == BUFR_DESCRIPTOR_TYPE_OPERATOR) Assert(v->F == 2);
+ v->X = (code - v->F * 100000) / 1000;
+ v->Y = (code - v->F * 100000) % 1000;
- if (v->type == BUFR_DESCRIPTOR_TYPE_REPLICATION || v->type == BUFR_DESCRIPTOR_TYPE_OPERATOR) {
- v->code = code;
- v->F = code / 100000;
- if (v->type == BUFR_DESCRIPTOR_TYPE_REPLICATION) Assert(v->F == 1);
- if (v->type == BUFR_DESCRIPTOR_TYPE_OPERATOR) Assert(v->F == 2);
- v->X = (code - v->F * 100000) / 1000;
- v->Y = (code - v->F * 100000) % 1000;
- }
- else {
- if (tables_accessor == NULL)
- return GRIB_NULL_POINTER;
- d = accessor_bufr_elements_table_get_descriptor(tables_accessor, code, &err);
- v->code = d->code;
- v->F = d->F;
- v->X = d->X;
- v->Y = d->Y;
- /* grib_context_free(c,v->name); See ECC-489 */
- /* v->name=grib_context_strdup(c,d->name); See ECC-489 */
+ return GRIB_SUCCESS;
- strcpy(v->shortName,d->shortName);
- strcpy(v->units,d->units);
-
- v->scale = d->scale;
- v->factor = d->factor;
- v->width = d->width;
- v->reference = d->reference;
- v->type = d->type;
- v->nokey = d->nokey;
- grib_bufr_descriptor_delete(d);
- }
- return err;
+ // Old implementation also had a "grib_accessor* tables_accessor" argument:
+ // if (tables_accessor == NULL)
+ // return GRIB_NULL_POINTER;
+ // bufr_descriptor* d = accessor_bufr_elements_table_get_descriptor(tables_accessor, code, &err);
+ // v->code = d->code;
+ // v->F = d->F;
+ // v->X = d->X;
+ // v->Y = d->Y;
+ // /* grib_context_free(c,v->name); See ECC-489 */
+ // /* v->name=grib_context_strdup(c,d->name); See ECC-489 */
+ // strcpy(v->shortName,d->shortName);
+ // strcpy(v->units,d->units);
+ // v->scale = d->scale;
+ // v->factor = d->factor;
+ // v->width = d->width;
+ // v->reference = d->reference;
+ // v->type = d->type;
+ // v->nokey = d->nokey;
+ // grib_bufr_descriptor_delete(d);
+ // return err;
}
void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale)
@@ -99,7 +94,7 @@ void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale)
v->factor = codes_power(-scale, 10);
}
-int grib_bufr_descriptor_can_be_missing(bufr_descriptor* v)
+int grib_bufr_descriptor_can_be_missing(const bufr_descriptor* v)
{
if (v->code == 31031 || v->code == 999999)
return 0;
diff --git a/src/grib_bufr_descriptors_array.cc b/src/grib_bufr_descriptors_array.cc
index 0134048a2..637cf14eb 100644
--- a/src/grib_bufr_descriptors_array.cc
+++ b/src/grib_bufr_descriptors_array.cc
@@ -22,8 +22,7 @@ bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t
v = (bufr_descriptors_array*)grib_context_malloc(c, sizeof(bufr_descriptors_array));
if (!v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "bufr_descriptors_array_new unable to allocate %ld bytes\n", sizeof(bufr_descriptors_array));
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(bufr_descriptors_array));
return NULL;
}
v->context = c;
@@ -34,7 +33,7 @@ bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t
v->number_of_pop_front = 0;
if (!v->v) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_bufr_descriptors_array_new unable to allocate %ld bytes\n", sizeof(bufr_descriptor) * size);
+ "%s: Unable to allocate %zu bytes", __func__, sizeof(bufr_descriptor) * size);
return NULL;
}
return v;
@@ -73,8 +72,7 @@ static bufr_descriptors_array* grib_bufr_descriptors_array_resize_to(bufr_descri
newv = (bufr_descriptor**)grib_context_malloc_clear(c, newsize * sizeof(bufr_descriptor*));
if (!newv) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_bufr_descriptors_array_resize unable to allocate %ld bytes\n", sizeof(bufr_descriptor*) * newsize);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(bufr_descriptor*) * newsize);
return NULL;
}
diff --git a/src/grib_concept_index.cc b/src/grib_concept_index.cc
deleted file mode 100644
index 9cb8f0d1d..000000000
--- a/src/grib_concept_index.cc
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * (C) Copyright 2005- 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.
- */
-
-/*
- * Description: concept index
- *
- */
-
-#include "grib_api_internal.h"
-
-static grib_concept_index_entry* index_entry_new(grib_context* c, grib_concept_index_keys* keys)
-{
- grib_concept_index_entry* entry = NULL;
-
- Assert(keys);
-
- if (!c)
- c = grib_context_get_default();
-
- entry = grib_context_malloc_clear(c, sizeof(grib_concept_index_entry));
- if (!entry)
- grib_context_log(c, GRIB_LOG_FATAL, "grib_concept_index_entry unable to allocate");
- e = entry;
-
- while (keys && keys->name) {
- e->name = grib_context_strdup(c, keys->name);
- e->type = keys->type;
- e->next = grib_context_malloc_clear(c, sizeof(grib_concept_index_entry));
- if (!e->next)
- grib_context_log(c, GRIB_LOG_FATAL, "grib_concept_index_entry unable to allocate");
-
- e = e->next;
- keys = keys->next;
- }
-
- return entry;
-}
-
-static void index_entry_delete(grib_context* c, grib_concept_index_entry* entry)
-{
- grib_concept_index_entry* e;
- while (entry) {
- e = entry;
- entry = entry->next;
- grib_context_free(c, e->name);
- grib_context_free(c, e->value);
- grib_context_free(c, e);
- }
-}
-
-static int index_insert_entry(grib_concept_index* index, grib_concept_index_entry* entry, void* object)
-{
- int err = 0;
- int found;
- grib_conditions_tree* cur = index->conditions;
- grib_conditions_tree* prev = index->conditions;
- grib_concept_index_keys* keys = index->keys;
-
- while (keys->name) {
- if (!cur) {
- cur = grib_context_malloc_clear_persistent(index->context, sizeof(grib_conditions_tree));
- if (!cur)
- grib_context_log(index->context, GRIB_LOG_FATAL, "index_insert_entry unable to allocate");
- prev->next = cur;
- }
- value = entry->value ? entry->value : "*";
- while (cur && (!cur->value || (found = !strcmp(cur->value, value)) == 0))
- cur = cur->next;
-
- if (!found) {
- cur->next = grib_context_malloc_clear_persistent(index->context, sizeof(grib_conditions_tree));
- Assert(cur->next);
- cur = cur->next;
- }
-
- cur->value = grib_context_strdup(index->context, value);
- entry = entry->next;
- keys = keys->next;
- prev = cur;
- cur = cur->next_key;
- }
-
- while (cur) {
- prev = cur;
- cur = cur->next_key;
- }
-
- prev->object = object;
-
- return err;
-}
-
-static void index_add_conditions(grib_concept_index* index, grib_concept_condition* condition)
-{
- grib_concept_condition* c = condition;
- char s[512] = {0,};
- grib_concept_index_entry* e;
- grib_concept_index_entry* entry = index_entry_new(index->context, index->keys);
-
- while (c) {
- size_t size = 512;
- int type;
- e = entry;
- type = grib_expression_native_type(0, c->expression);
- switch (type) {
- case GRIB_TYPE_LONG:
- grib_expression_evaluate_long(0, c->expression, &lres);
- snprintf(s, sizeof(s), "%ld", lres);
- break;
-
- case GRIB_TYPE_DOUBLE:
- grib_expression_evaluate_double(0, c->expression, &dres);
- snprintf(s, sizeof(s), "%g", dres);
- break;
-
- case GRIB_TYPE_STRING:
- grib_expression_evaluate_string(0, c->expression, s, &size, &err);
- break;
-
- default:
- Assert(0);
- break;
- }
-
- while (e->name && strcmp(e->name, c->name))
- e = e->next;
-
- e->type = type;
- e->value = grib_context_strdup(index->context, s);
- if (!e->name) {
- e->name = grib_context_strdup(index->context, c->name);
- e->next = grib_context_malloc_clear_persistent(index->context, sizeof(grib_concept_index_entry));
- if (!e->next)
- grib_context_log(index->context, GRIB_LOG_FATAL, "index_add_conditions unable to allocate");
- }
-
- c = c->next;
- }
-
- index_insert_entry(index, entry, condition->name);
-
- index_entry_delete(index->context, entry);
-}
-
-grib_concept_index* grib_concept_index_new_from_concept(grib_context* c, grib_concept_value* concept, int* err)
-{
- grib_concept_index* index;
-
- if (!c)
- c = grib_context_get_default();
-
- index = grib_context_malloc_clear_persistent(c, sizeof(grib_concept_index));
- index->keys = grib_context_malloc_clear_persistent(c, sizeof(grib_concept_index_key));
- index->conditions = grib_context_malloc_clear_persistent(c, sizeof(grib_conditions_tree));
- index->conditions = grib_context_malloc_clear_persistent(c, sizeof(grib_conditions_tree));
- index->context = c;
-
- while (concept) {
- index_add_conditions(index, concept->conditions, err);
- concept = concept->next;
- }
-
- return index;
-}
diff --git a/src/grib_context.cc b/src/grib_context.cc
index 8f52633eb..a22fcc654 100644
--- a/src/grib_context.cc
+++ b/src/grib_context.cc
@@ -287,6 +287,7 @@ static grib_context default_grib_context = {
0, /* no_big_group_split */
0, /* no_spd */
0, /* keep_matrix */
+ 0, /* show_hour_stepunit */
0, /* grib_definition_files_path */
0, /* grib_samples_path */
0, /* grib_concept_path */
@@ -388,6 +389,7 @@ grib_context* grib_context_get_default()
const char* no_big_group_split = NULL;
const char* no_spd = NULL;
const char* keep_matrix = NULL;
+ const char* show_hour_stepunit = NULL;
const char* bufrdc_mode = NULL;
const char* bufr_set_to_missing_if_out_of_range = NULL;
const char* bufr_multi_element_constant_arrays = NULL;
@@ -415,6 +417,7 @@ grib_context* grib_context_get_default()
no_big_group_split = codes_getenv("ECCODES_GRIB_NO_BIG_GROUP_SPLIT");
no_spd = codes_getenv("ECCODES_GRIB_NO_SPD");
keep_matrix = codes_getenv("ECCODES_GRIB_KEEP_MATRIX");
+ show_hour_stepunit = codes_getenv("ECCODES_GRIB_HOURLY_STEPS_WITH_UNITS");
file_pool_max_opened_files = getenv("ECCODES_FILE_POOL_MAX_OPENED_FILES");
/* On UNIX, when we read from a file we get exactly what is in the file on disk.
@@ -429,6 +432,7 @@ grib_context* grib_context_get_default()
default_grib_context.no_big_group_split = no_big_group_split ? atoi(no_big_group_split) : 0;
default_grib_context.no_spd = no_spd ? atoi(no_spd) : 0;
default_grib_context.keep_matrix = keep_matrix ? atoi(keep_matrix) : 1;
+ default_grib_context.grib_hourly_steps_with_units = show_hour_stepunit ? atoi(show_hour_stepunit) : 0;
default_grib_context.write_on_fail = write_on_fail ? atoi(write_on_fail) : 0;
default_grib_context.no_abort = no_abort ? atoi(no_abort) : 0;
default_grib_context.debug = debug ? atoi(debug) : 0;
@@ -449,7 +453,7 @@ grib_context* grib_context_get_default()
#ifdef ECCODES_SAMPLES_PATH
if (!default_grib_context.grib_samples_path)
- default_grib_context.grib_samples_path = ECCODES_SAMPLES_PATH;
+ default_grib_context.grib_samples_path = (char*)ECCODES_SAMPLES_PATH;
#endif
default_grib_context.grib_definition_files_path = codes_getenv("ECCODES_DEFINITION_PATH");
@@ -531,11 +535,10 @@ grib_context* grib_context_get_default()
}
#endif
- grib_context_log(&default_grib_context, GRIB_LOG_DEBUG, "Definitions path: %s",
- default_grib_context.grib_definition_files_path);
- grib_context_log(&default_grib_context, GRIB_LOG_DEBUG, "Samples path: %s",
- default_grib_context.grib_samples_path);
-
+ if (default_grib_context.debug) {
+ fprintf(stderr, "ECCODES DEBUG Definitions path: %s\n", default_grib_context.grib_definition_files_path);
+ fprintf(stderr, "ECCODES DEBUG Samples path: %s\n", default_grib_context.grib_samples_path);
+ }
default_grib_context.keys_count = 0;
default_grib_context.keys = grib_hash_keys_new(&(default_grib_context), &(default_grib_context.keys_count));
@@ -836,7 +839,6 @@ void grib_context_reset(grib_context* c)
void grib_context_delete(grib_context* c)
{
- size_t i = 0;
if (!c)
c = grib_context_get_default();
@@ -848,7 +850,7 @@ void grib_context_delete(grib_context* c)
if (c != &default_grib_context)
grib_context_free_persistent(&default_grib_context, c);
- for(i=0; ihash_array[i] = NULL;
c->hash_array_count = 0;
grib_itrie_delete(c->hash_array_index);
diff --git a/src/grib_darray.cc b/src/grib_darray.cc
index f2250862d..5aac8265a 100644
--- a/src/grib_darray.cc
+++ b/src/grib_darray.cc
@@ -45,8 +45,7 @@ grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize)
c = grib_context_get_default();
v = (grib_darray*)grib_context_malloc_clear(c, sizeof(grib_darray));
if (!v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_darray_new unable to allocate %zu bytes", sizeof(grib_darray));
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_darray));
return NULL;
}
v->size = size;
@@ -55,8 +54,7 @@ grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize)
v->context = c;
v->v = (double*)grib_context_malloc_clear(c, sizeof(double) * size);
if (!v->v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_darray_new unable to allocate %zu bytes", sizeof(double) * size);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(double) * size);
return NULL;
}
return v;
@@ -73,7 +71,7 @@ static grib_darray* grib_darray_resize(grib_darray* v)
v->size = newsize;
if (!v->v) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_darray_resize unable to allocate %zu bytes", sizeof(double) * newsize);
+ "%s: Unable to allocate %zu bytes", __func__, sizeof(double) * newsize);
return NULL;
}
return v;
diff --git a/src/grib_dependency.cc b/src/grib_dependency.cc
index 769ec49ce..4c417173e 100644
--- a/src/grib_dependency.cc
+++ b/src/grib_dependency.cc
@@ -134,7 +134,7 @@ int grib_dependency_notify_change(grib_accessor* observed)
/* This version takes in the handle so does not need to work it out from the 'observed' */
/* See ECC-778 */
-int ecc__grib_dependency_notify_change(grib_handle* h, grib_accessor* observed)
+int grib_dependency_notify_change_h(grib_handle* h, grib_accessor* observed)
{
grib_dependency* d = h->dependencies;
int ret = GRIB_SUCCESS;
diff --git a/src/grib_dumper_class.cc b/src/grib_dumper_class.cc
index 3f204957c..abd1cbf02 100644
--- a/src/grib_dumper_class.cc
+++ b/src/grib_dumper_class.cc
@@ -26,12 +26,11 @@ static struct table_entry table[] = {
#include "grib_dumper_factory.h"
};
-#define NUMBER(x) (sizeof(x) / sizeof(x[0]))
-
grib_dumper* grib_dumper_factory(const char* op, const grib_handle* h, FILE* out, unsigned long option_flags, void* arg)
{
- int i;
- for (i = 0; i < NUMBER(table); i++)
+ size_t i = 0;
+ const size_t num_table_entries = sizeof(table) / sizeof(table[0]);
+ for (i = 0; i < num_table_entries; i++)
if (strcmp(op, table[i].type) == 0) {
grib_dumper_class* c = *(table[i].cclass);
grib_dumper* d = (grib_dumper*)grib_context_malloc_clear(h->context, c->size);
@@ -83,7 +82,8 @@ void grib_dump_content(const grib_handle* h, FILE* f, const char* mode, unsigned
dumper = grib_dumper_factory(mode ? mode : "serialize", h, f, flags, data);
if (!dumper) {
fprintf(stderr, "Here are some possible values for the dumper mode:\n");
- for (size_t i = 0; i < NUMBER(table); i++) {
+ const size_t num_table_entries = sizeof(table) / sizeof(table[0]);
+ for (size_t i = 0; i < num_table_entries; i++) {
const char* t = table[i].type;
if (strstr(t, "bufr") == NULL && strstr(t, "grib") == NULL) {
fprintf(stderr, "\t%s\n", t);
diff --git a/src/grib_dumper_class_bufr_decode_C.cc b/src/grib_dumper_class_bufr_decode_C.cc
index 294f7931e..49805279b 100644
--- a/src/grib_dumper_class_bufr_decode_C.cc
+++ b/src/grib_dumper_class_bufr_decode_C.cc
@@ -326,11 +326,13 @@ static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
}
else {
r = compute_bufr_key_rank(h, self->keys, a->name);
- if (!grib_is_missing_long(a, value)) {
- if (r != 0)
- fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"#%d#%s\", &iVal), 0);\n", r, a->name);
- else
- fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"%s\", &iVal), 0);\n", a->name);
+ if (!codes_bufr_key_exclude_from_dump(a->name)) {
+ if (!grib_is_missing_long(a, value)) {
+ if (r != 0)
+ fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"#%d#%s\", &iVal), 0);\n", r, a->name);
+ else
+ fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"%s\", &iVal), 0);\n", a->name);
+ }
}
}
@@ -388,8 +390,10 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
}
else {
/* int r=compute_bufr_key_rank(h,self->keys,a->name); */
- if (!grib_is_missing_long(a, value)) {
- fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"%s->%s\", &iVal), 0);\n", prefix, a->name);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ if (!grib_is_missing_long(a, value)) {
+ fprintf(self->dumper.out, " CODES_CHECK(codes_get_long(h, \"%s->%s\", &iVal), 0);\n", prefix, a->name);
+ }
}
}
diff --git a/src/grib_dumper_class_bufr_decode_filter.cc b/src/grib_dumper_class_bufr_decode_filter.cc
index ca1e7f454..0fff0fc14 100644
--- a/src/grib_dumper_class_bufr_decode_filter.cc
+++ b/src/grib_dumper_class_bufr_decode_filter.cc
@@ -322,8 +322,9 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
return;
self->empty = 0;
- fprintf(self->dumper.out, "print \"%s->%s = [%s->%s]\";\n", prefix, a->name, prefix, a->name);
-
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ fprintf(self->dumper.out, "print \"%s->%s = [%s->%s]\";\n", prefix, a->name, prefix, a->name);
+ }
if (self->isLeaf == 0) {
char* prefix1 = (char*)grib_context_malloc_clear(c, sizeof(char) * (strlen(a->name) + strlen(prefix) + 5));
snprintf(prefix1, 1024, "%s->%s", prefix, a->name);
diff --git a/src/grib_dumper_class_bufr_decode_fortran.cc b/src/grib_dumper_class_bufr_decode_fortran.cc
index 739ec1362..b07f59b49 100644
--- a/src/grib_dumper_class_bufr_decode_fortran.cc
+++ b/src/grib_dumper_class_bufr_decode_fortran.cc
@@ -347,8 +347,10 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
fprintf(self->dumper.out, " call codes_get(ibufr, '%s->%s', iValues)\n", prefix, a->name);
}
else {
- if (!grib_is_missing_long(a, value)) {
- fprintf(self->dumper.out, " call codes_get(ibufr, '%s->%s', iVal)\n", prefix, a->name);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ if (!grib_is_missing_long(a, value)) {
+ fprintf(self->dumper.out, " call codes_get(ibufr, '%s->%s', iVal)\n", prefix, a->name);
+ }
}
}
diff --git a/src/grib_dumper_class_bufr_decode_python.cc b/src/grib_dumper_class_bufr_decode_python.cc
index 8c77c8325..632cbe98b 100644
--- a/src/grib_dumper_class_bufr_decode_python.cc
+++ b/src/grib_dumper_class_bufr_decode_python.cc
@@ -359,8 +359,10 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
fprintf(self->dumper.out, " iVals = codes_get_array(ibufr, '%s->%s')\n", prefix, a->name);
}
else {
- if (!grib_is_missing_long(a, value)) {
- fprintf(self->dumper.out, " iVal = codes_get(ibufr, '%s->%s')\n", prefix, a->name);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ if (!grib_is_missing_long(a, value)) {
+ fprintf(self->dumper.out, " iVal = codes_get(ibufr, '%s->%s')\n", prefix, a->name);
+ }
}
}
diff --git a/src/grib_dumper_class_bufr_encode_C.cc b/src/grib_dumper_class_bufr_encode_C.cc
index b69f765c6..568a035bb 100644
--- a/src/grib_dumper_class_bufr_encode_C.cc
+++ b/src/grib_dumper_class_bufr_encode_C.cc
@@ -102,13 +102,14 @@ static void init_class(grib_dumper_class* c) {}
static int init(grib_dumper* d)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- grib_context* c = d->context;
- self->section_offset = 0;
- self->empty = 1;
- d->count = 1;
- self->isLeaf = 0;
- self->isAttribute = 0;
- self->keys = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
+
+ grib_context* c = d->context;
+ self->section_offset = 0;
+ self->empty = 1;
+ d->count = 1;
+ self->isLeaf = 0;
+ self->isAttribute = 0;
+ self->keys = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
return GRIB_SUCCESS;
}
@@ -116,9 +117,9 @@ static int init(grib_dumper* d)
static int destroy(grib_dumper* d)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- grib_string_list* next = self->keys;
- grib_string_list* cur = NULL;
- grib_context* c = d->context;
+ grib_string_list* next = self->keys;
+ grib_string_list* cur = NULL;
+ grib_context* c = d->context;
while (next) {
cur = next;
next = next->next;
@@ -152,10 +153,11 @@ static char* dval_to_string(grib_context* c, double v)
static void dump_values(grib_dumper* d, grib_accessor* a)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- double value = 0;
+
+ double value = 0;
size_t size = 0, size2 = 0;
- double* values = NULL;
- int err = 0;
+ double* values = NULL;
+ int err = 0;
int i, r, icount;
int cols = 2;
long count = 0;
@@ -248,10 +250,11 @@ static void dump_values(grib_dumper* d, grib_accessor* a)
static void dump_values_attribute(grib_dumper* d, grib_accessor* a, const char* prefix)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- double value = 0;
+
+ double value = 0;
size_t size = 0, size2 = 0;
- double* values = NULL;
- int err = 0;
+ double* values = NULL;
+ int err = 0;
int i, icount;
int cols = 2;
long count = 0;
@@ -333,16 +336,17 @@ static int is_hidden(grib_accessor* a)
static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- long value = 0;
+
+ long value = 0;
size_t size = 0, size2 = 0;
- long* values = NULL;
- int err = 0;
+ long* values = NULL;
+ int err = 0;
int i, r, icount;
- int cols = 4;
- long count = 0;
- char* sval = NULL;
- grib_context* c = a->context;
- grib_handle* h = grib_handle_of_accessor(a);
+ int cols = 4;
+ long count = 0;
+ char* sval = NULL;
+ grib_context* c = a->context;
+ grib_handle* h = grib_handle_of_accessor(a);
int doing_unexpandedDescriptors = 0;
if ((a->flags & GRIB_ACCESSOR_FLAG_DUMP) == 0) { /* key does not have the dump attribute */
@@ -471,10 +475,11 @@ static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* prefix)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- long value = 0;
+
+ long value = 0;
size_t size = 0, size2 = 0;
- long* values = NULL;
- int err = 0;
+ long* values = NULL;
+ int err = 0;
int i, icount;
int cols = 4;
long count = 0;
@@ -524,10 +529,12 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
fprintf(self->dumper.out, " CODES_CHECK(codes_set_long_array(h, \"%s->%s\", ivalues, size), 0);\n", prefix, a->name);
}
else {
- char* sval = lval_to_string(c, value);
- fprintf(self->dumper.out, " CODES_CHECK(codes_set_long(h, \"%s->%s\", ", prefix, a->name);
- fprintf(self->dumper.out, "%s), 0);\n", sval);
- grib_context_free(c, sval);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ char* sval = lval_to_string(c, value);
+ fprintf(self->dumper.out, " CODES_CHECK(codes_set_long(h, \"%s->%s\", ", prefix, a->name);
+ fprintf(self->dumper.out, "%s), 0);\n", sval);
+ grib_context_free(c, sval);
+ }
}
if (self->isLeaf == 0) {
@@ -550,8 +557,9 @@ static void dump_bits(grib_dumper* d, grib_accessor* a, const char* comment)
static void dump_double(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- double value = 0;
- size_t size = 1;
+
+ double value = 0;
+ size_t size = 1;
int r;
char* sval;
grib_handle* h = grib_handle_of_accessor(a);
@@ -665,15 +673,16 @@ static void dump_string_array(grib_dumper* d, grib_accessor* a, const char* comm
static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- char* value = NULL;
- char* p = NULL;
- size_t size = 0;
- grib_context* c = a->context;
+
+ char* value = NULL;
+ char* p = NULL;
+ size_t size = 0;
+ grib_context* c = a->context;
int r = 0, err = 0;
- grib_handle* h = grib_handle_of_accessor(a);
+ grib_handle* h = grib_handle_of_accessor(a);
const char* acc_name = a->name;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if (size == 0)
return;
@@ -812,7 +821,7 @@ static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accesso
static void dump_attributes(grib_dumper* d, grib_accessor* a, const char* prefix)
{
- int i = 0;
+ int i = 0;
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
unsigned long flags;
while (i < MAX_ACCESSOR_ATTRIBUTES && a->attributes[i]) {
@@ -844,7 +853,7 @@ static void dump_attributes(grib_dumper* d, grib_accessor* a, const char* prefix
static void header(grib_dumper* d, grib_handle* h)
{
grib_dumper_bufr_encode_C* self = (grib_dumper_bufr_encode_C*)d;
- char sampleName[200] = { 0 };
+ char sampleName[200] = { 0 };
long localSectionPresent, edition, bufrHeaderCentre, isSatellite;
Assert(h->product_kind == PRODUCT_BUFR);
diff --git a/src/grib_dumper_class_bufr_encode_filter.cc b/src/grib_dumper_class_bufr_encode_filter.cc
index 38a704842..49c4d19ef 100644
--- a/src/grib_dumper_class_bufr_encode_filter.cc
+++ b/src/grib_dumper_class_bufr_encode_filter.cc
@@ -451,9 +451,11 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
}
else {
/* int r=compute_bufr_key_rank(h,self->keys,a->name); */
- if (!grib_is_missing_long(a, value)) {
- fprintf(self->dumper.out, "set %s->%s = ", prefix, a->name);
- fprintf(self->dumper.out, "%ld ;\n", value);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ if (!grib_is_missing_long(a, value)) {
+ fprintf(self->dumper.out, "set %s->%s = ", prefix, a->name);
+ fprintf(self->dumper.out, "%ld ;\n", value);
+ }
}
}
@@ -609,7 +611,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
if ((a->flags & GRIB_ACCESSOR_FLAG_DUMP) == 0 || (a->flags & GRIB_ACCESSOR_FLAG_READ_ONLY) != 0)
return;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if (size == 0)
return;
diff --git a/src/grib_dumper_class_bufr_encode_fortran.cc b/src/grib_dumper_class_bufr_encode_fortran.cc
index 8ddc771b6..e76bd0872 100644
--- a/src/grib_dumper_class_bufr_encode_fortran.cc
+++ b/src/grib_dumper_class_bufr_encode_fortran.cc
@@ -103,13 +103,14 @@ static void init_class(grib_dumper_class* c) {}
static int init(grib_dumper* d)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- grib_context* c = d->context;
- self->section_offset = 0;
- self->empty = 1;
- d->count = 1;
- self->isLeaf = 0;
- self->isAttribute = 0;
- self->keys = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
+
+ grib_context* c = d->context;
+ self->section_offset = 0;
+ self->empty = 1;
+ d->count = 1;
+ self->isLeaf = 0;
+ self->isAttribute = 0;
+ self->keys = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
return GRIB_SUCCESS;
}
@@ -117,9 +118,10 @@ static int init(grib_dumper* d)
static int destroy(grib_dumper* d)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- grib_string_list* next = self->keys;
- grib_string_list* cur = NULL;
- grib_context* c = d->context;
+
+ grib_string_list* next = self->keys;
+ grib_string_list* cur = NULL;
+ grib_context* c = d->context;
while (next) {
cur = next;
next = next->next;
@@ -200,10 +202,11 @@ static char* break_line(grib_context* c, const char* input)
static void dump_values(grib_dumper* d, grib_accessor* a)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- double value = 0;
+
+ double value = 0;
size_t size = 0, size2 = 0;
- double* values = NULL;
- int err = 0;
+ double* values = NULL;
+ int err = 0;
int i, r, icount;
int cols = 2;
long count = 0;
@@ -295,10 +298,11 @@ static void dump_values(grib_dumper* d, grib_accessor* a)
static void dump_values_attribute(grib_dumper* d, grib_accessor* a, const char* prefix)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- double value = 0;
+
+ double value = 0;
size_t size = 0, size2 = 0;
- double* values = NULL;
- int err = 0;
+ double* values = NULL;
+ int err = 0;
int i, icount;
int cols = 2;
long count = 0;
@@ -381,16 +385,17 @@ static int is_hidden(grib_accessor* a)
static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- long value = 0;
+
+ long value = 0;
size_t size = 0, size2 = 0;
- long* values = NULL;
- int err = 0;
+ long* values = NULL;
+ int err = 0;
int i, r, icount;
- int cols = 4;
- long count = 0;
- char* sval = NULL;
- grib_context* c = a->context;
- grib_handle* h = grib_handle_of_accessor(a);
+ int cols = 4;
+ long count = 0;
+ char* sval = NULL;
+ grib_context* c = a->context;
+ grib_handle* h = grib_handle_of_accessor(a);
int doing_unexpandedDescriptors = 0;
if ((a->flags & GRIB_ACCESSOR_FLAG_DUMP) == 0) { /* key does not have the dump attribute */
@@ -516,10 +521,11 @@ static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* prefix)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- long value = 0;
+
+ long value = 0;
size_t size = 0, size2 = 0;
- long* values = NULL;
- int err = 0;
+ long* values = NULL;
+ int err = 0;
int i, icount;
int cols = 4;
long count = 0;
@@ -573,10 +579,12 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
fprintf(self->dumper.out, " call codes_set(ibufr,'%s->%s' &\n,ivalues)\n", pref, a->name);
}
else {
- char* sval = lval_to_string(c, value);
- fprintf(self->dumper.out, " call codes_set(ibufr,'%s->%s'&\n,", pref, a->name);
- fprintf(self->dumper.out, "%s)\n", sval);
- grib_context_free(c, sval);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ char* sval = lval_to_string(c, value);
+ fprintf(self->dumper.out, " call codes_set(ibufr,'%s->%s'&\n,", pref, a->name);
+ fprintf(self->dumper.out, "%s)\n", sval);
+ grib_context_free(c, sval);
+ }
}
if (self->isLeaf == 0) {
@@ -601,8 +609,9 @@ static void dump_bits(grib_dumper* d, grib_accessor* a, const char* comment)
static void dump_double(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- double value = 0;
- size_t size = 1;
+
+ double value = 0;
+ size_t size = 1;
int r;
char* sval;
grib_handle* h = grib_handle_of_accessor(a);
@@ -713,16 +722,17 @@ static void dump_string_array(grib_dumper* d, grib_accessor* a, const char* comm
static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- char* value = NULL;
- char* p = NULL;
- size_t size = 0;
- grib_context* c = a->context;
+
+ char* value = NULL;
+ char* p = NULL;
+ size_t size = 0;
+ grib_context* c = a->context;
int r;
int err = 0;
grib_handle* h = grib_handle_of_accessor(a);
const char* acc_name = a->name;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if (size == 0)
return;
@@ -858,7 +868,7 @@ static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accesso
static void dump_attributes(grib_dumper* d, grib_accessor* a, const char* prefix)
{
- int i = 0;
+ int i = 0;
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
unsigned long flags;
while (i < MAX_ACCESSOR_ATTRIBUTES && a->attributes[i]) {
@@ -890,7 +900,7 @@ static void dump_attributes(grib_dumper* d, grib_accessor* a, const char* prefix
static void header(grib_dumper* d, grib_handle* h)
{
grib_dumper_bufr_encode_fortran* self = (grib_dumper_bufr_encode_fortran*)d;
- char sampleName[200] = { 0 };
+ char sampleName[200] = { 0 };
long localSectionPresent, edition, bufrHeaderCentre, isSatellite;
grib_get_long(h, "localSectionPresent", &localSectionPresent);
diff --git a/src/grib_dumper_class_bufr_encode_python.cc b/src/grib_dumper_class_bufr_encode_python.cc
index ba2a0998a..34367c913 100644
--- a/src/grib_dumper_class_bufr_encode_python.cc
+++ b/src/grib_dumper_class_bufr_encode_python.cc
@@ -519,10 +519,12 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
fprintf(self->dumper.out, " codes_set_array(ibufr, '%s->%s', ivalues)\n", prefix, a->name);
}
else {
- char* sval = lval_to_string(c, value);
- fprintf(self->dumper.out, " codes_set(ibufr, '%s->%s', ", prefix, a->name);
- fprintf(self->dumper.out, "%s)\n", sval);
- grib_context_free(c, sval);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ char* sval = lval_to_string(c, value);
+ fprintf(self->dumper.out, " codes_set(ibufr, '%s->%s', ", prefix, a->name);
+ fprintf(self->dumper.out, "%s)\n", sval);
+ grib_context_free(c, sval);
+ }
}
if (self->isLeaf == 0) {
@@ -663,7 +665,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
grib_handle* h = grib_handle_of_accessor(a);
const char* acc_name = a->name;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if (size == 0)
return;
diff --git a/src/grib_dumper_class_bufr_simple.cc b/src/grib_dumper_class_bufr_simple.cc
index 7dc758bc4..ca4701f38 100644
--- a/src/grib_dumper_class_bufr_simple.cc
+++ b/src/grib_dumper_class_bufr_simple.cc
@@ -466,19 +466,19 @@ static void dump_long_attribute(grib_dumper* d, grib_accessor* a, const char* pr
}
else {
/* int r=compute_bufr_key_rank(h,self->keys,a->name); */
- if (!grib_is_missing_long(a, value)) {
- fprintf(self->dumper.out, "%s->%s = ", prefix, a->name);
- fprintf(self->dumper.out, "%ld\n", value);
- }
- else {
- fprintf(self->dumper.out, "%s->%s = MISSING\n", prefix, a->name);
+ if (!codes_bufr_key_exclude_from_dump(prefix)) {
+ if (!grib_is_missing_long(a, value)) {
+ fprintf(self->dumper.out, "%s->%s = ", prefix, a->name);
+ fprintf(self->dumper.out, "%ld\n", value);
+ }
+ else {
+ fprintf(self->dumper.out, "%s->%s = MISSING\n", prefix, a->name);
+ }
}
}
if (self->isLeaf == 0) {
- char* prefix1;
-
- prefix1 = (char*)grib_context_malloc_clear(c, sizeof(char) * (strlen(a->name) + strlen(prefix) + 5));
+ char* prefix1 = (char*)grib_context_malloc_clear(c, sizeof(char) * (strlen(a->name) + strlen(prefix) + 5));
snprintf(prefix1, 1024, "%s->%s", prefix, a->name);
dump_attributes(d, a, prefix1);
diff --git a/src/grib_dumper_class_debug.cc b/src/grib_dumper_class_debug.cc
index 79c1ea29c..77206c829 100644
--- a/src/grib_dumper_class_debug.cc
+++ b/src/grib_dumper_class_debug.cc
@@ -100,6 +100,55 @@ static int destroy(grib_dumper* d)
return GRIB_SUCCESS;
}
+static void default_long_value(grib_dumper* d, grib_accessor* a, long actualValue)
+{
+ grib_dumper_debug* self = (grib_dumper_debug*)d;
+ grib_action* act = a->creator;
+ if (act->default_value == NULL)
+ return;
+
+ grib_handle* h = grib_handle_of_accessor(a);
+ grib_expression* expression = grib_arguments_get_expression(h, act->default_value, 0);
+ if (!expression)
+ return;
+
+ const int type = grib_expression_native_type(h, expression);
+ if (type == GRIB_TYPE_LONG) {
+ long defaultValue = 0;
+ if (grib_expression_evaluate_long(h, expression, &defaultValue) == GRIB_SUCCESS && defaultValue != actualValue) {
+ if (defaultValue == GRIB_MISSING_LONG)
+ fprintf(self->dumper.out, " (default=MISSING)");
+ else
+ fprintf(self->dumper.out, " (default=%ld)",defaultValue);
+ }
+ }
+}
+
+// static void default_string_value(grib_dumper* d, grib_accessor* a, const char* actualValue)
+// {
+// grib_dumper_debug* self = (grib_dumper_debug*)d;
+// grib_action* act = a->creator;
+// if (act->default_value == NULL)
+// return;
+
+// grib_handle* h = grib_handle_of_accessor(a);
+// grib_expression* expression = grib_arguments_get_expression(h, act->default_value, 0);
+// if (!expression)
+// return;
+
+// const int type = grib_expression_native_type(h, expression);
+// DEBUG_ASSERT(type == GRIB_TYPE_STRING);
+// if (type == GRIB_TYPE_STRING) {
+// char tmp[1024] = {0,};
+// size_t s_len = sizeof(tmp);
+// int err = 0;
+// const char* p = grib_expression_evaluate_string(h, expression, tmp, &s_len, &err);
+// if (!err && !STR_EQUAL(p, actualValue)) {
+// fprintf(self->dumper.out, " (default=%s)", p);
+// }
+// }
+// }
+
static void aliases(grib_dumper* d, grib_accessor* a)
{
int i;
@@ -202,6 +251,7 @@ static void dump_long(grib_dumper* d, grib_accessor* a, const char* comment)
fprintf(self->dumper.out, " *** ERR=%d (%s) [grib_dumper_debug::dump_long]", err, grib_get_error_message(err));
aliases(d, a);
+ default_long_value(d, a, value);
fprintf(self->dumper.out, "\n");
}
@@ -291,7 +341,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
if (a->length == 0 && (d->option_flags & GRIB_DUMP_FLAG_CODED) != 0)
return;
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if ((size < 2) && grib_is_missing_internal(a)) {
/* GRIB-302: transients and missing keys. Need to re-adjust the size */
size = 10; /* big enough to hold the string "missing" */
diff --git a/src/grib_dumper_class_default.cc b/src/grib_dumper_class_default.cc
index 61aface7f..e9bfdc702 100644
--- a/src/grib_dumper_class_default.cc
+++ b/src/grib_dumper_class_default.cc
@@ -410,7 +410,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
return;
}
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
if (size == 0)
return;
diff --git a/src/grib_dumper_class_json.cc b/src/grib_dumper_class_json.cc
index 3615595b2..a3b052844 100644
--- a/src/grib_dumper_class_json.cc
+++ b/src/grib_dumper_class_json.cc
@@ -454,11 +454,11 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
/* ECC-710: It is MUCH slower determining the string length here
* than using a maximum size (and no need for malloc).
* Specially for BUFR elements */
- /* err = ecc__grib_get_string_length(a,&size);
+ /* err = grib_get_string_length_acc(a,&size);
* if (size==0) return;
* value=(char*)grib_context_malloc_clear(a->context,size);
* if (!value) {
- * grib_context_log(a->context,GRIB_LOG_ERROR,"unable to allocate %d bytes",(int)size);
+ * grib_context_log(a->context,GRIB_LOG_ERROR,"Unable to allocate %zu bytes",size);
* return;
* }
*/
diff --git a/src/grib_dumper_class_serialize.cc b/src/grib_dumper_class_serialize.cc
index 163a01f6b..6dc4d5c87 100644
--- a/src/grib_dumper_class_serialize.cc
+++ b/src/grib_dumper_class_serialize.cc
@@ -408,11 +408,10 @@ static void dump_label(grib_dumper* d, grib_accessor* a, const char* comment)
static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accessors* block)
{
- const char* secstr = "section";
- int len = 0;
+ const char* secstr = "section";
grib_dumper_serialize* self = (grib_dumper_serialize*)d;
- len = strlen(secstr);
+ size_t len = strlen(secstr);
if (a->name[0] == '_') {
grib_dump_accessors_block(d, block);
diff --git a/src/grib_dumper_class_wmo.cc b/src/grib_dumper_class_wmo.cc
index a884d2966..814ed016f 100644
--- a/src/grib_dumper_class_wmo.cc
+++ b/src/grib_dumper_class_wmo.cc
@@ -85,7 +85,6 @@ grib_dumper_class* grib_dumper_class_wmo = &_grib_dumper_class_wmo;
/* END_CLASS_IMP */
static void set_begin_end(grib_dumper* d, grib_accessor* a);
-static void print_offset(FILE* out, long begin, long theEnd);
static void print_hexadecimal(FILE* out, unsigned long flags, grib_accessor* a);
static void init_class(grib_dumper_class* c) {}
@@ -103,6 +102,18 @@ static int destroy(grib_dumper* d)
return GRIB_SUCCESS;
}
+static void print_offset(FILE* out, long begin, long theEnd, int width=10)
+{
+ char tmp[50];
+
+ if (begin == theEnd)
+ fprintf(out, "%-*ld", width, begin);
+ else {
+ snprintf(tmp, sizeof(tmp), "%ld-%ld", begin, theEnd);
+ fprintf(out, "%-*s", width, tmp);
+ }
+}
+
static void aliases(grib_dumper* d, grib_accessor* a)
{
int i;
@@ -300,7 +311,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment)
return;
}
- ecc__grib_get_string_length(a, &size);
+ grib_get_string_length_acc(a, &size);
value = (char*)grib_context_malloc_clear(a->context, size);
if (!value) {
grib_context_log(a->context, GRIB_LOG_ERROR, "unable to allocate %zu bytes", size);
@@ -438,7 +449,7 @@ static void dump_values(grib_dumper* d, grib_accessor* a)
is_char = 1;
}
- print_offset(self->dumper.out, self->begin, self->theEnd);
+ print_offset(self->dumper.out, self->begin, self->theEnd, 12); // ECC-1749
if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) {
char type_name[32] = "";
const long native_type = grib_accessor_get_native_type(a);
@@ -563,17 +574,6 @@ static void set_begin_end(grib_dumper* d, grib_accessor* a)
}
}
-static void print_offset(FILE* out, long begin, long theEnd)
-{
- char tmp[50];
- if (begin == theEnd)
- fprintf(out, "%-10ld", begin);
- else {
- snprintf(tmp, sizeof(tmp), "%ld-%ld", begin, theEnd);
- fprintf(out, "%-10s", tmp);
- }
-}
-
static void print_hexadecimal(FILE* out, unsigned long flags, grib_accessor* a)
{
int i = 0;
diff --git a/src/grib_errors.cc b/src/grib_errors.cc
index ac61a6154..90dc45e79 100644
--- a/src/grib_errors.cc
+++ b/src/grib_errors.cc
@@ -40,7 +40,7 @@ static const char *errors[] = {
"Unable to set step", /* -25 GRIB_WRONG_STEP */
"Wrong units for step (step must be integer)", /* -26 GRIB_WRONG_STEP_UNIT */
"Invalid file id", /* -27 GRIB_INVALID_FILE */
-"Invalid grib id", /* -28 GRIB_INVALID_GRIB */
+"Invalid GRIB id", /* -28 GRIB_INVALID_GRIB */
"Invalid index id", /* -29 GRIB_INVALID_INDEX */
"Invalid iterator id", /* -30 GRIB_INVALID_ITERATOR */
"Invalid keys iterator id", /* -31 GRIB_INVALID_KEYS_ITERATOR */
@@ -94,12 +94,11 @@ static const char *errors[] = {
"Assertion failure", /* -79 GRIB_ASSERTION_FAILURE */
};
-#define NUMBER(a) sizeof(a)/sizeof(a[0])
-
const char* grib_get_error_message(int code)
{
code = -code;
- if (code < 0 || code >= NUMBER(errors)) {
+ const int num_errors = int( sizeof(errors)/sizeof(errors[0]) );
+ if (code < 0 || code >= num_errors) {
static char mess[64];
snprintf(mess, sizeof(mess), "Unknown error %d", code);
return mess;
diff --git a/src/grib_errors.cc.in b/src/grib_errors.cc.in
index 4e826bb8b..dfc1a1db1 100644
--- a/src/grib_errors.cc.in
+++ b/src/grib_errors.cc.in
@@ -15,12 +15,11 @@ static const char *errors[] = {
!ERRORS go in here
};
-#define NUMBER(a) sizeof(a)/sizeof(a[0])
-
const char* grib_get_error_message(int code)
{
code = -code;
- if (code < 0 || code >= NUMBER(errors)) {
+ const int num_errors = int( sizeof(errors)/sizeof(errors[0]) );
+ if (code < 0 || code >= num_errors) {
static char mess[64];
snprintf(mess, sizeof(mess), "Unknown error %d", code);
return mess;
diff --git a/src/grib_errors.txt b/src/grib_errors.txt
index 6019f6601..bc521bcce 100644
--- a/src/grib_errors.txt
+++ b/src/grib_errors.txt
@@ -29,7 +29,7 @@ GRIB_WRONG_STEP Unable to set step
GRIB_WRONG_STEP_UNIT Wrong units for step (step must be integer)
/* some errors for the fortran interface */
GRIB_INVALID_FILE Invalid file id
-GRIB_INVALID_GRIB Invalid grib id
+GRIB_INVALID_GRIB Invalid GRIB id
GRIB_INVALID_INDEX Invalid index id
GRIB_INVALID_ITERATOR Invalid iterator id
GRIB_INVALID_KEYS_ITERATOR Invalid keys iterator id
diff --git a/src/grib_expression.cc b/src/grib_expression.cc
index c3cd36305..4c1109640 100644
--- a/src/grib_expression.cc
+++ b/src/grib_expression.cc
@@ -19,8 +19,7 @@ int grib_expression_native_type(grib_handle* h, grib_expression* g)
c = c->super ? *(c->super) : NULL;
}
if (g->cclass)
- grib_context_log(h->context, GRIB_LOG_ERROR, "No native_type() in %s", g->cclass->name);
- Assert(1 == 0);
+ grib_context_log(h->context, GRIB_LOG_FATAL, "%s: No native_type() in %s", __func__, g->cclass->name);
return 0;
}
@@ -55,7 +54,7 @@ const char* grib_expression_evaluate_string(grib_handle* h, grib_expression* g,
c = c->super ? *(c->super) : NULL;
}
if (g->cclass)
- grib_context_log(h->context, GRIB_LOG_ERROR, "No evaluate_string() in %s", g->cclass->name);
+ grib_context_log(h->context, GRIB_LOG_ERROR, "%s: No evaluate_string() in %s", __func__, g->cclass->name);
*err = GRIB_INVALID_TYPE;
return 0;
@@ -69,8 +68,9 @@ const char* grib_expression_get_name(grib_expression* g)
return c->get_name(g);
c = c->super ? *(c->super) : NULL;
}
- if (g->cclass) printf("No expression_get_name() in %s\n", g->cclass->name);
- Assert(1 == 0);
+ if (g->cclass) {
+ grib_context_log(grib_context_get_default(), GRIB_LOG_FATAL, "%s: No get_name() in %s", __func__, g->cclass->name);
+ }
return 0;
}
@@ -84,7 +84,6 @@ void grib_expression_print(grib_context* ctx, grib_expression* g, grib_handle* f
}
c = c->super ? *(c->super) : NULL;
}
- Assert(1 == 0);
}
void grib_expression_free(grib_context* ctx, grib_expression* g)
@@ -110,43 +109,37 @@ void grib_expression_add_dependency(grib_expression* e, grib_accessor* observer)
}
c = c->super ? *(c->super) : NULL;
}
- Assert(1 == 0);
}
-/*----------------------------------------*/
-int grib_expression_set_value(grib_handle* h, grib_expression* g, grib_values* v)
-{
- char buffer[1024];
- int ret = 0;
- size_t size = sizeof(buffer);
-
- switch (v->type = grib_expression_native_type(h, g)) {
- case GRIB_TYPE_LONG:
- return grib_expression_evaluate_long(h, g, &v->long_value);
- break;
-
- case GRIB_TYPE_DOUBLE:
- return grib_expression_evaluate_double(h, g, &v->double_value);
- break;
-
- case GRIB_TYPE_STRING:
- v->string_value = grib_expression_evaluate_string(h, g, buffer, &size, &ret);
- if (ret != GRIB_SUCCESS) {
- grib_context_log(h->context, GRIB_LOG_ERROR,
- "grib_expression_set_value: unable to evaluate %s as string",
- grib_expression_get_name(g));
- return ret;
- }
- Assert(v->string_value != buffer);
- Assert(v->string_value);
- break;
-
- default:
- Assert(1 == 0);
- break;
- }
- return 0;
-}
+// int grib_expression_set_value(grib_handle* h, grib_expression* g, grib_values* v)
+// {
+// char buffer[1024];
+// int ret = 0;
+// size_t size = sizeof(buffer);
+// switch (v->type = grib_expression_native_type(h, g)) {
+// case GRIB_TYPE_LONG:
+// return grib_expression_evaluate_long(h, g, &v->long_value);
+// break;
+// case GRIB_TYPE_DOUBLE:
+// return grib_expression_evaluate_double(h, g, &v->double_value);
+// break;
+// case GRIB_TYPE_STRING:
+// v->string_value = grib_expression_evaluate_string(h, g, buffer, &size, &ret);
+// if (ret != GRIB_SUCCESS) {
+// grib_context_log(h->context, GRIB_LOG_ERROR,
+// "grib_expression_set_value: unable to evaluate %s as string",
+// grib_expression_get_name(g));
+// return ret;
+// }
+// Assert(v->string_value != buffer);
+// Assert(v->string_value);
+// break;
+// default:
+// Assert(!"grib_expression_set_value");
+// break;
+// }
+// return 0;
+// }
/*----------------------------------------*/
grib_arguments* grib_arguments_new(grib_context* c, grib_expression* g, grib_arguments* n)
diff --git a/src/grib_expression_class.h b/src/grib_expression_class.h
index 6856b1b06..8660a7864 100644
--- a/src/grib_expression_class.h
+++ b/src/grib_expression_class.h
@@ -1,8 +1,6 @@
/* This file is automatically generated by ./make_class.pl, do not edit */
extern grib_expression_class* grib_expression_class_accessor;
extern grib_expression_class* grib_expression_class_binop;
-extern grib_expression_class* grib_expression_class_column;
-extern grib_expression_class* grib_expression_class_constant;
extern grib_expression_class* grib_expression_class_double;
extern grib_expression_class* grib_expression_class_functor;
extern grib_expression_class* grib_expression_class_is_in_dict;
diff --git a/src/grib_expression_class_accessor.cc b/src/grib_expression_class_accessor.cc
index e806a3e1a..064cc2051 100644
--- a/src/grib_expression_class_accessor.cc
+++ b/src/grib_expression_class_accessor.cc
@@ -41,20 +41,14 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_accessor{
grib_expression base;
@@ -70,7 +64,6 @@ static grib_expression_class _grib_expression_class_accessor = {
"accessor", /* name */
sizeof(grib_expression_accessor),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -84,33 +77,29 @@ static grib_expression_class _grib_expression_class_accessor = {
grib_expression_class* grib_expression_class_accessor = &_grib_expression_class_accessor;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static const char* get_name(grib_expression* g)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
return e->name;
}
static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
return grib_get_long_internal(h, e->name, result);
}
static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
return grib_get_double_internal(h, e->name, result);
}
static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
char mybuf[1024] = {0,};
long start = e->start;
if (e->length > sizeof(mybuf)) {
@@ -141,7 +130,7 @@ static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, siz
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
printf("access('%s", e->name);
if (f) {
long s = 0;
@@ -159,8 +148,8 @@ static void destroy(grib_context* c, grib_expression* g)
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
- grib_expression_accessor* e = (grib_expression_accessor*)g;
- grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
+ const grib_expression_accessor* e = (grib_expression_accessor*)g;
+ grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
if (!observed) {
/* grib_context_log(observer->context, GRIB_LOG_ERROR, */
@@ -185,10 +174,11 @@ grib_expression* new_accessor_expression(grib_context* c, const char* name, long
static int native_type(grib_expression* g, grib_handle* h)
{
grib_expression_accessor* e = (grib_expression_accessor*)g;
- int type = 0;
+ int type = 0;
int err;
- if ((err = grib_get_native_type(h, e->name, &type)) != GRIB_SUCCESS)
+ if ((err = grib_get_native_type(h, e->name, &type)) != GRIB_SUCCESS) {
grib_context_log(h->context, GRIB_LOG_ERROR,
- "Error in native_type %s : %s", e->name, grib_get_error_message(err));
+ "Error in evaluating the type of '%s': %s", e->name, grib_get_error_message(err));
+ }
return type;
}
diff --git a/src/grib_expression_class_binop.cc b/src/grib_expression_class_binop.cc
index e95bebbd3..5caefd701 100644
--- a/src/grib_expression_class_binop.cc
+++ b/src/grib_expression_class_binop.cc
@@ -41,18 +41,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_binop{
grib_expression base;
@@ -70,7 +64,6 @@ static grib_expression_class _grib_expression_class_binop = {
"binop", /* name */
sizeof(grib_expression_binop),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -84,17 +77,12 @@ static grib_expression_class _grib_expression_class_binop = {
grib_expression_class* grib_expression_class_binop = &_grib_expression_class_binop;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
long v1 = 0;
long v2 = 0;
- int ret;
grib_expression_binop* e = (grib_expression_binop*)g;
// #if DEBUGGING
@@ -111,7 +99,7 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
// printf("\n");
// }
- ret = grib_expression_evaluate_long(h, e->left, &v1);
+ int ret = grib_expression_evaluate_long(h, e->left, &v1);
if (ret != GRIB_SUCCESS)
return ret;
@@ -127,8 +115,6 @@ static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
double v1 = 0.0;
double v2 = 0.0;
- int ret;
-
grib_expression_binop* e = (grib_expression_binop*)g;
// #if DEBUGGING
@@ -145,7 +131,7 @@ static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
// printf("\n");
// }
- ret = grib_expression_evaluate_double(h, e->left, &v1);
+ int ret = grib_expression_evaluate_double(h, e->left, &v1);
if (ret != GRIB_SUCCESS)
return ret;
diff --git a/src/grib_expression_class_double.cc b/src/grib_expression_class_double.cc
index f904c887e..89747194b 100644
--- a/src/grib_expression_class_double.cc
+++ b/src/grib_expression_class_double.cc
@@ -37,18 +37,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_double{
grib_expression base;
@@ -62,7 +56,6 @@ static grib_expression_class _grib_expression_class_double = {
"double", /* name */
sizeof(grib_expression_double),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -76,29 +69,25 @@ static grib_expression_class _grib_expression_class_double = {
grib_expression_class* grib_expression_class_double = &_grib_expression_class_double;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
- grib_expression_double* e = (grib_expression_double*)g;
- *lres = e->value;
+ const grib_expression_double* e = (grib_expression_double*)g;
+ *lres = e->value;
return GRIB_SUCCESS;
}
static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
- grib_expression_double* e = (grib_expression_double*)g;
- *dres = e->value;
+ const grib_expression_double* e = (grib_expression_double*)g;
+ *dres = e->value;
return GRIB_SUCCESS;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_double* e = (grib_expression_double*)g;
+ const grib_expression_double* e = (grib_expression_double*)g;
printf("double(%g)", e->value);
}
@@ -115,8 +104,8 @@ static void add_dependency(grib_expression* g, grib_accessor* observer)
grib_expression* new_double_expression(grib_context* c, double value)
{
grib_expression_double* e = (grib_expression_double*)grib_context_malloc_clear_persistent(c, sizeof(grib_expression_double));
- e->base.cclass = grib_expression_class_double;
- e->value = value;
+ e->base.cclass = grib_expression_class_double;
+ e->value = value;
return (grib_expression*)e;
}
diff --git a/src/grib_expression_class_functor.cc b/src/grib_expression_class_functor.cc
index c7ffc072e..530654ea2 100644
--- a/src/grib_expression_class_functor.cc
+++ b/src/grib_expression_class_functor.cc
@@ -37,17 +37,11 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
typedef struct grib_expression_functor{
grib_expression base;
@@ -62,7 +56,6 @@ static grib_expression_class _grib_expression_class_functor = {
"functor", /* name */
sizeof(grib_expression_functor),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -76,37 +69,54 @@ static grib_expression_class _grib_expression_class_functor = {
grib_expression_class* grib_expression_class_functor = &_grib_expression_class_functor;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
grib_expression_functor* e = (grib_expression_functor*)g;
- if (strcmp(e->name, "lookup") == 0) {
+ if (STR_EQUAL(e->name, "lookup")) {
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "new") == 0) {
+ if (STR_EQUAL(e->name, "new")) {
*lres = h->loader != NULL;
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "missing") == 0) {
- const char* p = grib_arguments_get_name(h, e->args, 0);
- if (p) {
+ if (STR_EQUAL(e->name, "abs")) {
+ grib_expression* exp = grib_arguments_get_expression(h, e->args, 0);
+ long lval = 0;
+ int ret = grib_expression_evaluate_long(h, exp, &lval);
+ *lres = abs(lval);
+ return ret;
+ }
+
+ if (STR_EQUAL(e->name, "size")) {
+ *lres = 0;
+ const char* keyName = grib_arguments_get_name(h, e->args, 0);
+ if (keyName) {
+ size_t size = 0;
+ int err = grib_get_size(h, keyName, &size);
+ if (err) return err;
+ *lres = (long)size;
+ return GRIB_SUCCESS;
+ }
+ return GRIB_INVALID_ARGUMENT;
+ }
+
+ if (STR_EQUAL(e->name, "missing")) {
+ const char* keyName = grib_arguments_get_name(h, e->args, 0);
+ if (keyName) {
long val = 0;
int err = 0;
if (h->product_kind == PRODUCT_BUFR) {
- int ismiss = grib_is_missing(h, p, &err);
+ int ismiss = grib_is_missing(h, keyName, &err);
if (err) return err;
*lres = ismiss;
return GRIB_SUCCESS;
}
- err = grib_get_long_internal(h, p, &val);
+ err = grib_get_long_internal(h, keyName, &val);
if (err) return err;
// Note: This does not cope with keys like typeOfSecondFixedSurface
// which are codetable entries with values like 255: this value is
@@ -122,26 +132,25 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "defined") == 0) {
- const char* p = grib_arguments_get_name(h, e->args, 0);
-
- if (p) {
- grib_accessor* a = grib_find_accessor(h, p);
- *lres = a != NULL ? 1 : 0;
+ if (STR_EQUAL(e->name, "defined")) {
+ const char* keyName = grib_arguments_get_name(h, e->args, 0);
+ if (keyName) {
+ const grib_accessor* a = grib_find_accessor(h, keyName);
+ *lres = a != NULL ? 1 : 0;
return GRIB_SUCCESS;
}
*lres = 0;
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "environment_variable") == 0) {
+ if (STR_EQUAL(e->name, "environment_variable")) {
// ECC-1520: This implementation has some limitations:
// 1. Cannot distinguish between environment variable NOT SET
// and SET but equal to 0
// 2. Cannot deal with string values
const char* p = grib_arguments_get_name(h, e->args, 0);
if (p) {
- char* env = getenv(p);
+ const char* env = getenv(p);
if (env) {
long lval = 0;
if (string_to_long(env, &lval, 1) == GRIB_SUCCESS) {
@@ -154,22 +163,62 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "changed") == 0) {
+ if (STR_EQUAL(e->name, "changed")) {
*lres = 1;
return GRIB_SUCCESS;
}
- if (strcmp(e->name, "gribex_mode_on") == 0) {
+ if (STR_EQUAL(e->name, "is_one_of")) {
+ *lres = 0;
+ const char* keyName = grib_arguments_get_name(h, e->args, 0);
+ if (!keyName) return GRIB_INVALID_ARGUMENT;
+ int type = 0;
+ int err = grib_get_native_type(h, keyName, &type);
+ if (err) return err;
+ int n = grib_arguments_get_count(e->args);
+ if (type == GRIB_TYPE_STRING) {
+ char keyValue[254] = {0,};
+ size_t len = sizeof(keyValue);
+ err = grib_get_string(h, keyName, keyValue, &len);
+ if (err) return err;
+ for (int i = 1; i < n; ++i) { // skip 1st argument which is the key
+ const char* sValue = grib_arguments_get_string(h, e->args, i);
+ if (sValue && STR_EQUAL(keyValue, sValue)) {
+ *lres = 1;
+ return GRIB_SUCCESS;
+ }
+ }
+ }
+ else if (type == GRIB_TYPE_LONG) {
+ long keyValue = 0;
+ err = grib_get_long(h, keyName, &keyValue);
+ if (err) return err;
+ for (int i = 1; i < n; ++i) { // skip 1st argument which is the key
+ long lValue = grib_arguments_get_long(h, e->args, i);
+ if (keyValue == lValue) {
+ *lres = 1;
+ return GRIB_SUCCESS;
+ }
+ }
+ }
+ else if (type == GRIB_TYPE_DOUBLE) {
+ return GRIB_NOT_IMPLEMENTED;
+ }
+ return GRIB_SUCCESS;
+ }
+
+ if (STR_EQUAL(e->name, "gribex_mode_on")) {
*lres = h->context->gribex_mode_on ? 1 : 0;
return GRIB_SUCCESS;
}
+ grib_context_log(h->context, GRIB_LOG_ERROR, "grib_expression_class_functor::%s failed for '%s'", __func__, e->name);
return GRIB_NOT_IMPLEMENTED;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_functor* e = (grib_expression_functor*)g;
+ const grib_expression_functor* e = (grib_expression_functor*)g;
printf("%s(", e->name);
// grib_expression_print(c,e->args,f);
printf(")");
diff --git a/src/grib_expression_class_is_in_dict.cc b/src/grib_expression_class_is_in_dict.cc
index 6cb43acb3..142287cdc 100644
--- a/src/grib_expression_class_is_in_dict.cc
+++ b/src/grib_expression_class_is_in_dict.cc
@@ -39,19 +39,13 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_is_in_dict{
grib_expression base;
@@ -66,7 +60,6 @@ static grib_expression_class _grib_expression_class_is_in_dict = {
"is_in_dict", /* name */
sizeof(grib_expression_is_in_dict),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
0, /* destructor */
&print,
@@ -80,10 +73,6 @@ static grib_expression_class _grib_expression_class_is_in_dict = {
grib_expression_class* grib_expression_class_is_in_dict = &_grib_expression_class_is_in_dict;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
@@ -94,10 +83,10 @@ static grib_trie* load_dictionary(grib_context* c, grib_expression* e, int* err)
char* filename = NULL;
char line[1024] = {0,};
char key[1024] = {0,};
- char* list = 0;
+ char* list = 0;
grib_trie* dictionary = NULL;
- FILE* f = NULL;
- int i = 0;
+ FILE* f = NULL;
+ int i = 0;
*err = GRIB_SUCCESS;
@@ -148,15 +137,15 @@ static grib_trie* load_dictionary(grib_context* c, grib_expression* e, int* err)
static const char* get_name(grib_expression* g)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ const grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
return e->key;
}
static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
- int err = 0;
- char mybuf[1024] = {0,};
+ const grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ int err = 0;
+ char mybuf[1024] = {0,};
size_t size = 1024;
grib_trie* dict = load_dictionary(h->context, g, &err);
@@ -174,49 +163,46 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
- int err = 0;
- char mybuf[1024] = {0,};
- size_t size = 1024;
+ return GRIB_NOT_IMPLEMENTED;
- grib_trie* list = load_dictionary(h->context, g, &err);
-
- if ((err = grib_get_string_internal(h, e->key, mybuf, &size)) != GRIB_SUCCESS)
- return err;
-
- if (grib_trie_get(list, mybuf))
- *result = 1;
- else
- *result = 0;
-
- return err;
+ // grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ // int err = 0;
+ // char mybuf[1024] = {0,};
+ // size_t size = 1024;
+ // grib_trie* list = load_dictionary(h->context, g, &err);
+ // if ((err = grib_get_string_internal(h, e->key, mybuf, &size)) != GRIB_SUCCESS)
+ // return err;
+ // if (grib_trie_get(list, mybuf))
+ // *result = 1;
+ // else
+ // *result = 0;
+ // return err;
}
static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
- char mybuf[1024] = {0,};
- size_t sizebuf = 1024;
- long result;
+ *err = GRIB_NOT_IMPLEMENTED;
+ return NULL;
- grib_trie* list = load_dictionary(h->context, g, err);
-
- if ((*err = grib_get_string_internal(h, e->key, mybuf, &sizebuf)) != GRIB_SUCCESS)
- return NULL;
-
- if (grib_trie_get(list, mybuf))
- result = 1;
- else
- result = 0;
-
- snprintf(buf, 32, "%ld", result);
- *size = strlen(buf);
- return buf;
+ // grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ // char mybuf[1024] = {0,};
+ // size_t sizebuf = 1024;
+ // long result;
+ // grib_trie* list = load_dictionary(h->context, g, err);
+ // if ((*err = grib_get_string_internal(h, e->key, mybuf, &sizebuf)) != GRIB_SUCCESS)
+ // return NULL;
+ // if (grib_trie_get(list, mybuf))
+ // result = 1;
+ // else
+ // result = 0;
+ // snprintf(buf, 32, "%ld", result);
+ // *size = strlen(buf);
+ // return buf;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ const grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
printf("access('%s", e->key);
if (f) {
long s = 0;
@@ -242,8 +228,8 @@ static int native_type(grib_expression* g, grib_handle* h)
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
- grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
- grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->key);
+ const grib_expression_is_in_dict* e = (grib_expression_is_in_dict*)g;
+ grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->key);
if (!observed) {
/* grib_context_log(observer->context, GRIB_LOG_ERROR, */
diff --git a/src/grib_expression_class_is_in_list.cc b/src/grib_expression_class_is_in_list.cc
index 4a6c3dc3b..f5339c309 100644
--- a/src/grib_expression_class_is_in_list.cc
+++ b/src/grib_expression_class_is_in_list.cc
@@ -40,20 +40,14 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_is_in_list{
grib_expression base;
@@ -68,7 +62,6 @@ static grib_expression_class _grib_expression_class_is_in_list = {
"is_in_list", /* name */
sizeof(grib_expression_is_in_list),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -82,10 +75,6 @@ static grib_expression_class _grib_expression_class_is_in_list = {
grib_expression_class* grib_expression_class_is_in_list = &_grib_expression_class_is_in_list;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
@@ -147,15 +136,15 @@ static grib_trie* load_list(grib_context* c, grib_expression* e, int* err)
static const char* get_name(grib_expression* g)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ const grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
return e->name;
}
static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
- int err = 0;
- char mybuf[1024] = {0,};
+ const grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ int err = 0;
+ char mybuf[1024] = {0,};
size_t size = 1024;
grib_trie* list = load_list(h->context, g, &err);
@@ -173,28 +162,25 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
- int err = 0;
- char mybuf[1024] = {0,};
- size_t size = 1024;
-
- grib_trie* list = load_list(h->context, g, &err);
-
- if ((err = grib_get_string_internal(h, e->name, mybuf, &size)) != GRIB_SUCCESS)
- return err;
-
- if (grib_trie_get(list, mybuf))
- *result = 1;
- else
- *result = 0;
-
- return err;
+ return GRIB_NOT_IMPLEMENTED;
+ // grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ // int err = 0;
+ // char mybuf[1024] = {0,};
+ // size_t size = 1024;
+ // grib_trie* list = load_list(h->context, g, &err);
+ // if ((err = grib_get_string_internal(h, e->name, mybuf, &size)) != GRIB_SUCCESS)
+ // return err;
+ // if (grib_trie_get(list, mybuf))
+ // *result = 1;
+ // else
+ // *result = 0;
+ // return err;
}
static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
- char mybuf[1024] = {0,};
+ const grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ char mybuf[1024] = {0,};
size_t sizebuf = 1024;
long result;
@@ -215,7 +201,7 @@ static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, siz
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ const grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
printf("access('%s", e->name);
if (f) {
long s = 0;
@@ -231,8 +217,8 @@ static void destroy(grib_context* c, grib_expression* g)
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
- grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
- grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
+ const grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
+ grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
if (!observed) {
/* grib_context_log(observer->context, GRIB_LOG_ERROR, */
@@ -256,7 +242,7 @@ grib_expression* new_is_in_list_expression(grib_context* c, const char* name, co
static int native_type(grib_expression* g, grib_handle* h)
{
grib_expression_is_in_list* e = (grib_expression_is_in_list*)g;
- int type = 0;
+ int type = 0;
int err;
if ((err = grib_get_native_type(h, e->name, &type)) != GRIB_SUCCESS)
grib_context_log(h->context, GRIB_LOG_ERROR,
diff --git a/src/grib_expression_class_is_integer.cc b/src/grib_expression_class_is_integer.cc
index c42ae9f86..da81cc4cb 100644
--- a/src/grib_expression_class_is_integer.cc
+++ b/src/grib_expression_class_is_integer.cc
@@ -41,20 +41,14 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_is_integer{
grib_expression base;
@@ -70,7 +64,6 @@ static grib_expression_class _grib_expression_class_is_integer = {
"is_integer", /* name */
sizeof(grib_expression_is_integer),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -84,26 +77,21 @@ static grib_expression_class _grib_expression_class_is_integer = {
grib_expression_class* grib_expression_class_is_integer = &_grib_expression_class_is_integer;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static const char* get_name(grib_expression* g)
{
- grib_expression_is_integer* e = (grib_expression_is_integer*)g;
+ const grib_expression_is_integer* e = (grib_expression_is_integer*)g;
return e->name;
}
static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
{
grib_expression_is_integer* e = (grib_expression_is_integer*)g;
- int err = 0;
- char mybuf[1024] = {0,};
+ int err = 0;
+ char mybuf[1024] = {0,};
size_t size = 1024;
char* p = 0;
- long val = 0;
char* start = 0;
if ((err = grib_get_string_internal(h, e->name, mybuf, &size)) != GRIB_SUCCESS)
@@ -114,23 +102,22 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
if (e->length > 0)
start[e->length] = 0;
- val = strtol(start, &p, 10);
+ strtol(start, &p, 10);
if (*p != 0)
*result = 0;
else
*result = 1;
- (void)val;
return err;
}
static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
{
- int err = 0;
+ int err = 0;
long lresult = 0;
- err = evaluate_long(g, h, &lresult);
+ err = evaluate_long(g, h, &lresult);
*result = lresult;
return err;
}
@@ -155,14 +142,14 @@ static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, siz
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_is_integer* e = (grib_expression_is_integer*)g;
- printf("access('%s", e->name);
- if (f) {
- long s = 0;
- grib_get_long(f, e->name, &s);
- printf("=%ld", s);
- }
- printf("')");
+ // grib_expression_is_integer* e = (grib_expression_is_integer*)g;
+ // printf("access('%s", e->name);
+ // if (f) {
+ // long s = 0;
+ // grib_get_long(f, e->name, &s);
+ // printf("=%ld", s);
+ // }
+ // printf("')");
}
static void destroy(grib_context* c, grib_expression* g)
@@ -174,7 +161,7 @@ static void destroy(grib_context* c, grib_expression* g)
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
- grib_expression_is_integer* e = (grib_expression_is_integer*)g;
+ const grib_expression_is_integer* e = (grib_expression_is_integer*)g;
grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
if (!observed) {
diff --git a/src/grib_expression_class_length.cc b/src/grib_expression_class_length.cc
index c685f2186..c9e967c77 100644
--- a/src/grib_expression_class_length.cc
+++ b/src/grib_expression_class_length.cc
@@ -41,20 +41,14 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-static string get_name(grib_expression* e);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static string get_name(grib_expression* e);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_length{
grib_expression base;
@@ -70,7 +64,6 @@ static grib_expression_class _grib_expression_class_length = {
"length", /* name */
sizeof(grib_expression_length),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -84,23 +77,19 @@ static grib_expression_class _grib_expression_class_length = {
grib_expression_class* grib_expression_class_length = &_grib_expression_class_length;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static const char* get_name(grib_expression* g)
{
- grib_expression_length* e = (grib_expression_length*)g;
+ const grib_expression_length* e = (grib_expression_length*)g;
return e->name;
}
static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
{
- grib_expression_length* e = (grib_expression_length*)g;
- int err = 0;
- char mybuf[1024] = {0,};
+ const grib_expression_length* e = (grib_expression_length*)g;
+ int err = 0;
+ char mybuf[1024] = {0,};
size_t size = 1024;
if ((err = grib_get_string_internal(h, e->name, mybuf, &size)) != GRIB_SUCCESS)
return err;
@@ -111,10 +100,10 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* result)
static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
{
- grib_expression_length* e = (grib_expression_length*)g;
- char mybuf[1024] = {0,};
+ const grib_expression_length* e = (grib_expression_length*)g;
+ char mybuf[1024] = {0,};
size_t size = 1024;
- int err = 0;
+ int err = 0;
if ((err = grib_get_string_internal(h, e->name, mybuf, &size)) != GRIB_SUCCESS)
return err;
@@ -124,8 +113,8 @@ static int evaluate_double(grib_expression* g, grib_handle* h, double* result)
static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_length* e = (grib_expression_length*)g;
- char mybuf[1024] = {0,};
+ const grib_expression_length* e = (grib_expression_length*)g;
+ char mybuf[1024] = {0,};
Assert(buf);
if ((*err = grib_get_string_internal(h, e->name, mybuf, size)) != GRIB_SUCCESS)
return NULL;
@@ -136,7 +125,7 @@ static string evaluate_string(grib_expression* g, grib_handle* h, char* buf, siz
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_length* e = (grib_expression_length*)g;
+ const grib_expression_length* e = (grib_expression_length*)g;
printf("access('%s", e->name);
if (f) {
long s = 0;
@@ -154,8 +143,8 @@ static void destroy(grib_context* c, grib_expression* g)
static void add_dependency(grib_expression* g, grib_accessor* observer)
{
- grib_expression_length* e = (grib_expression_length*)g;
- grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
+ const grib_expression_length* e = (grib_expression_length*)g;
+ grib_accessor* observed = grib_find_accessor(grib_handle_of_accessor(observer), e->name);
if (!observed) {
/* grib_context_log(observer->context, GRIB_LOG_ERROR, */
@@ -170,8 +159,8 @@ static void add_dependency(grib_expression* g, grib_accessor* observer)
grib_expression* new_length_expression(grib_context* c, const char* name)
{
grib_expression_length* e = (grib_expression_length*)grib_context_malloc_clear_persistent(c, sizeof(grib_expression_length));
- e->base.cclass = grib_expression_class_length;
- e->name = grib_context_strdup_persistent(c, name);
+ e->base.cclass = grib_expression_class_length;
+ e->name = grib_context_strdup_persistent(c, name);
return (grib_expression*)e;
}
diff --git a/src/grib_expression_class_logical_and.cc b/src/grib_expression_class_logical_and.cc
index 5cf98db69..902119a5e 100644
--- a/src/grib_expression_class_logical_and.cc
+++ b/src/grib_expression_class_logical_and.cc
@@ -15,7 +15,6 @@
START_CLASS_DEF
CLASS = expression
- IMPLEMENTS = init_class
IMPLEMENTS = destroy
IMPLEMENTS = native_type
IMPLEMENTS = evaluate_long
@@ -39,18 +38,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_logical_and{
grib_expression base;
@@ -65,7 +58,6 @@ static grib_expression_class _grib_expression_class_logical_and = {
"logical_and", /* name */
sizeof(grib_expression_logical_and),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -79,10 +71,6 @@ static grib_expression_class _grib_expression_class_logical_and = {
grib_expression_class* grib_expression_class_logical_and = &_grib_expression_class_logical_and;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
@@ -94,7 +82,6 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
int ret;
grib_expression_logical_and* e = (grib_expression_logical_and*)g;
-
switch (grib_expression_native_type(h, e->left)) {
case GRIB_TYPE_LONG:
ret = grib_expression_evaluate_long(h, e->left, &v1);
@@ -141,11 +128,8 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
long lres = 0;
- int ret = 0;
-
- ret = evaluate_long(g, h, &lres);
+ int ret = evaluate_long(g, h, &lres);
*dres = (double)lres;
-
return ret;
}
diff --git a/src/grib_expression_class_logical_or.cc b/src/grib_expression_class_logical_or.cc
index 75c2a6520..772a73d8a 100644
--- a/src/grib_expression_class_logical_or.cc
+++ b/src/grib_expression_class_logical_or.cc
@@ -15,7 +15,6 @@
START_CLASS_DEF
CLASS = expression
- IMPLEMENTS = init_class
IMPLEMENTS = destroy
IMPLEMENTS = native_type
IMPLEMENTS = evaluate_long
@@ -39,18 +38,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_logical_or{
grib_expression base;
@@ -65,7 +58,6 @@ static grib_expression_class _grib_expression_class_logical_or = {
"logical_or", /* name */
sizeof(grib_expression_logical_or),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -79,10 +71,6 @@ static grib_expression_class _grib_expression_class_logical_or = {
grib_expression_class* grib_expression_class_logical_or = &_grib_expression_class_logical_or;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
@@ -141,11 +129,8 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
long lres = 0;
- int ret = 0;
-
- ret = evaluate_long(g, h, &lres);
+ int ret = evaluate_long(g, h, &lres);
*dres = (double)lres;
-
return ret;
}
@@ -154,7 +139,7 @@ static void print(grib_context* c, grib_expression* g, grib_handle* f)
grib_expression_logical_or* e = (grib_expression_logical_or*)g;
printf("(");
grib_expression_print(c, e->left, f);
- printf(" && ");
+ printf(" || ");
grib_expression_print(c, e->right, f);
printf(")");
}
diff --git a/src/grib_expression_class_long.cc b/src/grib_expression_class_long.cc
index 481e143c8..3b61a83d1 100644
--- a/src/grib_expression_class_long.cc
+++ b/src/grib_expression_class_long.cc
@@ -37,18 +37,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_long{
grib_expression base;
@@ -62,7 +56,6 @@ static grib_expression_class _grib_expression_class_long = {
"long", /* name */
sizeof(grib_expression_long),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -76,29 +69,25 @@ static grib_expression_class _grib_expression_class_long = {
grib_expression_class* grib_expression_class_long = &_grib_expression_class_long;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
- grib_expression_long* e = (grib_expression_long*)g;
- *lres = e->value;
+ const grib_expression_long* e = (grib_expression_long*)g;
+ *lres = e->value;
return GRIB_SUCCESS;
}
static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
- grib_expression_long* e = (grib_expression_long*)g;
- *dres = e->value;
+ const grib_expression_long* e = (grib_expression_long*)g;
+ *dres = e->value;
return GRIB_SUCCESS;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_long* e = (grib_expression_long*)g;
+ const grib_expression_long* e = (grib_expression_long*)g;
printf("long(%ld)", e->value);
}
@@ -115,8 +104,8 @@ static void add_dependency(grib_expression* g, grib_accessor* observer)
grib_expression* new_long_expression(grib_context* c, long value)
{
grib_expression_long* e = (grib_expression_long*)grib_context_malloc_clear_persistent(c, sizeof(grib_expression_long));
- e->base.cclass = grib_expression_class_long;
- e->value = value;
+ e->base.cclass = grib_expression_class_long;
+ e->value = value;
return (grib_expression*)e;
}
diff --git a/src/grib_expression_class_string.cc b/src/grib_expression_class_string.cc
index 1d6734c4c..79d42e247 100644
--- a/src/grib_expression_class_string.cc
+++ b/src/grib_expression_class_string.cc
@@ -36,17 +36,11 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_string{
grib_expression base;
@@ -60,7 +54,6 @@ static grib_expression_class _grib_expression_class_string = {
"string", /* name */
sizeof(grib_expression_string),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -74,22 +67,18 @@ static grib_expression_class _grib_expression_class_string = {
grib_expression_class* grib_expression_class_string = &_grib_expression_class_string;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static const char* evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_string* e = (grib_expression_string*)g;
- *err = 0;
+ const grib_expression_string* e = (grib_expression_string*)g;
+ *err = 0;
return e->value;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_string* e = (grib_expression_string*)g;
+ const grib_expression_string* e = (grib_expression_string*)g;
printf("string('%s')", e->value);
}
diff --git a/src/grib_expression_class_string_compare.cc b/src/grib_expression_class_string_compare.cc
index 8ee196c2e..421669aca 100644
--- a/src/grib_expression_class_string_compare.cc
+++ b/src/grib_expression_class_string_compare.cc
@@ -38,18 +38,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_string_compare{
grib_expression base;
@@ -64,7 +58,6 @@ static grib_expression_class _grib_expression_class_string_compare = {
"string_compare", /* name */
sizeof(grib_expression_string_compare),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -78,10 +71,6 @@ static grib_expression_class _grib_expression_class_string_compare = {
grib_expression_class* grib_expression_class_string_compare = &_grib_expression_class_string_compare;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
/* Note: A fast cut-down version of strcmp which does NOT return -1 */
@@ -100,9 +89,9 @@ GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b)
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
int ret = 0;
- char b1[1024];
+ char b1[1024] = {0,};
size_t l1 = sizeof(b1);
- char b2[1024];
+ char b2[1024] = {0,};
size_t l2 = sizeof(b2);
const char* v1 = NULL;
const char* v2 = NULL;
diff --git a/src/grib_expression_class_sub_string.cc b/src/grib_expression_class_sub_string.cc
index 0a53638bc..a5a0da732 100644
--- a/src/grib_expression_class_sub_string.cc
+++ b/src/grib_expression_class_sub_string.cc
@@ -36,17 +36,11 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static string evaluate_string(grib_expression*,grib_handle*,char*,size_t*,int*);
typedef struct grib_expression_sub_string{
grib_expression base;
@@ -60,7 +54,6 @@ static grib_expression_class _grib_expression_class_sub_string = {
"sub_string", /* name */
sizeof(grib_expression_sub_string),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -74,22 +67,18 @@ static grib_expression_class _grib_expression_class_sub_string = {
grib_expression_class* grib_expression_class_sub_string = &_grib_expression_class_sub_string;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static const char* evaluate_string(grib_expression* g, grib_handle* h, char* buf, size_t* size, int* err)
{
- grib_expression_sub_string* e = (grib_expression_sub_string*)g;
- *err = 0;
+ const grib_expression_sub_string* e = (grib_expression_sub_string*)g;
+ *err = 0;
return e->value;
}
static void print(grib_context* c, grib_expression* g, grib_handle* f)
{
- grib_expression_sub_string* e = (grib_expression_sub_string*)g;
+ const grib_expression_sub_string* e = (grib_expression_sub_string*)g;
printf("string('%s')", e->value);
}
diff --git a/src/grib_expression_class_true.cc b/src/grib_expression_class_true.cc
index a57ce9c60..6b418cb2c 100644
--- a/src/grib_expression_class_true.cc
+++ b/src/grib_expression_class_true.cc
@@ -36,18 +36,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_true{
grib_expression base;
@@ -60,7 +54,6 @@ static grib_expression_class _grib_expression_class_true = {
"true", /* name */
sizeof(grib_expression_true),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -74,10 +67,6 @@ static grib_expression_class _grib_expression_class_true = {
grib_expression_class* grib_expression_class_true = &_grib_expression_class_true;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
diff --git a/src/grib_expression_class_unop.cc b/src/grib_expression_class_unop.cc
index 2abd4dbc9..6188b4586 100644
--- a/src/grib_expression_class_unop.cc
+++ b/src/grib_expression_class_unop.cc
@@ -39,18 +39,12 @@ or edit "expression.class" and rerun ./make_class.pl
typedef const char* string; /* to keep make_class.pl happy */
-
-static void init_class (grib_expression_class*);
-
-static void destroy(grib_context*,grib_expression* e);
-
-static void print(grib_context*,grib_expression*,grib_handle*);
-static void add_dependency(grib_expression* e, grib_accessor* observer);
-
-static int native_type(grib_expression*,grib_handle*);
-
-static int evaluate_long(grib_expression*,grib_handle*,long*);
-static int evaluate_double(grib_expression*,grib_handle*,double*);
+static void destroy(grib_context*,grib_expression* e);
+static void print(grib_context*,grib_expression*,grib_handle*);
+static void add_dependency(grib_expression* e, grib_accessor* observer);
+static int native_type(grib_expression*,grib_handle*);
+static int evaluate_long(grib_expression*,grib_handle*,long*);
+static int evaluate_double(grib_expression*,grib_handle*,double*);
typedef struct grib_expression_unop{
grib_expression base;
@@ -66,7 +60,6 @@ static grib_expression_class _grib_expression_class_unop = {
"unop", /* name */
sizeof(grib_expression_unop),/* size of instance */
0, /* inited */
- &init_class, /* init_class */
0, /* constructor */
&destroy, /* destructor */
&print,
@@ -80,18 +73,13 @@ static grib_expression_class _grib_expression_class_unop = {
grib_expression_class* grib_expression_class_unop = &_grib_expression_class_unop;
-
-static void init_class(grib_expression_class* c)
-{
-}
/* END_CLASS_IMP */
static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
{
- int ret;
- long v = 0;
+ long v = 0;
grib_expression_unop* e = (grib_expression_unop*)g;
- ret = grib_expression_evaluate_long(h, e->exp, &v);
+ int ret = grib_expression_evaluate_long(h, e->exp, &v);
if (ret != GRIB_SUCCESS)
return ret;
*lres = e->long_func(v);
@@ -100,10 +88,9 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres)
static int evaluate_double(grib_expression* g, grib_handle* h, double* dres)
{
- int ret;
- double v = 0;
+ double v = 0;
grib_expression_unop* e = (grib_expression_unop*)g;
- ret = grib_expression_evaluate_double(h, e->exp, &v);
+ int ret = grib_expression_evaluate_double(h, e->exp, &v);
if (ret != GRIB_SUCCESS)
return ret;
*dres = e->double_func ? e->double_func(v) : e->long_func(v);
diff --git a/src/grib_expression_factory.h b/src/grib_expression_factory.h
index 0f5cd83bb..7cacd3ac1 100644
--- a/src/grib_expression_factory.h
+++ b/src/grib_expression_factory.h
@@ -1,8 +1,6 @@
/* This file is automatically generated by ./make_class.pl, do not edit */
{ "accessor", &grib_expression_class_accessor, },
{ "binop", &grib_expression_class_binop, },
-{ "column", &grib_expression_class_column, },
-{ "constant", &grib_expression_class_constant, },
{ "double", &grib_expression_class_double, },
{ "functor", &grib_expression_class_functor, },
{ "is_in_dict", &grib_expression_class_is_in_dict, },
diff --git a/src/grib_fieldset.cc b/src/grib_fieldset.cc
index 88eabeb7b..72cb928c6 100644
--- a/src/grib_fieldset.cc
+++ b/src/grib_fieldset.cc
@@ -73,8 +73,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
set->columns[id].long_values = (long*)grib_context_malloc_clear(c, sizeof(long) * GRIB_START_ARRAY_SIZE);
if (!set->columns[id].long_values) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_new_column: Cannot malloc %ld bytes",
- sizeof(long) * GRIB_START_ARRAY_SIZE);
+ "%s: Error allocating %zu bytes", __func__, sizeof(long) * GRIB_START_ARRAY_SIZE);
err = GRIB_OUT_OF_MEMORY;
return err;
}
@@ -83,8 +82,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
set->columns[id].double_values = (double*)grib_context_malloc_clear(c, sizeof(double) * GRIB_START_ARRAY_SIZE);
if (!set->columns[id].double_values) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_new_column: Cannot malloc %ld bytes",
- sizeof(double) * GRIB_START_ARRAY_SIZE);
+ "%s: Error allocating %zu bytes", __func__, sizeof(double) * GRIB_START_ARRAY_SIZE);
err = GRIB_OUT_OF_MEMORY;
return err;
}
@@ -93,8 +91,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
set->columns[id].string_values = (char**)grib_context_malloc_clear(c, sizeof(char*) * GRIB_START_ARRAY_SIZE);
if (!set->columns[id].string_values) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_new_column: Cannot malloc %ld bytes",
- sizeof(char*) * GRIB_START_ARRAY_SIZE);
+ "%s: Error allocating %zu bytes", __func__, sizeof(char*) * GRIB_START_ARRAY_SIZE);
err = GRIB_OUT_OF_MEMORY;
return err;
}
@@ -171,8 +168,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
newsize * sizeof(long));
if (!newlongs) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_columns_resize: Cannot malloc %ld bytes",
- newsize - set->columns[i].values_array_size);
+ "%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
return GRIB_OUT_OF_MEMORY;
}
else
@@ -183,8 +179,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
newsize * sizeof(double));
if (!newdoubles) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_columns_resize: Cannot malloc %ld bytes",
- newsize - set->columns[i].values_array_size);
+ "%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
return GRIB_OUT_OF_MEMORY;
}
else
@@ -195,8 +190,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
newsize * sizeof(char*));
if (!newstrings) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_columns_resize: Cannot malloc %ld bytes",
- newsize - set->columns[i].values_array_size);
+ "%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
return GRIB_OUT_OF_MEMORY;
}
else
@@ -206,8 +200,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
newerrors = (int*)grib_context_realloc(c, set->columns[i].errors, newsize * sizeof(int));
if (!newerrors) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_columns_resize: Cannot malloc %ld bytes",
- newsize * sizeof(int));
+ "%s: Error allocating %zu bytes", __func__, newsize * sizeof(int));
return GRIB_OUT_OF_MEMORY;
}
else
@@ -332,8 +325,7 @@ static grib_fieldset* grib_fieldset_create_from_keys(grib_context* c, const char
msize = sizeof(grib_fieldset);
set = (grib_fieldset*)grib_context_malloc_clear(c, msize);
if (!set) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_fieldset_create_from_keys: Cannot malloc %lu bytes", msize);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", __func__, msize);
return NULL;
}
@@ -357,7 +349,7 @@ static grib_fieldset* grib_fieldset_create_from_keys(grib_context* c, const char
set->columns = (grib_column*)grib_context_malloc_clear(c, sizeof(grib_column) * nkeys);
if (!set->columns) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_fieldset_create_from_keys: memory allocation error");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: memory allocation error", __func__);
*err = GRIB_OUT_OF_MEMORY;
return NULL;
}
@@ -417,7 +409,6 @@ int grib_fieldset_apply_where(grib_fieldset* set, const char* where_string)
// grib_math* m = NULL;
// m = grib_math_new(set->context, where_string, &err);
// if (err || !m) return err;
-
// print_math(m);
// printf("\n");
// grib_math_delete(set->context, m);
@@ -816,8 +807,7 @@ static int grib_fieldset_resize_int_array(grib_int_array* a, size_t newsize)
el = (int*)grib_context_realloc(a->context, a->el, newsize);
if (!el) {
grib_context_log(a->context, GRIB_LOG_ERROR,
- "grib_fieldset_resize_int_array: Cannot malloc %lu bytes",
- newsize);
+ "%s: Error allocating %zu bytes", __func__, newsize);
return GRIB_OUT_OF_MEMORY;
}
else
@@ -860,8 +850,7 @@ static int grib_fieldset_resize_fields(grib_fieldset* set, size_t newsize)
fields = (grib_field**)grib_context_realloc(set->context, set->fields, newsize * sizeof(grib_field*));
if (!fields) {
grib_context_log(set->context, GRIB_LOG_ERROR,
- "grib_fieldset_resize_fields: Cannot malloc %lu bytes",
- newsize * sizeof(grib_field*));
+ "%s: Error allocating %zu bytes", __func__, newsize * sizeof(grib_field*));
return GRIB_OUT_OF_MEMORY;
}
else
diff --git a/src/grib_filepool.cc b/src/grib_filepool.cc
index 2282fe3eb..28606e8c9 100644
--- a/src/grib_filepool.cc
+++ b/src/grib_filepool.cc
@@ -132,10 +132,10 @@ void grib_file_pool_clean()
// return grib_write_file(fh, file->next);
// }
-grib_file* grib_file_pool_get_files()
-{
- return file_pool.first;
-}
+// grib_file* grib_file_pool_get_files()
+// {
+// return file_pool.first;
+// }
// int grib_file_pool_read(grib_context* c, FILE* fh)
// {
@@ -344,6 +344,11 @@ grib_file* grib_get_file(const char* filename, int* err)
{
grib_file* file = NULL;
+ if (!file_pool.current) {
+ *err = GRIB_IO_PROBLEM;
+ return NULL;
+ }
+
if (file_pool.current->name && !grib_inline_strcmp(filename, file_pool.current->name)) {
return file_pool.current;
}
diff --git a/src/grib_geography.cc b/src/grib_geography.cc
index d70945d32..844a38abb 100644
--- a/src/grib_geography.cc
+++ b/src/grib_geography.cc
@@ -16,7 +16,6 @@
#include
#include
-#define NUMBER(x) (sizeof(x) / sizeof(x[0]))
#define MAXITER 10
#define RAD2DEG 57.29577951308232087684 /* 180 over pi */
@@ -28,7 +27,7 @@
static void gauss_first_guess(long trunc, double* vals)
{
- long i = 0, numVals;
+ long i = 0, numVals;
static double gvals[] = {
2.4048255577E0,
5.5200781103E0,
@@ -82,7 +81,7 @@ static void gauss_first_guess(long trunc, double* vals)
156.2950342685E0,
};
- numVals = NUMBER(gvals);
+ numVals = sizeof(gvals) / sizeof(gvals[0]);
for (i = 0; i < trunc; i++) {
if (i < numVals)
vals[i] = gvals[i];
diff --git a/src/grib_handle.cc b/src/grib_handle.cc
index be5cdecda..732537f12 100644
--- a/src/grib_handle.cc
+++ b/src/grib_handle.cc
@@ -10,14 +10,13 @@
/***************************************************************************
* Jean Baptiste Filippi - 01.11.2005 *
- * Enrico Fucile *
***************************************************************************/
#include "grib_api_internal.h"
static grib_handle* grib_handle_new_from_file_no_multi(grib_context* c, FILE* f, int headers_only, int* error);
static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, int* error);
-static int grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsigned char** secbegin, size_t* seclen, int* secnum, int* err);
-static int grib2_has_next_section(unsigned char* msgbegin, size_t msglen, unsigned char* secbegin, size_t seclen, int* err);
+static bool grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsigned char** secbegin, size_t* seclen, int* secnum, int* err);
+static bool grib2_has_next_section(unsigned char* msgbegin, size_t msglen, unsigned char* secbegin, size_t seclen, int* err);
static void grib2_build_message(grib_context* context, unsigned char* sections[], size_t sections_len[], void** data, size_t* msglen);
static grib_multi_support* grib_get_multi_support(grib_context* c, FILE* f);
static grib_multi_support* grib_multi_support_new(grib_context* c);
@@ -153,14 +152,14 @@ grib_handle* grib_new_handle(grib_context* c)
g = (grib_handle*)grib_context_malloc_clear(c, sizeof(grib_handle));
if (g == NULL) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_new_handle: cannot allocate handle");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot allocate handle", __func__);
}
else {
g->context = c;
g->product_kind = PRODUCT_ANY; /* Default. Will later be set to a specific product */
}
- grib_context_log(c, GRIB_LOG_DEBUG, "grib_new_handle: allocated handle %p", (void*)g);
+ grib_context_log(c, GRIB_LOG_DEBUG, "%s: Allocated handle %p", __func__, (void*)g);
return g;
}
@@ -185,13 +184,13 @@ static grib_handle* grib_handle_create(grib_handle* gl, grib_context* c, const v
gl->root = grib_create_root_section(gl->context, gl);
if (!gl->root) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_create: cannot create root section");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create root section", __func__);
grib_handle_delete(gl);
return NULL;
}
if (!gl->context->grib_reader || !gl->context->grib_reader->first) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_create: cannot create handle, no definitions found");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle, no definitions found", __func__);
grib_handle_delete(gl);
return NULL;
}
@@ -228,13 +227,14 @@ grib_handle* codes_handle_new_from_samples(grib_context* c, const char* name)
fprintf(stderr, "ECCODES DEBUG codes_handle_new_from_samples '%s'\n", name);
}
- g = codes_external_template(c, PRODUCT_ANY, name);
- if (!g)
+ g = codes_external_sample(c, PRODUCT_ANY, name);
+ if (!g) {
grib_context_log(c, GRIB_LOG_ERROR,
"Unable to load sample file '%s.tmpl'\n"
" from %s\n"
" (ecCodes Version=%s)",
name, c->grib_samples_path, ECCODES_VERSION_STR);
+ }
return g;
}
@@ -255,7 +255,7 @@ grib_handle* grib_handle_new_from_samples(grib_context* c, const char* name)
fprintf(stderr, "ECCODES DEBUG grib_handle_new_from_samples '%s'\n", name);
}
- g = codes_external_template(c, PRODUCT_GRIB, name);
+ g = codes_external_sample(c, PRODUCT_GRIB, name);
if (!g)
grib_context_log(c, GRIB_LOG_ERROR,
"Unable to load GRIB sample file '%s.tmpl'\n"
@@ -278,13 +278,14 @@ grib_handle* codes_bufr_handle_new_from_samples(grib_context* c, const char* nam
fprintf(stderr, "ECCODES DEBUG bufr_handle_new_from_samples '%s'\n", name);
}
- g = codes_external_template(c, PRODUCT_BUFR, name);
- if (!g)
+ g = codes_external_sample(c, PRODUCT_BUFR, name);
+ if (!g) {
grib_context_log(c, GRIB_LOG_ERROR,
"Unable to load BUFR sample file '%s.tmpl'\n"
" from %s\n"
" (ecCodes Version=%s)",
name, c->grib_samples_path, ECCODES_VERSION_STR);
+ }
return g;
}
@@ -326,6 +327,98 @@ grib_handle* grib_handle_clone(const grib_handle* h)
return result;
}
+static bool can_create_clone_headers_only(const grib_handle* h)
+{
+ // Only for GRIB, not BUFR etc
+ if (h->product_kind != PRODUCT_GRIB) return false;
+
+ // Spectral data does not have constant fields!
+ long isGridded = 0;
+ int err = grib_get_long(h, "isGridded", &isGridded);
+ if (err || !isGridded) return false;
+
+ return true;
+}
+
+// Clone the message but not its Bitmap and Data sections (only the meta-data)
+grib_handle* grib_handle_clone_headers_only(const grib_handle* h)
+{
+ int err = 0;
+ grib_handle* result = NULL;
+ grib_context* c = h->context;
+
+ if (!can_create_clone_headers_only(h)) {
+ // Headers-only clone not possible. Do a normal clone
+ return grib_handle_clone(h);
+ }
+
+ char sample_name[1024];
+ long edition = 0;
+ grib_get_long(h, "edition", &edition);
+ snprintf(sample_name, sizeof(sample_name), "GRIB%ld", edition);
+ grib_handle* h_sample = grib_handle_new_from_samples(c, sample_name);
+ if (!h_sample) {
+ grib_context_log(c, GRIB_LOG_ERROR, "Failed to create headers_only clone using sample %s", sample_name);
+ return NULL;
+ }
+
+ // Must preserve the packingType
+ char input_packing_type[100];
+ size_t len = sizeof(input_packing_type);
+ err = grib_get_string(h, "packingType", input_packing_type, &len);
+ if (!err) {
+ grib_set_string(h_sample, "packingType", input_packing_type, &len);
+ }
+
+ // Copy all sections except Bitmap and Data from h to h_sample
+ const int sections_to_copy = GRIB_SECTION_PRODUCT | GRIB_SECTION_LOCAL | GRIB_SECTION_GRID;
+ result = grib_util_sections_copy((grib_handle*)h, h_sample, sections_to_copy, &err);
+ if (!result || err) {
+ grib_context_log(c, GRIB_LOG_ERROR, "%s failed: Unable to copy sections (%s)", __func__, grib_get_error_message(err));
+ grib_handle_delete(h_sample);
+ return NULL;
+ }
+
+ grib_handle_delete(h_sample);
+ return result;
+}
+
+// grib_handle* grib_handle_clone_headers_only(const grib_handle* h)
+// {
+// int err = 0;
+// size_t size1 = 0;
+// const void* msg1 = NULL;
+// long edition = 0;
+// // Only for GRIB, not BUFR etc
+// if (h->product_kind != PRODUCT_GRIB) {
+// grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Only supported for %s",
+// __func__, codes_get_product_name(PRODUCT_GRIB));
+// return NULL;
+// }
+// err = grib_get_long(h, "edition", &edition);
+// if (!err && edition == 1) {
+// grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Edition not supported", __func__);
+// return NULL;
+// }
+// err = grib_get_message_headers(h, &msg1, &size1);
+// if (err) return NULL;
+// size1 += 4;
+// grib_handle* result = grib_handle_new_from_partial_message_copy(h->context, msg1, size1);
+// result->buffer->data[ size1 - 4 ] = '7';
+// result->buffer->data[ size1 - 3 ] = '7';
+// result->buffer->data[ size1 - 2 ] = '7';
+// result->buffer->data[ size1 - 1 ] = '7';
+// result->buffer->ulength = size1;
+// result->product_kind = h->product_kind;
+// long off = 64; // This is only true for GRIB edition 2
+// err = grib_encode_unsigned_long( result->buffer->data, (unsigned long)size1, &off, 64);
+// if (err) {
+// printf("err=%s\n", grib_get_error_message(err));
+// return NULL;
+// }
+// return result;
+// }
+
grib_handle* codes_handle_new_from_file(grib_context* c, FILE* f, ProductKind product, int* error)
{
if (product == PRODUCT_GRIB)
@@ -336,6 +429,8 @@ grib_handle* codes_handle_new_from_file(grib_context* c, FILE* f, ProductKind pr
return metar_new_from_file(c, f, error);
if (product == PRODUCT_GTS)
return gts_new_from_file(c, f, error);
+ //if (product == PRODUCT_TAF)
+ // return taf_new_from_file(c, f, error);
if (product == PRODUCT_ANY)
return any_new_from_file(c, f, error);
@@ -420,7 +515,7 @@ grib_handle* grib_handle_new_from_partial_message_copy(grib_context* c, const vo
memcpy(copy, data, size);
- g = grib_handle_new_from_partial_message(c, copy, size);
+ g = grib_handle_new_from_partial_message(c, copy, size);
g->buffer->property = CODES_MY_BUFFER;
return g;
@@ -457,7 +552,7 @@ grib_handle* grib_handle_new_from_message(grib_context* c, const void* data, siz
if (h->product_kind == PRODUCT_GRIB) {
if (!grib_is_defined(h, "7777")) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new_from_message: No final 7777 in message!");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: No final 7777 in message!", __func__);
/* TODO: Return NULL. An incomplete message is no use to anyone.
* But first check the MARS Client and other applications
*/
@@ -503,7 +598,8 @@ static grib_handle* grib_handle_new_multi(grib_context* c, unsigned char** data,
long edition = 0;
size_t seclen = 0;
unsigned char* secbegin = 0;
- int secnum = 0, seccount = 0;
+ int secnum = 0;
+ // int seccount = 0;
int err = 0, i = 0;
grib_multi_support* gm = NULL;
@@ -537,9 +633,9 @@ static grib_handle* grib_handle_new_multi(grib_context* c, unsigned char** data,
secbegin = gm->sections[gm->section_number];
seclen = gm->sections_length[gm->section_number];
secnum = gm->section_number;
- seccount = 0;
+ // seccount = 0;
while (grib2_get_next_section((unsigned char*)message, olen, &secbegin, &seclen, &secnum, &err)) {
- seccount++;
+ // seccount++;
/*printf(" - %d - section %d length=%d\n",(int)seccount,(int)secnum,(int)seclen);*/
gm->sections[secnum] = secbegin;
@@ -550,7 +646,7 @@ static grib_handle* grib_handle_new_multi(grib_context* c, unsigned char** data,
if (grib_decode_unsigned_byte_long(secbegin, 5, 1) == 254) {
if (!gm->bitmap_section) {
grib_context_log(c, GRIB_LOG_ERROR,
- "grib_handle_new_multi : cannot create handle, missing bitmap\n");
+ "%s: Cannot create handle, missing bitmap", __func__);
return NULL;
}
gm->sections[secnum] = gm->bitmap_section;
@@ -603,7 +699,7 @@ static grib_handle* grib_handle_new_multi(grib_context* c, unsigned char** data,
gl = grib_handle_new_from_message(c, message, olen);
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new_multi: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
return NULL;
}
@@ -622,7 +718,8 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in
long edition = 0;
size_t seclen = 0;
unsigned char* secbegin = 0;
- int secnum = 0, seccount = 0;
+ int secnum = 0;
+ // int seccount = 0;
int err = 0, i = 0;
grib_multi_support* gm = NULL;
off_t gts_header_offset = 0;
@@ -690,9 +787,9 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in
secbegin = gm->sections[gm->section_number];
seclen = gm->sections_length[gm->section_number];
secnum = gm->section_number;
- seccount = 0;
+ // seccount = 0;
while (grib2_get_next_section((unsigned char*)data, olen, &secbegin, &seclen, &secnum, &err)) {
- seccount++;
+ // seccount++;
/*printf(" - %d - section %d length=%d\n",(int)seccount,(int)secnum,(int)seclen);*/
gm->sections[secnum] = secbegin;
@@ -702,7 +799,7 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in
/* Special case for inherited bitmaps */
if (grib_decode_unsigned_byte_long(secbegin, 5, 1) == 254) {
if (!gm->bitmap_section) {
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new_from_file_multi: cannot create handle, missing bitmap\n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle, missing bitmap", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -746,7 +843,7 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in
}
else if (edition == 3) {
/* GRIB3: Multi-field mode not yet supported */
- printf("WARNING: %s\n", "grib_handle_new_from_file_multi: GRIB3 multi-field mode not yet implemented! Reverting to single-field mode");
+ printf("WARNING: %s: GRIB3 multi-field mode not yet implemented! Reverting to single-field mode", __func__);
gm->message_length = 0;
gm->message = NULL;
}
@@ -758,7 +855,7 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in
gl = grib_handle_new_from_message(c, data, olen);
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new_from_file_multi: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -838,7 +935,7 @@ grib_handle* gts_new_from_file(grib_context* c, FILE* f, int* error)
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "gts_new_from_file: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -879,7 +976,7 @@ grib_handle* taf_new_from_file(grib_context* c, FILE* f, int* error)
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "taf_new_from_file: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -920,7 +1017,7 @@ grib_handle* metar_new_from_file(grib_context* c, FILE* f, int* error)
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "metar_new_from_file: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -988,7 +1085,7 @@ grib_handle* bufr_new_from_file(grib_context* c, FILE* f, int* error)
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "bufr_new_from_file: cannot create handle \n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -1040,7 +1137,7 @@ grib_handle* any_new_from_file(grib_context* c, FILE* f, int* error)
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "any_new_from_file : cannot create handle\n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -1113,7 +1210,7 @@ static grib_handle* grib_handle_new_from_file_no_multi(grib_context* c, FILE* f,
if (!gl) {
*error = GRIB_DECODING_ERROR;
- grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new_from_file_no_multi: cannot create handle\n");
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Cannot create handle", __func__);
grib_context_free(c, data);
return NULL;
}
@@ -1149,9 +1246,7 @@ grib_multi_handle* grib_multi_handle_new(grib_context* c)
}
h = (grib_multi_handle*)grib_context_malloc_clear(c, sizeof(grib_multi_handle));
if (h == NULL) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_multi_handle_new: unable to allocate memory. %s",
- grib_get_error_message(GRIB_OUT_OF_MEMORY));
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate memory", __func__);
return NULL;
}
h->buffer = grib_create_growable_buffer(c);
@@ -1163,11 +1258,10 @@ grib_multi_handle* grib_multi_handle_new(grib_context* c)
int grib_multi_handle_delete(grib_multi_handle* h)
{
- if (h == NULL)
- return GRIB_SUCCESS;
-
- grib_buffer_delete(h->context, h->buffer);
- grib_context_free(h->context, h);
+ if (h != NULL) {
+ grib_buffer_delete(h->context, h->buffer);
+ grib_context_free(h->context, h);
+ }
return GRIB_SUCCESS;
}
@@ -1229,11 +1323,11 @@ int grib_multi_handle_write(grib_multi_handle* h, FILE* f)
return GRIB_INVALID_GRIB;
if (fwrite(h->buffer->data, 1, h->buffer->ulength, f) != h->buffer->ulength) {
- grib_context_log(h->context, GRIB_LOG_PERROR, "grib_multi_handle_write writing on file");
+ grib_context_log(h->context, GRIB_LOG_PERROR, "%s failed", __func__);
return GRIB_IO_PROBLEM;
}
- return 0;
+ return GRIB_SUCCESS;
}
int grib_get_partial_message(grib_handle* h, const void** msg, size_t* len, int start_section)
@@ -1297,9 +1391,9 @@ int grib_get_message_offset(const grib_handle* h, off_t* offset)
if (h)
*offset = h->offset;
else
- return GRIB_INTERNAL_ERROR;
+ return GRIB_NULL_HANDLE;
- return 0;
+ return GRIB_SUCCESS;
}
int codes_get_product_kind(const grib_handle* h, ProductKind* product_kind)
@@ -1375,7 +1469,7 @@ int grib_get_message(const grib_handle* ch, const void** msg, size_t* size)
return 0;
}
-int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size)
+int grib_get_message_headers(const grib_handle* h, const void** msg, size_t* size)
{
int err = 0;
size_t endOfHeadersMarker;
@@ -1384,7 +1478,7 @@ int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size)
if ((err = grib_get_offset(h, "endOfHeadersMarker", &endOfHeadersMarker)) != GRIB_SUCCESS) {
grib_context_log(h->context, GRIB_LOG_ERROR,
- "grib_get_message_headers: unable to get offset of endOfHeadersMarker");
+ "%s: Unable to get offset of endOfHeadersMarker", __func__);
return err;
}
@@ -1470,10 +1564,10 @@ int grib_handle_apply_action(grib_handle* h, grib_action* a)
// return GRIB_SUCCESS;
// }
-static int grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsigned char** secbegin, size_t* seclen, int* secnum, int* err)
+static bool grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsigned char** secbegin, size_t* seclen, int* secnum, int* err)
{
if (!grib2_has_next_section(msgbegin, msglen, *secbegin, *seclen, err))
- return 0;
+ return false;
*secbegin += *seclen;
*seclen = grib_decode_unsigned_byte_long(*secbegin, 0, 4);
@@ -1481,12 +1575,12 @@ static int grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsign
if (*secnum < 1 || *secnum > 7) {
*err = GRIB_INVALID_SECTION_NUMBER;
- return 0;
+ return false;
}
- return 1;
+ return true;
}
-static int grib2_has_next_section(unsigned char* msgbegin, size_t msglen, unsigned char* secbegin, size_t seclen, int* err)
+static bool grib2_has_next_section(unsigned char* msgbegin, size_t msglen, unsigned char* secbegin, size_t seclen, int* err)
{
long next_seclen;
*err = 0;
@@ -1498,12 +1592,12 @@ static int grib2_has_next_section(unsigned char* msgbegin, size_t msglen, unsign
*err = GRIB_SUCCESS;
else
*err = GRIB_7777_NOT_FOUND;
- return 0;
+ return false;
}
/*secbegin += seclen;*/
- return 1;
+ return true;
}
static void grib2_build_message(grib_context* context, unsigned char* sections[], size_t sections_len[], void** data, size_t* len)
@@ -1544,10 +1638,8 @@ static void grib2_build_message(grib_context* context, unsigned char* sections[]
/* For multi support mode: Reset all file handles equal to f. See GRIB-249 */
void grib_multi_support_reset_file(grib_context* c, FILE* f)
{
- grib_multi_support* gm = NULL;
- if (!c)
- c = grib_context_get_default();
- gm = c->multi_support;
+ if (!c) c = grib_context_get_default();
+ grib_multi_support* gm = c->multi_support;
while (gm) {
if (gm->file == f) {
gm->file = NULL;
@@ -1596,28 +1688,30 @@ static grib_multi_support* grib_get_multi_support(grib_context* c, FILE* f)
void grib_multi_support_reset(grib_context* c)
{
- grib_multi_support* gm = c->multi_support;
- grib_multi_support* next = NULL;
- int i = 0;
- while (next) {
- next = gm->next;
+ if (!c) c = grib_context_get_default();
+ const int GRIB2_END_SECTION = 8;
+
+ grib_multi_support* gm = c->multi_support;
+ while (gm) {
if (gm->file)
fclose(gm->file);
if (gm->message)
grib_context_free(c, gm->message);
gm->message = NULL;
- for (i = 0; i < 8; i++)
+ for (int i = 0; i < GRIB2_END_SECTION; i++)
gm->sections[i] = 0;
if (gm->bitmap_section)
grib_context_free(c, gm->bitmap_section);
gm->bitmap_section = NULL;
- grib_context_free(c, gm);
- gm = NULL;
+ //grib_context_free(c, gm);
+ gm = gm->next;
}
}
static grib_multi_support* grib_multi_support_new(grib_context* c)
{
+ // GRIB edition 2 has 9 sections ( 0 to 8 )
+ const int GRIB2_END_SECTION = 8;
int i = 0;
grib_multi_support* gm =
(grib_multi_support*)grib_context_malloc_clear(c, sizeof(grib_multi_support));
@@ -1629,9 +1723,10 @@ static grib_multi_support* grib_multi_support_new(grib_context* c)
gm->section_number = 0;
gm->next = 0;
gm->sections_length[0] = 16;
- for (i = 1; i < 8; i++)
+
+ for (i = 1; i < GRIB2_END_SECTION; i++)
gm->sections_length[i] = 0;
- gm->sections_length[8] = 4;
+ gm->sections_length[GRIB2_END_SECTION] = 4; // The 7777
return gm;
}
diff --git a/src/grib_hash_array.cc b/src/grib_hash_array.cc
index 54ba4294f..ec556c904 100644
--- a/src/grib_hash_array.cc
+++ b/src/grib_hash_array.cc
@@ -30,19 +30,19 @@ grib_hash_array_value* grib_integer_hash_array_value_new(grib_context* c, const
// return v;
// }
-void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v)
-{
- switch (v->type) {
- case GRIB_HASH_ARRAY_TYPE_INTEGER:
- grib_iarray_delete(v->iarray);
- break;
- case GRIB_HASH_ARRAY_TYPE_DOUBLE:
- grib_darray_delete(c, v->darray);
- break;
- default:
- grib_context_log(c, GRIB_LOG_ERROR,
- "wrong type in grib_hash_array_value_delete");
- }
- grib_context_free_persistent(c, v->name);
- grib_context_free_persistent(c, v);
-}
+// void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v)
+// {
+// switch (v->type) {
+// case GRIB_HASH_ARRAY_TYPE_INTEGER:
+// grib_iarray_delete(v->iarray);
+// break;
+// case GRIB_HASH_ARRAY_TYPE_DOUBLE:
+// grib_darray_delete(c, v->darray);
+// break;
+// default:
+// grib_context_log(c, GRIB_LOG_ERROR,
+// "wrong type in grib_hash_array_value_delete");
+// }
+// grib_context_free_persistent(c, v->name);
+// grib_context_free_persistent(c, v);
+// }
diff --git a/src/grib_hash_keys.cc b/src/grib_hash_keys.cc
index c5407cab7..ba26dbe03 100644
--- a/src/grib_hash_keys.cc
+++ b/src/grib_hash_keys.cc
@@ -31,15 +31,15 @@
#include "grib_api_internal.h"
-struct grib_keys_hash { char* name; int id;};
+struct grib_keys_hash { const char* name; int id;};
#include
-#define TOTAL_KEYWORDS 2486
+#define TOTAL_KEYWORDS 2535
#define MIN_WORD_LENGTH 1
#define MAX_WORD_LENGTH 74
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 30696
-/* maximum key range = 30694, duplicates = 0 */
+#define MIN_HASH_VALUE 5
+#define MAX_HASH_VALUE 31933
+/* maximum key range = 31929, duplicates = 0 */
#ifdef __GNUC__
__inline
@@ -49,38 +49,38 @@ inline
#endif
#endif
static unsigned int
-hash_keys (const char *str, size_t len)
+hash_keys ( const char *str, size_t len)
{
static const unsigned short asso_values[] =
{
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 2, 30697, 30697, 1, 30697, 30697, 60, 2144,
- 1488, 1414, 1282, 1945, 2131, 2782, 4, 83, 2, 1,
- 1, 30697, 30697, 30697, 30697, 1406, 5347, 2917, 173, 2354,
- 207, 4643, 3405, 1479, 445, 31, 308, 2021, 789, 247,
- 924, 212, 542, 140, 85, 4819, 1866, 4035, 699, 5481,
- 1, 1, 2, 30697, 30697, 1590, 30697, 5, 697, 54,
- 1, 2, 123, 254, 109, 10, 2434, 3862, 71, 7,
- 1, 20, 29, 975, 1, 8, 4, 65, 270, 177,
- 1423, 7, 2285, 260, 1415, 2, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 4, 31934, 31934, 3, 31934, 31934, 128, 2530,
+ 2404, 2966, 1876, 4070, 2455, 1706, 29, 8, 3, 2,
+ 2, 31934, 31934, 31934, 31934, 1215, 5157, 2523, 271, 2023,
+ 345, 5101, 4026, 1640, 545, 118, 46, 2382, 974, 289,
+ 1046, 28, 528, 161, 96, 4953, 1277, 3682, 373, 5709,
+ 2, 3, 2, 31934, 31934, 1817, 31934, 2, 372, 30,
+ 5, 3, 92, 103, 97, 8, 2721, 3959, 75, 3,
+ 2, 23, 18, 1060, 5, 14, 4, 48, 321, 249,
+ 1467, 224, 572, 5, 1867, 2, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934,
+ 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934, 31934
};
- unsigned int hval = len;
+ unsigned int hval = len;
switch (hval)
{
@@ -164,1099 +164,1100 @@ hash_keys (const char *str, size_t len)
static const unsigned char lengthtable[] =
{
- 0, 0, 0, 1, 0, 2, 2, 3, 2, 1, 0, 2, 2, 2,
- 0, 1, 0, 2, 4, 0, 4, 4, 3, 3, 4, 0, 0, 5,
- 3, 4, 0, 0, 0, 4, 0, 0, 5, 0, 0, 0, 6, 4,
- 0, 5, 0, 0, 8, 0, 4, 6, 3, 6, 5, 0, 0, 0,
- 7, 4, 7, 5, 0, 0, 0, 1, 0, 0, 9, 9, 0, 9,
- 9, 0, 6, 0, 0, 0, 4, 0, 4, 8, 0, 0, 10, 4,
- 10, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 8, 5, 6,
- 10, 5, 0, 5, 0, 0, 6, 0, 0, 7, 6, 0, 10, 0,
- 8, 9, 0, 8, 7, 10, 0, 0, 0, 7, 0, 0, 0, 5,
- 8, 0, 5, 8, 8, 0, 0, 10, 0, 0, 0, 7, 3, 0,
- 0, 0, 0, 0, 0, 9, 0, 7, 8, 0, 6, 0, 0, 5,
- 8, 0, 0, 0, 0, 5, 5, 0, 3, 0, 0, 0, 7, 0,
- 0, 0, 0, 0, 8, 2, 4, 10, 8, 5, 10, 0, 5, 0,
- 6, 6, 9, 7, 0, 9, 7, 2, 0, 10, 10, 0, 0, 2,
- 0, 10, 7, 9, 4, 6, 0, 0, 0, 6, 0, 0, 10, 8,
- 8, 0, 4, 7, 0, 7, 5, 0, 0, 0, 0, 9, 8, 0,
- 3, 0, 13, 0, 10, 0, 0, 0, 0, 8, 0, 9, 0, 0,
- 0, 0, 0, 0, 11, 0, 0, 0, 0, 6, 10, 8, 0, 0,
- 0, 0, 4, 5, 0, 2, 0, 0, 8, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 4, 0, 0, 0, 8, 0, 0, 0, 0,
- 0, 11, 10, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0,
- 0, 0, 8, 5, 8, 0, 0, 0, 11, 6, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 10, 0, 17, 0, 0, 7, 7,
- 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9,
- 9, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 10,
- 8, 0, 0, 0, 0, 6, 0, 9, 0, 10, 0, 9, 0, 0,
- 0, 0, 0, 2, 0, 0, 11, 0, 0, 9, 3, 13, 0, 0,
- 10, 3, 0, 0, 10, 0, 0, 0, 0, 0, 5, 3, 3, 0,
- 0, 0, 7, 9, 8, 12, 0, 8, 0, 0, 0, 0, 11, 0,
- 0, 0, 0, 0, 10, 13, 19, 0, 8, 0, 9, 11, 6, 0,
- 14, 8, 0, 0, 0, 0, 0, 14, 0, 0, 0, 10, 0, 6,
- 7, 6, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 11,
- 0, 0, 8, 10, 0, 0, 10, 11, 0, 0, 0, 0, 0, 12,
- 0, 0, 12, 11, 0, 0, 0, 6, 0, 0, 0, 0, 5, 0,
- 0, 0, 0, 10, 0, 0, 18, 0, 11, 0, 0, 0, 0, 6,
- 14, 13, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
- 0, 0, 24, 13, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 11,
- 0, 12, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
- 0, 0, 7, 10, 9, 0, 0, 0, 0, 0, 13, 0, 0, 0,
- 0, 0, 7, 0, 0, 17, 10, 20, 0, 6, 12, 2, 0, 0,
- 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 4, 0, 0, 0, 0, 13, 10, 12, 0, 0, 10, 0,
- 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 18, 0,
- 13, 0, 0, 0, 0, 0, 0, 0, 12, 10, 0, 0, 0, 13,
- 0, 14, 10, 0, 11, 0, 0, 0, 0, 0, 0, 13, 0, 0,
- 0, 12, 0, 8, 11, 0, 19, 0, 0, 4, 0, 4, 0, 0,
- 0, 0, 14, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 2,
- 17, 0, 0, 7, 0, 14, 0, 0, 12, 0, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 9, 0,
- 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 14, 20, 0, 14,
- 0, 0, 0, 0, 0, 0, 7, 14, 0, 0, 6, 0, 0, 15,
- 14, 8, 3, 6, 0, 0, 0, 23, 0, 2, 12, 0, 17, 12,
- 0, 0, 22, 0, 15, 12, 0, 2, 0, 0, 0, 0, 14, 2,
- 10, 0, 8, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 15,
- 0, 0, 0, 0, 0, 7, 0, 18, 0, 0, 9, 0, 0, 0,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 12, 17, 9, 13, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 14, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 0, 14, 0, 0, 0, 0, 22, 1, 13, 0, 0, 13,
- 0, 0, 19, 0, 0, 0, 17, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
- 0, 0, 18, 0, 10, 0, 0, 22, 11, 0, 0, 14, 0, 0,
- 16, 0, 0, 0, 9, 17, 0, 13, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 9,
- 15, 0, 0, 0, 0, 7, 0, 0, 6, 0, 0, 19, 0, 0,
- 0, 10, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 9,
- 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 0, 27, 13,
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 12, 0,
- 18, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8, 0, 0, 0, 0, 0, 0, 13, 10, 9, 0, 0, 0,
- 0, 0, 0, 0, 11, 0, 8, 0, 0, 10, 0, 0, 19, 3,
- 0, 11, 24, 0, 0, 0, 0, 0, 10, 0, 0, 21, 0, 0,
- 0, 16, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 25, 0,
- 9, 0, 10, 0, 0, 0, 0, 0, 0, 8, 48, 0, 0, 12,
- 0, 0, 0, 0, 18, 0, 14, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 1, 2, 1, 0, 3, 2, 0,
+ 2, 2, 2, 4, 3, 4, 0, 4, 0, 0, 0, 4, 2, 0,
+ 0, 0, 0, 5, 0, 0, 3, 8, 0, 0, 5, 0, 6, 0,
+ 4, 5, 5, 7, 0, 0, 0, 0, 5, 6, 3, 0, 4, 0,
+ 6, 0, 4, 9, 7, 4, 7, 0, 0, 0, 7, 4, 4, 5,
+ 9, 0, 0, 7, 0, 0, 0, 6, 0, 9, 0, 0, 5, 10,
+ 0, 7, 9, 3, 6, 6, 10, 0, 0, 7, 2, 5, 10, 4,
+ 0, 9, 0, 0, 6, 8, 0, 0, 6, 10, 3, 3, 0, 0,
+ 10, 0, 8, 0, 5, 0, 4, 5, 5, 0, 9, 5, 7, 0,
+ 10, 3, 7, 0, 4, 0, 7, 0, 8, 8, 0, 0, 9, 0,
+ 0, 6, 5, 4, 7, 10, 6, 0, 0, 0, 8, 0, 0, 10,
+ 5, 0, 0, 6, 9, 0, 8, 0, 0, 0, 0, 0, 0, 10,
+ 0, 0, 2, 0, 0, 9, 0, 10, 0, 7, 0, 0, 0, 0,
+ 4, 0, 10, 4, 9, 0, 5, 5, 0, 6, 0, 0, 5, 0,
+ 0, 8, 4, 0, 15, 9, 0, 7, 10, 0, 11, 1, 8, 0,
+ 0, 0, 0, 0, 0, 10, 0, 10, 6, 10, 0, 7, 6, 0,
+ 5, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 8, 1,
+ 6, 10, 10, 0, 9, 4, 8, 0, 0, 17, 0, 0, 13, 12,
+ 0, 7, 0, 10, 4, 0, 0, 10, 0, 0, 0, 0, 0, 8,
+ 0, 11, 0, 0, 0, 6, 0, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 5, 0, 0, 0, 2, 2, 9, 0, 7,
+ 0, 0, 0, 0, 0, 5, 0, 0, 3, 0, 8, 5, 0, 0,
+ 0, 10, 6, 2, 0, 0, 6, 0, 0, 0, 0, 0, 7, 0,
+ 0, 0, 0, 0, 0, 9, 0, 9, 0, 11, 0, 0, 0, 6,
+ 0, 9, 0, 0, 0, 0, 9, 0, 8, 10, 0, 0, 0, 6,
+ 8, 12, 0, 0, 0, 7, 12, 0, 0, 20, 0, 0, 0, 0,
+ 14, 8, 0, 0, 0, 0, 0, 0, 8, 0, 0, 10, 8, 0,
+ 0, 4, 0, 5, 0, 9, 10, 7, 13, 0, 0, 0, 4, 8,
+ 10, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+ 0, 12, 0, 10, 7, 2, 10, 8, 0, 6, 0, 0, 0, 13,
+ 2, 2, 0, 8, 14, 0, 0, 0, 0, 0, 6, 6, 0, 0,
+ 0, 0, 19, 0, 10, 0, 10, 0, 2, 0, 6, 0, 0, 0,
+ 0, 7, 0, 0, 9, 0, 0, 2, 0, 0, 3, 0, 0, 18,
+ 0, 0, 0, 11, 0, 0, 9, 0, 0, 0, 0, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0,
+ 13, 0, 24, 0, 14, 0, 2, 9, 0, 0, 11, 0, 8, 0,
+ 10, 0, 0, 0, 0, 0, 0, 6, 5, 0, 0, 8, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
+ 3, 0, 0, 0, 11, 0, 14, 0, 0, 0, 17, 11, 11, 3,
+ 0, 0, 15, 0, 0, 0, 10, 16, 0, 0, 9, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 12, 0,
+ 0, 0, 8, 0, 0, 11, 14, 0, 11, 0, 0, 0, 10, 0,
+ 0, 13, 0, 0, 0, 3, 11, 0, 0, 12, 14, 0, 0, 0,
+ 0, 8, 0, 20, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
+ 0, 8, 11, 15, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 4, 0, 17, 0, 15, 0, 5, 0, 17, 0, 0, 0, 0, 13,
+ 0, 0, 0, 0, 0, 8, 17, 0, 17, 23, 0, 0, 10, 0,
+ 7, 8, 14, 0, 2, 18, 0, 0, 12, 0, 7, 0, 0, 0,
+ 0, 0, 9, 0, 0, 12, 0, 0, 0, 0, 13, 0, 0, 14,
+ 0, 19, 0, 9, 13, 0, 0, 13, 0, 13, 12, 0, 0, 0,
+ 23, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 14, 0, 0, 0, 0, 2, 0, 3, 0, 0, 4, 0,
+ 18, 14, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 10, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 0, 0,
+ 13, 0, 12, 0, 0, 0, 15, 0, 0, 8, 0, 0, 0, 17,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 10, 11, 0, 0, 0, 0, 17, 19, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 17, 0, 0, 24, 0, 0, 0,
+ 11, 0, 0, 0, 19, 0, 9, 15, 0, 0, 0, 0, 0, 10,
+ 0, 0, 0, 23, 9, 22, 0, 8, 10, 0, 0, 0, 0, 0,
+ 12, 0, 9, 0, 0, 7, 0, 14, 0, 17, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 25, 0, 12, 0,
+ 0, 2, 14, 0, 0, 0, 0, 0, 0, 12, 0, 9, 11, 12,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 13, 0, 11, 6, 0, 3, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 30,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 27, 0, 0, 0, 0, 0, 13, 17, 0, 0, 0, 16, 12,
- 0, 0, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 57, 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, 15, 0, 0,
- 15, 0, 27, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 14,
- 21, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
- 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
- 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
- 0, 0, 0, 11, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 23, 25, 0, 2, 0, 0, 13, 0, 0, 3,
- 0, 3, 0, 0, 0, 0, 12, 0, 16, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 11, 0, 0, 0, 0, 0,
- 21, 0, 30, 0, 30, 0, 0, 0, 0, 0, 0, 18, 0, 0,
- 0, 14, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 20, 0,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
- 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 0, 22, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16, 0, 7, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 0, 9, 0, 17, 0, 0, 0, 0, 0, 0,
- 0, 24, 15, 0, 18, 0, 0, 10, 0, 0, 0, 1, 0, 0,
- 0, 0, 0, 13, 23, 0, 0, 0, 0, 19, 0, 23, 0, 18,
- 0, 18, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 12, 31,
- 0, 0, 31, 9, 0, 0, 22, 0, 15, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 20, 0, 24,
- 0, 30, 8, 0, 13, 0, 25, 0, 0, 0, 0, 0, 0, 42,
- 0, 0, 0, 10, 0, 15, 0, 0, 0, 0, 0, 6, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 0, 19, 0, 0, 0, 0,
- 0, 19, 0, 0, 0, 29, 0, 0, 0, 0, 19, 9, 0, 0,
- 0, 8, 0, 0, 15, 0, 0, 12, 13, 0, 11, 0, 9, 0,
- 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 6, 9, 0, 0,
- 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 21,
- 0, 0, 0, 26, 0, 11, 21, 0, 0, 0, 0, 9, 0, 0,
- 0, 0, 18, 0, 0, 11, 0, 5, 0, 10, 0, 0, 2, 0,
- 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
- 11, 0, 0, 12, 32, 0, 0, 2, 18, 0, 0, 0, 18, 0,
- 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
- 8, 39, 0, 23, 0, 0, 0, 7, 0, 10, 10, 0, 0, 0,
- 0, 18, 0, 0, 0, 0, 13, 0, 15, 0, 0, 0, 0, 0,
- 0, 48, 0, 0, 0, 0, 22, 0, 0, 0, 18, 0, 9, 0,
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 27, 0, 0, 0, 16, 0, 0, 0, 0, 0, 2,
- 0, 0, 0, 0, 11, 0, 0, 22, 0, 0, 14, 0, 12, 9,
- 0, 0, 17, 0, 0, 0, 0, 9, 9, 0, 0, 23, 0, 30,
- 0, 0, 24, 16, 3, 13, 10, 0, 19, 0, 26, 0, 0, 24,
- 0, 0, 0, 0, 0, 0, 0, 10, 26, 0, 0, 14, 0, 0,
- 0, 31, 14, 21, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 10, 12, 19, 11, 0, 0, 34, 0, 0, 0, 3, 0,
- 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 0, 19, 0, 35, 0, 27, 0, 0, 0, 0, 0, 10,
- 0, 0, 0, 0, 0, 0, 0, 12, 0, 31, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 6,
- 0, 0, 20, 13, 0, 23, 0, 0, 13, 0, 0, 0, 0, 14,
- 0, 0, 14, 12, 32, 0, 0, 0, 0, 0, 0, 10, 0, 0,
- 0, 0, 16, 0, 0, 0, 10, 0, 20, 0, 0, 0, 10, 0,
- 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 24, 0,
- 0, 16, 20, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 25, 0, 0, 15, 26, 0, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
- 0, 19, 16, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 22, 27, 14, 0, 0, 0, 0, 9, 14, 18, 0, 0, 0, 22,
- 0, 13, 15, 0, 0, 14, 0, 18, 23, 0, 12, 0, 0, 0,
- 0, 2, 0, 9, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
- 25, 0, 11, 0, 0, 0, 10, 0, 16, 0, 0, 14, 0, 0,
- 0, 0, 0, 27, 9, 0, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 8, 0, 13, 0, 0, 0, 0, 0, 0, 0,
- 33, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0,
- 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 11, 11, 15,
- 0, 0, 19, 0, 32, 0, 0, 0, 0, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 23,
- 0, 0, 13, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 0, 5, 0, 0, 4, 0, 0, 0, 0, 16,
- 0, 0, 10, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 23,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 32, 17, 0, 21, 18,
- 18, 0, 3, 14, 18, 0, 0, 0, 0, 0, 11, 0, 0, 0,
- 0, 0, 12, 11, 0, 0, 11, 0, 0, 12, 0, 31, 0, 0,
- 0, 0, 0, 0, 12, 0, 0, 25, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 25, 11, 0, 0, 0, 11, 9,
- 5, 0, 0, 13, 0, 10, 0, 0, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 8, 17,
- 0, 0, 0, 15, 0, 39, 0, 18, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 23,
- 0, 0, 0, 10, 0, 0, 0, 0, 29, 0, 0, 0, 27, 16,
- 0, 0, 25, 28, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
- 0, 11, 0, 0, 0, 0, 0, 14, 23, 0, 9, 0, 0, 0,
- 0, 10, 0, 0, 0, 0, 20, 0, 22, 0, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 15, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 12, 0, 9, 12, 0, 0, 0, 0, 0, 0, 42, 0,
- 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, 0,
- 0, 13, 14, 0, 33, 0, 0, 0, 0, 0, 21, 0, 0, 19,
- 0, 0, 0, 0, 0, 20, 0, 2, 0, 0, 30, 0, 0, 0,
- 0, 14, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
- 0, 17, 38, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
- 18, 31, 0, 0, 0, 0, 0, 23, 0, 0, 23, 13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 11, 19,
- 26, 21, 0, 0, 10, 0, 10, 0, 0, 20, 0, 0, 0, 20,
- 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 0, 0, 13, 12, 0, 0, 0, 24, 22,
- 0, 13, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 0, 0, 18, 0, 22, 0, 0,
- 0, 9, 0, 0, 16, 19, 13, 0, 0, 13, 0, 12, 0, 0,
- 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 28, 0,
- 22, 0, 0, 2, 15, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 20, 0, 15, 18, 0, 27, 2, 0, 0, 0, 0, 19, 12,
- 0, 0, 0, 0, 0, 3, 0, 9, 0, 15, 25, 0, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 6, 0, 11, 0, 16,
- 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 0, 28, 0, 21, 0, 29, 0, 22, 0, 0, 17, 0,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
- 4, 0, 19, 0, 0, 0, 0, 10, 23, 0, 22, 0, 14, 0,
- 0, 0, 0, 7, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 10, 0, 15, 0,
- 0, 0, 0, 0, 30, 24, 0, 0, 0, 0, 20, 21, 0, 0,
- 0, 0, 0, 15, 15, 0, 3, 15, 30, 0, 24, 2, 0, 0,
- 0, 0, 0, 6, 17, 18, 0, 0, 0, 0, 0, 0, 10, 0,
- 14, 0, 0, 15, 0, 0, 0, 0, 0, 9, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 22, 24, 15, 0, 16, 0, 0, 0,
- 0, 0, 17, 6, 0, 0, 0, 0, 0, 0, 20, 20, 17, 22,
- 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 12, 36, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 22, 0, 0, 0, 0, 0, 15, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 9, 0, 14, 0, 0, 15, 0,
- 0, 0, 0, 13, 0, 0, 0, 0, 0, 3, 0, 0, 19, 0,
- 17, 0, 0, 0, 0, 0, 2, 0, 10, 0, 0, 0, 0, 0,
- 0, 0, 11, 14, 0, 16, 0, 11, 0, 0, 22, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 0, 21, 0, 0, 0, 19, 0,
- 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0,
- 0, 0, 0, 16, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17,
- 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0,
- 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 21,
- 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 24, 16, 0, 0, 0, 0, 0, 9, 16, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
- 0, 0, 3, 32, 4, 0, 0, 16, 18, 0, 0, 0, 0, 0,
- 0, 24, 0, 3, 0, 4, 6, 0, 0, 0, 0, 0, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 15,
- 0, 0, 0, 16, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
- 0, 12, 0, 0, 0, 0, 15, 0, 0, 23, 0, 0, 34, 30,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 22, 0,
- 0, 0, 0, 0, 22, 0, 30, 0, 0, 22, 0, 0, 0, 17,
- 16, 0, 0, 0, 0, 0, 15, 14, 0, 25, 20, 25, 0, 30,
- 0, 0, 13, 28, 0, 15, 0, 0, 0, 0, 15, 42, 13, 0,
- 0, 0, 0, 22, 32, 0, 0, 0, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 24, 0, 13, 28, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 21, 0, 0,
- 24, 0, 16, 0, 0, 0, 0, 0, 0, 15, 0, 31, 0, 0,
- 0, 16, 34, 0, 0, 0, 15, 0, 0, 0, 27, 0, 15, 0,
- 0, 0, 0, 0, 0, 13, 0, 0, 0, 22, 20, 12, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 18, 16, 0, 0, 0, 0,
- 0, 0, 17, 0, 0, 0, 10, 0, 0, 20, 0, 0, 15, 0,
- 0, 25, 0, 23, 0, 30, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 14, 0, 0, 0, 0, 19, 0, 0, 0, 0, 19, 33, 0,
- 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 19, 29, 13, 0,
- 15, 11, 15, 26, 0, 0, 15, 0, 0, 29, 0, 5, 29, 0,
- 0, 12, 0, 0, 0, 16, 14, 0, 12, 14, 0, 19, 0, 0,
- 0, 0, 15, 14, 0, 0, 11, 0, 0, 0, 0, 0, 0, 11,
- 0, 0, 0, 15, 0, 11, 21, 0, 14, 11, 0, 0, 11, 0,
- 0, 48, 0, 0, 0, 0, 20, 0, 0, 0, 0, 2, 14, 0,
- 0, 13, 18, 13, 0, 0, 0, 11, 14, 0, 0, 0, 15, 0,
- 22, 27, 0, 0, 0, 0, 0, 0, 0, 28, 0, 30, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 19, 0, 0, 0, 0, 0, 0, 3, 0, 0, 45, 0, 9, 0,
- 0, 0, 16, 0, 3, 19, 10, 0, 0, 10, 0, 0, 9, 11,
- 0, 0, 0, 24, 0, 13, 9, 0, 14, 11, 0, 0, 0, 0,
- 0, 25, 0, 0, 15, 18, 0, 9, 31, 11, 0, 0, 0, 0,
- 40, 0, 24, 0, 0, 0, 0, 31, 21, 0, 0, 0, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 14, 0, 0, 0, 13, 0, 28,
- 0, 0, 0, 0, 0, 0, 12, 20, 0, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 11, 18, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 26, 0, 0, 17, 0, 29, 19, 0, 15, 0, 0,
- 27, 0, 0, 0, 0, 0, 0, 13, 0, 30, 0, 0, 15, 0,
- 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 33, 0, 0,
- 0, 10, 27, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0,
- 0, 12, 0, 14, 14, 26, 0, 0, 0, 16, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0,
- 20, 0, 21, 0, 50, 14, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 0,
- 0, 20, 12, 0, 0, 0, 4, 13, 0, 12, 0, 0, 0, 16,
- 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 13, 0, 0,
- 0, 10, 0, 19, 0, 21, 0, 0, 12, 0, 0, 24, 13, 0,
- 0, 12, 0, 0, 24, 0, 15, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 8, 0, 0, 8, 0, 10, 0, 0, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 12, 41,
- 0, 0, 0, 16, 0, 0, 13, 0, 0, 0, 30, 29, 6, 0,
- 0, 0, 23, 0, 0, 0, 0, 23, 0, 38, 0, 1, 0, 17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 15, 14, 0,
- 25, 0, 25, 3, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 8, 22, 31, 0,
- 0, 12, 0, 22, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
- 0, 0, 20, 19, 0, 23, 25, 0, 0, 10, 12, 0, 14, 0,
- 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 12, 0, 0,
- 0, 0, 0, 0, 23, 7, 16, 14, 0, 0, 0, 15, 0, 18,
- 11, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 0, 23, 0, 0, 0, 0, 0, 15, 0, 0, 11, 0, 0, 0,
- 0, 0, 0, 15, 0, 0, 22, 11, 0, 0, 0, 0, 15, 0,
- 15, 15, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
- 0, 0, 31, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 2, 0, 0, 0, 26, 21, 0, 0,
- 31, 0, 4, 13, 0, 14, 26, 18, 16, 0, 0, 0, 0, 21,
- 11, 15, 0, 0, 25, 0, 15, 0, 0, 0, 0, 0, 0, 13,
- 15, 0, 0, 0, 0, 0, 9, 22, 13, 35, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 18, 0, 0, 0, 0, 12, 14, 0, 12,
- 0, 21, 0, 0, 22, 11, 0, 0, 0, 0, 23, 0, 0, 0,
- 0, 25, 25, 0, 17, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 0, 0, 14, 35, 0, 0, 0, 16, 25, 10, 0, 0,
- 0, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 23, 17, 18, 0, 0, 0, 13,
- 31, 32, 11, 0, 0, 22, 0, 0, 17, 15, 42, 0, 0, 0,
- 0, 8, 0, 13, 0, 0, 0, 0, 0, 17, 0, 22, 15, 6,
- 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 8,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 11,
- 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 15, 0,
- 0, 9, 14, 0, 0, 0, 0, 0, 0, 18, 0, 0, 15, 0,
- 0, 2, 0, 9, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
- 0, 21, 0, 0, 0, 14, 11, 0, 0, 0, 0, 0, 13, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 32, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 0, 0, 14, 0, 0, 0, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 15,
- 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 15, 0, 9, 0, 0, 0, 0, 14, 13, 34, 0, 0,
- 0, 0, 0, 27, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 0, 33, 0, 0, 0, 0, 0, 32, 0,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 47, 0, 19, 0, 9, 19, 0, 10, 28, 0, 0, 0,
- 0, 0, 0, 14, 0, 0, 0, 0, 0, 37, 0, 0, 3, 0,
- 4, 0, 12, 0, 0, 0, 0, 0, 0, 13, 0, 38, 0, 3,
- 0, 4, 6, 0, 20, 0, 15, 0, 0, 0, 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 10,
- 0, 0, 0, 0, 0, 0, 19, 11, 0, 14, 0, 0, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 0, 0, 27, 31, 0, 9, 15,
- 0, 0, 0, 0, 0, 0, 0, 24, 0, 8, 30, 0, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 15, 0, 0, 0, 18, 18, 0, 12, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 10, 0, 24, 0, 0, 0, 0, 23, 0, 0, 27,
- 8, 0, 26, 0, 0, 16, 0, 0, 26, 42, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 29, 0, 0, 12, 0, 0, 0, 0, 0,
- 0, 0, 0, 10, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 13, 0, 29, 0, 0, 0, 0, 13, 0,
- 0, 0, 14, 0, 18, 0, 0, 0, 11, 0, 0, 0, 0, 0,
- 0, 11, 0, 0, 0, 28, 14, 0, 13, 0, 0, 0, 0, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 19, 20,
- 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 14, 0, 13,
- 0, 0, 0, 0, 0, 0, 0, 0, 23, 15, 0, 0, 0, 0,
- 0, 0, 0, 21, 0, 0, 10, 0, 0, 22, 0, 46, 34, 0,
- 0, 0, 6, 0, 18, 0, 27, 28, 15, 0, 15, 25, 14, 0,
- 0, 0, 9, 0, 0, 0, 20, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 25, 17, 8, 0, 0, 0, 14, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 50, 0,
- 0, 0, 0, 0, 0, 15, 0, 27, 0, 0, 12, 0, 0, 0,
- 0, 30, 0, 0, 0, 32, 0, 0, 0, 7, 0, 29, 0, 0,
- 33, 0, 14, 0, 0, 12, 0, 0, 15, 11, 0, 0, 0, 0,
- 0, 13, 0, 0, 24, 2, 29, 0, 18, 33, 25, 0, 0, 34,
- 0, 25, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 3,
- 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
- 0, 0, 28, 0, 17, 0, 0, 0, 0, 20, 0, 0, 20, 0,
- 0, 0, 0, 2, 0, 0, 11, 0, 9, 23, 0, 0, 0, 21,
- 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 12, 0, 0, 21, 0, 14, 0, 0, 10, 2, 0, 0,
- 0, 0, 13, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0,
- 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 22, 0, 0, 7, 0, 0, 0, 0, 0, 0,
- 18, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 0, 0, 0,
- 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 0, 0, 0, 0, 33, 14, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
- 16, 0, 0, 0, 15, 0, 0, 0, 0, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 18, 0, 0, 0, 28, 0, 0, 12, 0, 0,
- 0, 0, 0, 15, 0, 13, 2, 0, 0, 0, 0, 0, 0, 14,
- 0, 0, 0, 11, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 20, 0, 32,
- 13, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
- 0, 22, 0, 10, 0, 0, 0, 0, 26, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 20, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 11, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 31, 0, 13, 17, 0, 0, 0,
- 43, 28, 0, 0, 0, 31, 0, 0, 0, 33, 33, 0, 0, 0,
- 0, 0, 14, 14, 0, 0, 0, 0, 0, 22, 42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 0, 0, 0, 10, 0, 22, 0, 37, 28, 27, 0, 0,
- 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 28, 0, 31,
- 0, 0, 0, 27, 18, 0, 0, 0, 13, 21, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 13, 0, 22, 16, 0,
- 31, 9, 0, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 11, 28, 31, 0, 0, 13, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 35, 17, 8, 0, 0, 0, 2, 14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0,
- 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 0, 0, 11, 0,
- 0, 0, 9, 26, 0, 28, 20, 0, 0, 11, 0, 28, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 39, 0,
- 0, 0, 0, 0, 0, 0, 21, 11, 0, 0, 0, 0, 34, 0,
- 11, 0, 0, 0, 0, 16, 22, 0, 0, 0, 0, 0, 0, 0,
- 13, 18, 0, 0, 0, 0, 15, 10, 0, 0, 22, 16, 0, 0,
- 0, 0, 6, 2, 0, 0, 0, 0, 0, 13, 0, 0, 18, 0,
- 0, 8, 50, 0, 0, 0, 0, 0, 8, 29, 0, 13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 14, 26, 30, 0,
- 0, 34, 0, 0, 0, 0, 43, 0, 9, 16, 0, 0, 0, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 16,
- 11, 0, 0, 0, 0, 11, 0, 0, 31, 0, 0, 7, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 6, 0, 0, 18, 0, 0, 6, 18, 0, 0, 0, 15, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 19,
+ 10, 0, 15, 0, 0, 0, 0, 0, 14, 0, 0, 0, 14, 0,
+ 0, 11, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 15,
0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
- 0, 0, 18, 0, 0, 0, 37, 0, 0, 31, 0, 14, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
- 0, 12, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 22, 0, 0, 0, 0, 20, 0, 35, 0, 0, 0, 0, 27,
- 14, 0, 0, 22, 10, 11, 0, 0, 0, 0, 13, 0, 32, 0,
- 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 30, 0, 0, 8,
- 0, 0, 0, 0, 0, 14, 0, 0, 8, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 44, 0, 0, 0, 0,
- 30, 11, 22, 13, 0, 0, 24, 14, 21, 0, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 10, 0, 0, 0,
- 0, 10, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
- 0, 12, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 17, 10,
- 22, 0, 0, 0, 0, 24, 0, 0, 28, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 23, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
- 0, 0, 32, 0, 0, 32, 21, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 34, 17, 32,
- 0, 0, 0, 0, 0, 0, 0, 16, 0, 22, 16, 0, 0, 14,
- 0, 0, 0, 0, 21, 0, 0, 0, 0, 25, 0, 10, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 35, 0, 19, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 14, 0,
- 7, 31, 0, 0, 0, 15, 0, 0, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 11, 0, 0, 0, 25, 0, 0, 14, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 27, 0,
- 30, 0, 0, 0, 0, 19, 35, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 31,
- 0, 0, 0, 0, 0, 0, 0, 14, 0, 16, 0, 0, 17, 0,
- 0, 11, 0, 0, 38, 0, 0, 12, 0, 23, 0, 0, 15, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0,
- 0, 11, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
- 0, 19, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 16, 0,
- 18, 0, 0, 0, 0, 0, 14, 0, 0, 0, 32, 0, 0, 0,
- 0, 24, 16, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 12, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
- 19, 0, 0, 30, 0, 0, 0, 17, 0, 0, 15, 0, 12, 0,
- 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 27, 0, 0, 13, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 27, 2, 0,
+ 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 10, 19,
+ 0, 14, 0, 0, 5, 37, 0, 0, 0, 0, 0, 0, 12, 0,
+ 0, 0, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 18,
+ 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 0, 14, 0, 0,
+ 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 14,
+ 0, 0, 12, 0, 2, 17, 22, 9, 0, 0, 0, 12, 0, 0,
+ 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 18, 0, 18, 1,
+ 10, 0, 9, 0, 12, 10, 0, 0, 0, 15, 0, 9, 0, 0,
+ 0, 3, 0, 0, 0, 15, 11, 6, 8, 21, 21, 0, 0, 0,
+ 0, 18, 0, 0, 14, 0, 0, 0, 3, 0, 8, 10, 0, 0,
+ 22, 20, 0, 9, 0, 9, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 16, 0, 0, 0, 0, 8, 39, 40, 0, 0, 0, 2, 3,
+ 0, 0, 0, 0, 21, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 0, 0,
+ 0, 0, 0, 17, 0, 0, 0, 30, 0, 8, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 15, 0, 10, 0, 0, 0, 0, 21, 0,
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 20, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
+ 0, 0, 10, 16, 0, 0, 0, 12, 0, 0, 0, 0, 16, 12,
+ 0, 0, 14, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
+ 0, 18, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 0, 19,
+ 0, 0, 0, 21, 0, 0, 0, 0, 13, 0, 0, 6, 0, 0,
+ 11, 0, 0, 0, 12, 0, 0, 0, 0, 24, 0, 0, 0, 0,
+ 10, 13, 0, 0, 0, 0, 0, 13, 0, 21, 0, 15, 0, 0,
+ 0, 30, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 16, 0,
+ 0, 0, 24, 0, 23, 0, 14, 0, 11, 0, 0, 15, 0, 0,
+ 0, 0, 0, 24, 0, 0, 0, 16, 0, 0, 0, 0, 0, 13,
+ 0, 0, 0, 0, 48, 8, 0, 0, 0, 0, 2, 15, 30, 30,
+ 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 0, 15, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 10, 3,
+ 10, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 0, 16, 12, 0, 0, 0, 0, 0, 31, 16,
+ 0, 0, 0, 0, 0, 0, 0, 31, 12, 0, 0, 0, 0, 0,
+ 0, 16, 9, 0, 30, 0, 23, 14, 23, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 12, 0, 23, 0,
+ 0, 15, 5, 0, 7, 20, 0, 0, 44, 0, 0, 19, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 38, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 15, 16, 0, 19,
- 29, 0, 0, 0, 0, 23, 0, 0, 15, 4, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
- 0, 0, 0, 0, 0, 19, 0, 23, 0, 0, 0, 0, 0, 30,
- 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 28, 0, 0, 0, 0, 0, 28, 0, 0,
- 0, 3, 0, 28, 0, 15, 73, 74, 0, 13, 0, 0, 0, 0,
- 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0,
- 0, 0, 11, 0, 23, 0, 0, 0, 0, 11, 0, 0, 0, 0,
- 0, 29, 17, 0, 23, 0, 0, 21, 0, 0, 0, 0, 19, 0,
- 14, 14, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 34, 32, 0, 14,
- 12, 30, 0, 0, 24, 0, 0, 0, 0, 0, 0, 15, 0, 41,
- 0, 0, 0, 0, 0, 0, 36, 15, 0, 0, 0, 0, 0, 0,
- 0, 32, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 19, 0, 7, 24, 0, 0, 0, 0, 0,
- 14, 0, 17, 0, 0, 0, 0, 39, 0, 11, 0, 0, 0, 0,
- 15, 0, 0, 29, 0, 0, 26, 0, 0, 0, 0, 23, 0, 0,
- 0, 0, 0, 0, 0, 0, 25, 0, 30, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 29, 0, 13, 0, 0, 0, 0,
- 0, 0, 13, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 23,
- 0, 0, 0, 0, 22, 0, 0, 30, 0, 0, 0, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0,
- 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 8, 0,
- 0, 0, 0, 0, 14, 21, 0, 0, 24, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 30, 24, 0,
- 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
- 22, 26, 23, 0, 29, 26, 0, 0, 24, 0, 0, 30, 0, 0,
- 30, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 23, 0,
- 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
- 0, 0, 0, 24, 0, 0, 0, 20, 12, 0, 0, 0, 7, 0,
- 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
- 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
- 0, 0, 0, 19, 0, 7, 0, 0, 0, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
+ 0, 0, 0, 0, 11, 0, 30, 0, 0, 10, 0, 18, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 0, 27, 0, 0, 24, 0, 0, 14, 0, 11, 0, 0, 11,
+ 0, 0, 0, 0, 0, 0, 26, 0, 11, 8, 0, 0, 0, 0,
+ 21, 0, 0, 17, 15, 13, 0, 0, 0, 23, 0, 25, 18, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 13,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 17, 0,
+ 0, 0, 13, 16, 0, 6, 0, 7, 0, 19, 6, 9, 0, 16,
+ 12, 0, 0, 0, 0, 7, 9, 0, 0, 26, 0, 0, 0, 0,
+ 0, 23, 0, 0, 0, 0, 10, 0, 0, 57, 0, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 30, 0, 23,
+ 0, 0, 3, 0, 0, 19, 0, 0, 14, 32, 0, 0, 42, 18,
+ 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 8, 11, 13, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 18, 0, 34, 0, 22,
+ 0, 15, 0, 19, 15, 0, 14, 13, 15, 0, 0, 0, 13, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 0, 0,
+ 0, 12, 0, 0, 0, 0, 0, 0, 6, 0, 11, 0, 12, 0,
+ 0, 0, 0, 0, 14, 0, 0, 22, 0, 0, 0, 0, 18, 10,
+ 14, 31, 32, 0, 13, 6, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 0, 0, 20, 13, 0, 0, 0, 0, 0, 26, 35, 0, 12,
+ 0, 0, 14, 0, 0, 0, 15, 0, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
+ 0, 0, 0, 0, 0, 0, 20, 0, 8, 0, 0, 0, 15, 0,
+ 0, 0, 11, 0, 23, 0, 0, 0, 0, 0, 29, 19, 0, 0,
0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 24, 0, 0, 19, 15, 29, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 43, 0,
- 0, 38, 0, 0, 14, 0, 0, 0, 0, 18, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
+ 0, 11, 12, 1, 0, 0, 0, 13, 0, 39, 0, 0, 0, 18,
+ 0, 22, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 29, 0,
+ 0, 9, 0, 13, 0, 0, 0, 0, 12, 10, 11, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 19,
+ 0, 0, 3, 0, 0, 26, 0, 0, 0, 2, 0, 0, 9, 0,
+ 0, 0, 23, 0, 0, 18, 0, 0, 0, 14, 0, 0, 0, 13,
+ 15, 0, 2, 0, 0, 0, 0, 0, 26, 8, 0, 16, 0, 0,
+ 0, 0, 0, 19, 0, 25, 0, 0, 0, 0, 0, 10, 0, 0,
+ 27, 0, 0, 10, 9, 0, 13, 27, 10, 0, 10, 10, 25, 0,
+ 9, 0, 19, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 0, 0, 1, 32, 0, 5, 10, 12, 9,
+ 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 11, 10, 0, 22, 0, 0, 0,
+ 14, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 31, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 18, 0, 19, 0, 0, 0, 0, 0, 10, 9, 0,
+ 0, 0, 12, 13, 15, 0, 0, 0, 0, 0, 0, 0, 23, 18,
+ 0, 0, 15, 0, 0, 0, 30, 0, 0, 0, 0, 25, 0, 0,
+ 23, 0, 17, 0, 18, 0, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 11, 9, 12, 0, 12, 0, 0, 0, 0, 21, 3, 20,
+ 0, 0, 0, 0, 0, 25, 10, 33, 0, 0, 10, 0, 0, 0,
+ 16, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 11, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 23, 0,
+ 0, 15, 12, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 0,
+ 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 25,
+ 35, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 15, 0, 10, 0, 22, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 23, 0, 0, 0, 0, 18, 0,
+ 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 0, 0, 0, 35, 0, 0, 0, 0,
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
+ 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 23, 0, 14,
0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 23, 0, 0, 0,
- 29, 0, 25, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 25,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0,
- 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
- 16, 0, 0, 0, 29, 0, 0, 0, 0, 8, 9, 0, 0, 0,
- 0, 19, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 8, 0, 0, 26,
- 0, 15, 0, 11, 0, 0, 0, 0, 29, 0, 0, 0, 29, 13,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 34, 0, 0, 0, 0,
- 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 22,
- 32, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 0, 0, 0, 0, 15, 20, 0, 0, 0, 0, 13, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 12, 0, 0, 0, 0, 21,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
- 25, 28, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 34,
- 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
- 20, 0, 0, 43, 0, 0, 0, 0, 0, 19, 14, 0, 0, 36,
+ 0, 0, 28, 0, 0, 0, 0, 21, 0, 0, 21, 0, 0, 16,
+ 0, 29, 11, 0, 0, 0, 0, 0, 22, 0, 0, 10, 0, 27,
+ 0, 24, 0, 0, 0, 0, 11, 0, 0, 0, 0, 21, 0, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 18,
+ 0, 13, 10, 0, 0, 22, 25, 32, 0, 9, 0, 0, 12, 0,
+ 0, 0, 0, 0, 0, 22, 13, 0, 10, 0, 0, 28, 10, 0,
+ 0, 33, 38, 0, 23, 13, 0, 0, 0, 30, 0, 31, 0, 0,
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
+ 0, 27, 0, 0, 22, 0, 9, 11, 16, 0, 0, 0, 17, 42,
+ 0, 0, 0, 0, 19, 0, 10, 0, 0, 0, 0, 0, 16, 0,
+ 0, 15, 17, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 13, 10, 6, 0, 0, 0, 13, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 18, 11, 16, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9, 0, 13, 0, 0, 0, 17, 0, 24, 0, 0, 0, 31,
+ 0, 0, 0, 0, 12, 0, 0, 13, 0, 0, 0, 23, 0, 0,
+ 14, 18, 16, 0, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14, 0, 0, 0, 0, 0, 13, 0, 28, 0, 0, 0, 0, 9,
+ 0, 0, 11, 0, 0, 16, 0, 39, 0, 0, 0, 0, 0, 12,
+ 0, 0, 13, 15, 0, 0, 0, 15, 0, 0, 0, 12, 0, 31,
+ 0, 24, 20, 0, 12, 0, 15, 0, 10, 0, 0, 0, 0, 30,
+ 22, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 38,
+ 42, 0, 18, 0, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 13, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 14, 14, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 11,
+ 30, 11, 0, 0, 16, 0, 16, 0, 19, 13, 26, 0, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 17, 18, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 17, 0, 15, 0, 15, 0, 0, 16, 0, 0, 0, 22,
+ 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0,
+ 18, 2, 3, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 0, 0, 12, 0, 12, 0, 23, 0, 0, 0, 0, 0, 0, 0,
+ 2, 23, 7, 20, 9, 0, 0, 0, 0, 17, 0, 37, 0, 0,
+ 14, 0, 18, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0,
+ 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
+ 0, 10, 21, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 16, 15, 0, 0, 0, 0,
+ 12, 0, 0, 0, 0, 20, 13, 0, 0, 0, 0, 0, 14, 0,
+ 34, 0, 2, 0, 15, 0, 0, 0, 0, 0, 0, 20, 0, 17,
+ 0, 0, 0, 0, 0, 12, 0, 13, 18, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 24, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 29, 22, 0, 0, 30, 0, 0, 0, 26, 0,
+ 0, 0, 22, 0, 13, 0, 0, 0, 0, 0, 18, 16, 23, 10,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 6, 0, 0, 0, 0,
+ 0, 22, 27, 0, 0, 0, 0, 0, 0, 0, 15, 32, 15, 28,
+ 0, 0, 0, 0, 0, 31, 0, 0, 0, 24, 0, 17, 0, 0,
+ 0, 2, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 20,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 11, 0,
+ 0, 0, 0, 0, 0, 28, 17, 0, 0, 28, 0, 25, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 14, 0, 0, 0,
+ 0, 0, 16, 0, 0, 0, 0, 0, 22, 0, 0, 0, 17, 15,
+ 0, 0, 0, 0, 36, 30, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 28, 31, 0, 0,
+ 0, 0, 0, 0, 17, 15, 0, 0, 0, 21, 0, 0, 0, 17,
+ 0, 9, 0, 15, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 22, 0, 0, 0, 0, 0, 0,
+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 0, 19, 0, 19, 0, 0, 0, 0, 0, 24, 29, 0, 0,
+ 0, 0, 0, 0, 0, 0, 13, 28, 17, 0, 0, 0, 0, 12,
+ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 9, 0, 24,
+ 23, 0, 5, 0, 0, 0, 0, 0, 0, 0, 21, 0, 23, 0,
+ 0, 0, 0, 13, 0, 0, 24, 0, 18, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 24, 0, 0, 0, 0, 0, 17, 0, 31, 0,
+ 0, 0, 16, 0, 0, 0, 0, 0, 0, 19, 26, 35, 0, 0,
+ 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
+ 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 4, 0, 8, 0, 0, 0, 0, 0, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+ 13, 22, 2, 0, 0, 0, 40, 0, 14, 0, 16, 0, 21, 0,
+ 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 48, 0, 0, 20, 0, 0, 30, 0, 0,
+ 0, 0, 0, 0, 29, 16, 4, 0, 0, 0, 0, 0, 0, 23,
+ 31, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 20, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 14, 26, 0, 24, 0, 0, 0, 0, 0, 0, 38, 31,
+ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 18, 0,
+ 0, 42, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 11, 16, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 0, 0, 3, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 28, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0,
+ 0, 11, 0, 0, 0, 0, 37, 0, 0, 0, 0, 21, 13, 0,
+ 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 25, 0, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 21, 0, 0, 0, 18, 17, 14, 24, 12, 0, 0, 0, 0,
+ 0, 0, 25, 30, 20, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 30, 14, 0, 0, 6, 24, 0, 0, 0, 0, 0, 0,
+ 0, 0, 37, 0, 0, 0, 0, 0, 0, 12, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 20, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0,
+ 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 14, 0,
+ 19, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 25, 0, 15,
+ 21, 0, 16, 18, 0, 0, 30, 14, 0, 0, 0, 14, 0, 0,
+ 14, 37, 0, 0, 0, 29, 0, 3, 0, 0, 0, 0, 16, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
+ 0, 12, 35, 0, 0, 0, 31, 0, 0, 0, 0, 15, 0, 0,
+ 0, 15, 0, 0, 23, 0, 0, 0, 0, 15, 25, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 24, 0, 0, 0, 0, 4, 23, 15, 0, 0, 0, 15, 0,
+ 0, 13, 0, 33, 0, 0, 0, 26, 24, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 20, 13, 0,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 15,
+ 0, 0, 0, 15, 0, 0, 22, 0, 0, 26, 0, 0, 14, 0,
+ 18, 0, 0, 0, 0, 0, 13, 0, 0, 8, 0, 15, 10, 0,
+ 36, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 11, 0,
+ 0, 0, 0, 0, 18, 21, 0, 0, 0, 0, 0, 10, 0, 16,
+ 27, 0, 0, 0, 14, 27, 0, 16, 16, 0, 0, 0, 0, 0,
+ 18, 0, 0, 14, 0, 0, 0, 0, 0, 0, 16, 14, 0, 17,
+ 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 14, 0, 33,
+ 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 13, 0, 0,
+ 0, 0, 0, 0, 0, 35, 0, 0, 18, 0, 15, 0, 0, 0,
+ 0, 0, 47, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 26, 0, 29, 18,
+ 18, 0, 31, 0, 0, 17, 0, 0, 0, 34, 0, 0, 13, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 14, 0,
+ 13, 0, 0, 0, 0, 15, 20, 0, 19, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 8, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 23, 0, 13, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 17, 11, 32, 0, 12, 0,
+ 0, 0, 0, 0, 17, 0, 18, 0, 31, 9, 0, 0, 22, 0,
+ 15, 0, 0, 0, 11, 0, 15, 11, 13, 0, 0, 0, 35, 11,
+ 15, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0,
+ 0, 0, 10, 15, 0, 23, 0, 0, 0, 6, 0, 0, 7, 19,
+ 0, 0, 14, 31, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
+ 0, 0, 0, 12, 0, 0, 23, 0, 0, 0, 0, 0, 15, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 14, 0,
+ 0, 14, 0, 10, 0, 0, 0, 0, 0, 46, 12, 0, 0, 0,
+ 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 15, 29, 14,
+ 17, 14, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
+ 18, 0, 18, 15, 34, 0, 0, 0, 7, 0, 16, 19, 4, 0,
+ 0, 0, 0, 0, 19, 0, 42, 0, 13, 0, 0, 0, 0, 13,
+ 0, 16, 25, 0, 15, 0, 0, 0, 0, 0, 20, 0, 0, 0,
+ 0, 0, 0, 0, 18, 20, 0, 0, 22, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 0, 13, 0, 0, 0, 24, 0, 15, 0, 15,
+ 0, 0, 12, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 35,
+ 11, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 11, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 11, 10, 23, 0, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 22, 0, 10, 17, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+ 0, 0, 19, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 32,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 12,
+ 0, 0, 22, 0, 0, 0, 0, 19, 0, 0, 0, 21, 29, 22,
+ 27, 0, 0, 0, 25, 0, 29, 9, 14, 11, 0, 0, 14, 0,
+ 23, 24, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11,
+ 0, 0, 0, 0, 13, 0, 0, 0, 28, 0, 0, 0, 13, 0,
+ 0, 0, 23, 28, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 30, 0, 0, 0, 18, 13, 0, 0, 16, 0, 0, 22, 0, 31,
+ 32, 39, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 20, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 24, 0, 22, 0, 0, 0,
+ 0, 15, 0, 26, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
+ 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 0, 24, 0, 2, 0, 26, 0,
+ 0, 0, 0, 0, 0, 0, 12, 25, 17, 0, 0, 0, 25, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 13, 3,
+ 0, 0, 0, 0, 0, 0, 15, 0, 32, 15, 0, 0, 6, 0,
+ 30, 3, 0, 0, 21, 13, 0, 4, 0, 0, 0, 12, 20, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 14, 0, 0,
+ 4, 0, 0, 0, 0, 25, 0, 12, 0, 0, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 27, 0, 15, 0, 0, 0,
+ 19, 0, 14, 0, 0, 0, 0, 0, 2, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
+ 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 27, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 0, 0,
+ 12, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8, 0, 0, 0, 0, 25, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 0, 0, 11, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, 0, 0,
+ 0, 0, 12, 0, 14, 0, 0, 0, 0, 0, 14, 0, 0, 13,
+ 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3,
+ 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0,
+ 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 28, 0, 13,
+ 0, 0, 0, 0, 6, 0, 16, 0, 3, 0, 12, 0, 0, 34,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 0, 0, 20, 8, 0, 0, 0, 0, 0, 0, 6, 0, 27,
+ 17, 0, 9, 0, 0, 0, 17, 0, 0, 0, 9, 0, 0, 73,
+ 74, 0, 9, 2, 0, 0, 19, 0, 0, 11, 0, 0, 0, 0,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0,
+ 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
+ 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 23, 18, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0,
+ 20, 27, 0, 10, 0, 0, 0, 0, 0, 23, 22, 33, 0, 0,
+ 0, 50, 24, 22, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11, 0, 9, 0, 0, 20, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 16, 0, 0, 0,
+ 0, 0, 0, 0, 21, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 0, 11, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 15, 0,
+ 0, 6, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 18, 11, 0, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 43, 11, 29, 15, 0, 0, 9, 0, 13, 0,
+ 14, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
+ 0, 0, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 15,
+ 0, 0, 21, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 13, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 25, 0,
+ 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 33, 16, 0, 11, 16, 0, 0, 0, 14, 0,
+ 0, 0, 22, 11, 0, 34, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 24,
+ 0, 0, 16, 27, 0, 0, 29, 0, 0, 15, 0, 12, 0, 0,
+ 0, 0, 0, 0, 16, 0, 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 19, 0, 0, 0, 9, 0, 0, 8, 0, 0, 31, 20,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 28, 0, 26, 0, 0, 0, 19, 0, 0, 25, 0, 27,
0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 16, 37, 0, 0, 0, 0, 15,
- 0, 19, 0, 0, 0, 21, 0, 0, 0, 7, 22, 0, 0, 0,
- 0, 24, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 29,
- 0, 0, 0, 0, 0, 29, 25, 29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 25, 0, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 27, 21, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
- 0, 0, 14, 6, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 0, 0, 0, 0, 0, 13, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 23, 0, 0, 0, 0, 0, 26, 0, 35, 0, 0, 0,
- 19, 0, 0, 0, 0, 0, 0, 15, 0, 36, 0, 0, 0, 28,
+ 0, 30, 0, 2, 15, 25, 12, 0, 0, 0, 0, 7, 0, 0,
+ 0, 14, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 25, 0, 11, 0, 2, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 2, 24, 0, 0, 0, 0, 0, 10, 22, 0, 18,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 21, 0, 15, 0,
+ 28, 0, 2, 0, 0, 0, 0, 15, 24, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 32, 0, 0, 10, 13, 0, 0, 0, 0, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 26, 14, 0, 29, 0, 6, 0,
+ 13, 0, 0, 0, 34, 0, 0, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 21, 2, 0, 0, 0, 12, 0, 14, 12, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 25, 12, 0, 0, 0, 0,
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
+ 0, 38, 0, 0, 0, 0, 0, 21, 0, 0, 32, 0, 24, 0,
+ 12, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 12, 0, 19,
+ 30, 0, 0, 0, 0, 28, 11, 0, 0, 32, 0, 0, 0, 0,
+ 2, 18, 9, 0, 0, 0, 0, 0, 19, 0, 11, 0, 16, 0,
+ 0, 0, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 0,
+ 0, 30, 15, 3, 0, 0, 23, 31, 0, 0, 31, 0, 0, 0,
+ 21, 0, 6, 0, 18, 30, 0, 0, 0, 0, 18, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 16, 15, 0, 0, 0, 0, 14, 26, 22, 0, 0, 24,
+ 0, 0, 2, 0, 0, 0, 0, 0, 0, 11, 23, 0, 6, 14,
+ 0, 0, 2, 0, 32, 25, 0, 0, 0, 0, 0, 0, 34, 0,
+ 19, 0, 0, 28, 0, 0, 0, 28, 0, 4, 0, 0, 0, 0,
+ 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 17, 0, 14, 0, 0, 30, 0, 8,
+ 0, 0, 23, 0, 2, 18, 0, 25, 0, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 32, 11, 0, 0,
+ 6, 12, 0, 19, 22, 13, 0, 11, 0, 0, 0, 13, 25, 0,
+ 0, 0, 0, 12, 0, 0, 0, 0, 0, 17, 0, 0, 8, 29,
+ 0, 20, 8, 16, 0, 0, 0, 0, 0, 0, 0, 13, 34, 0,
+ 0, 27, 0, 0, 11, 14, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 34, 0, 28, 0, 13, 0, 0, 0, 0, 0, 28, 0, 0,
+ 0, 19, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 30,
+ 0, 0, 31, 0, 0, 0, 0, 13, 0, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 17, 0, 0, 43,
+ 0, 0, 0, 0, 0, 0, 0, 22, 23, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 34, 0, 0, 8, 0, 0, 0, 21, 0,
+ 0, 11, 0, 0, 0, 25, 0, 0, 0, 0, 38, 0, 0, 0,
+ 9, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 18, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 19, 26,
+ 11, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 29, 0, 0,
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 13, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 29, 39, 30, 0, 0, 0, 0, 0,
+ 0, 53, 0, 0, 0, 28, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 39, 0, 31, 0, 15, 0, 0, 0, 0, 0, 14, 0,
+ 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 16, 0, 0,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 14, 43, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 23, 0, 0, 0, 16, 0, 0, 0, 0, 19, 23,
+ 29, 0, 0, 18, 0, 23, 31, 0, 0, 13, 7, 0, 0, 0,
+ 27, 0, 30, 0, 0, 0, 18, 0, 35, 0, 0, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 14, 0, 0, 13, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 0, 12, 0, 0, 0, 22,
+ 0, 14, 0, 0, 0, 0, 0, 17, 22, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7, 0, 0, 30, 44, 0, 0, 7, 15, 11, 0, 0, 16,
+ 0, 0, 10, 33, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
+ 0, 24, 0, 0, 0, 0, 18, 0, 36, 3, 0, 0, 0, 15,
+ 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 24, 0, 0, 15,
+ 14, 0, 0, 0, 0, 0, 0, 21, 15, 0, 17, 28, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 15, 0, 0, 0, 0, 0, 0,
+ 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 9, 24,
+ 11, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 20, 0, 0,
+ 19, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 23, 0, 2, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 5, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0,
+ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 22, 0, 0, 24, 32, 0, 0, 21, 0, 29, 19, 0,
+ 0, 0, 9, 0, 0, 0, 0, 13, 0, 0, 41, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 27, 0,
+ 0, 10, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 14, 0, 20, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 18, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
+ 14, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 28, 0, 0,
+ 0, 0, 26, 0, 15, 0, 0, 12, 0, 0, 21, 0, 18, 0,
+ 0, 0, 0, 3, 15, 10, 0, 8, 0, 19, 0, 0, 23, 24,
+ 0, 0, 0, 12, 0, 0, 0, 0, 16, 0, 0, 24, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 27, 0, 0, 0, 0,
+ 11, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 21, 13, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
+ 0, 0, 0, 24, 0, 0, 19, 0, 0, 0, 30, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 31, 0, 0, 0, 0, 10,
+ 14, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
+ 35, 12, 15, 0, 0, 0, 15, 23, 14, 0, 0, 0, 0, 0,
+ 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 7, 12, 0,
+ 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 29, 17,
+ 0, 0, 0, 0, 0, 8, 0, 24, 0, 0, 0, 0, 11, 0,
+ 0, 0, 0, 25, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 12, 0, 23, 0, 0, 0, 0, 0,
+ 0, 11, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 0, 35, 0, 0, 13, 0, 0, 0, 29,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 19, 0,
+ 24, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 28, 0, 0,
+ 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
+ 14, 0, 0, 0, 15, 0, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 29, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
+ 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 16, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 20, 0, 0, 0,
+ 22, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 43, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 28, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0,
+ 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 72, 0, 0,
+ 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 8, 28, 0, 0, 20, 0, 0, 0, 0, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 24, 29, 0, 0,
- 0, 35, 0, 0, 0, 35, 7, 0, 0, 0, 0, 0, 0, 26,
+ 0, 0, 0, 0, 0, 0, 0, 12, 14, 0, 0, 0, 0, 0,
+ 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 8, 0, 35, 0, 0, 0, 22, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 24, 0, 22, 0, 30, 0, 0, 14, 0, 0, 0, 0,
+ 12, 34, 0, 23, 0, 33, 22, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 18, 13, 23, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0,
+ 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 14, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
+ 25, 20, 0, 23, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 35,
+ 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 0, 0, 14, 0, 0, 0, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 0, 33, 0, 15, 21, 0, 24, 0,
- 0, 0, 0, 13, 25, 9, 0, 0, 0, 0, 0, 72, 0, 30,
- 0, 23, 0, 0, 4, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 12, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 26, 0, 0,
+ 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 31, 0, 0,
+ 0, 24, 29, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 29, 0,
+ 0, 0, 0, 0, 18, 10, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 29, 0, 0, 0, 0, 28, 0, 30, 0, 0, 23, 0,
- 0, 14, 0, 0, 21, 0, 0, 0, 0, 23, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
+ 0, 0, 0, 16, 29, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 28, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 28, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
+ 0, 21, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 0, 14, 0, 0, 29, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 0, 0, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 14, 14, 0, 14, 0, 28, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 31, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 18, 0, 0, 18, 0, 0, 0, 0,
- 0, 0, 0, 18, 0, 14, 0, 0, 0, 39, 25, 0, 0, 0,
- 0, 15, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0,
- 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
- 0, 0, 0, 0, 0, 0, 17, 23, 0, 0, 0, 10, 0, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 16, 0, 0, 0, 26, 0, 0, 0, 0, 0, 24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 22, 0, 0, 0, 0, 19,
- 22, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0,
+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
+ 29, 21, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 22,
+ 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 19, 0, 27,
+ 30, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
+ 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
+ 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
+ 0, 0, 0, 27, 0, 0, 36, 0, 0, 27, 0, 0, 0, 0,
+ 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0,
+ 0, 28, 0, 0, 0, 11, 0, 33, 0, 0, 0, 0, 0, 0,
+ 0, 28, 0, 0, 0, 0, 0, 13, 7, 0, 0, 29, 0, 0,
+ 30, 0, 0, 0, 0, 30, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 43, 0, 0, 0, 3, 0, 0, 0, 0, 0, 6,
+ 43, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0,
+ 15, 0, 0, 0, 0, 18, 0, 0, 0, 18, 14, 0, 0, 0,
+ 0, 24, 0, 0, 0, 0, 17, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 18,
+ 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 17, 0, 0, 0, 0,
+ 37, 26, 0, 0, 11, 0, 0, 0, 0, 23, 10, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 25,
+ 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 22, 0, 0, 24, 0, 0, 18, 0, 0, 0, 0, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 23,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 22, 0, 20, 13,
+ 0, 0, 0, 0, 0, 25, 0, 14, 0, 0, 0, 0, 0, 0,
+ 16, 16, 0, 0, 0, 0, 0, 0, 0, 35, 27, 0, 0, 0,
+ 0, 18, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
+ 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 20, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 14, 17, 25, 19, 0, 0, 23, 20, 0, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 0, 35, 27, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 36, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+ 14, 0, 36, 0, 27, 14, 0, 0, 0, 0, 0, 33, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
- 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0, 24, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 29,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 0, 0, 30, 0, 0, 0, 0, 0, 36, 22,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 35,
+ 0, 0, 0, 11, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 24, 0, 0, 0, 0, 0, 0,
+ 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 24, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 35, 27, 0,
+ 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 36, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
- 0, 27, 0, 0, 0, 31, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 25, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 28, 0, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 22, 0, 20, 35, 0, 36, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 16, 0, 0, 0, 0, 0, 0, 16, 32,
- 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
+ 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 21, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 37, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 29,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 16, 24,
- 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 30, 0, 24, 0, 0, 0, 13, 0, 0, 33, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
- 0, 28, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 15, 0, 17, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 33, 0,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0,
- 0, 0, 9, 0, 31, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 14, 0,
- 0, 0, 0, 0, 29, 0, 0, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 0, 0, 0, 28, 0, 0, 0, 22, 12, 29, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 22, 0, 0, 15, 16, 0, 0, 0, 0,
- 31, 0, 16, 0, 22, 0, 0, 0, 0, 0, 15, 22, 0, 0,
- 0, 43, 0, 0, 0, 0, 0, 0, 18, 31, 0, 0, 0, 0,
- 0, 0, 0, 0, 33, 0, 25, 0, 0, 0, 0, 0, 0, 16,
- 0, 36, 15, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 0, 15, 0, 0, 0, 0, 13, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
+ 0, 29, 11, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
+ 0, 15, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 24, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6, 0, 14, 0, 0, 0, 0, 0, 0, 0, 11, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 15, 0, 10, 0, 0,
- 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 0, 0, 0, 0, 0, 15, 0, 30, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 0, 0, 24, 0, 0, 0, 0, 22, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
+ 0, 0, 20, 22, 0, 0, 0, 0, 0, 0, 9, 0, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7, 0, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 35, 0, 0, 0, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 25, 2,
- 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 17, 0, 30, 0, 0, 0, 22, 0, 0, 0, 13,
- 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 17,
- 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 14, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0,
- 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 7, 0, 0, 0,
- 24, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 36, 0, 15, 0, 0, 0, 0, 0, 0, 17, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 29, 0, 0, 0, 0, 6, 33, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 15, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
- 24, 17, 17, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0,
- 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 17, 0, 35, 0, 0, 0, 0, 27,
- 6, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 28, 0, 22, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
- 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16,
- 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 16, 26, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
- 17, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 0, 0, 0, 20, 17, 0, 0, 24, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 25, 0, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 26, 0, 0, 0, 0,
+ 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 37, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 16, 0, 0, 0, 0, 19, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 17, 22, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 33, 0, 0,
+ 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 10, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 33, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 27, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0,
+ 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 0, 26, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 28, 0, 0,
+ 27, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 14, 0,
+ 0, 0, 0, 17, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 14, 0, 0, 13, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11, 0, 0, 17, 0, 0, 26, 0, 20, 11, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 23, 0, 0, 33, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
+ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
+ 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 33, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
+ 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 15, 0, 16, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 7,
+ 16, 25, 0, 0, 0, 0, 20, 0, 0, 0, 25, 0, 0, 16,
+ 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0,
+ 0, 24, 0, 0, 0, 0, 16, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 28,
+ 0, 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 14, 0, 0,
+ 0, 0, 0, 0, 19, 0, 2, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 36, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 15, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 18, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 26, 0, 0, 0,
+ 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
+ 0, 24, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 0, 0, 0, 23, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 13, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 35, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 17, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 28, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 24, 0, 13, 0, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 17, 0,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 7, 0,
- 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 22,
+ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 16,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
- 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 6, 0, 0,
- 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 34, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 38,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 37, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 33, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7, 0, 0, 0, 24, 0, 0, 0, 17, 24, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 0, 22, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 37, 0, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
+ 0, 0, 13, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
+ 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 16, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 27, 0, 0, 37, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
+ 0, 0, 0, 17, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
- 0, 17, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0,
+ 16, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
+ 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 15, 24, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14, 0, 0, 0, 0, 0, 0, 14, 0, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 23, 13, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
- 0, 2, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 28, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
+ 0, 8, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 28, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 23, 0, 17, 0, 0, 0, 0, 17, 0,
- 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
- 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 28, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 13, 0, 0, 17, 0, 0, 19, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1264,39 +1265,789 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+ 27, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 6, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
+ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1305,44 +2056,6 @@ static const unsigned char lengthtable[] =
0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1354,7 +2067,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1366,25 +2078,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1404,7 +2097,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1412,6 +2104,7 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1422,7 +2115,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1443,6 +2135,7 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1465,6 +2158,7 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1490,7 +2184,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1537,13 +2230,11 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1566,7 +2257,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1640,7 +2330,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1658,7 +2347,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1667,6 +2355,7 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1691,7 +2380,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1727,7 +2415,6 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1757,5430 +2444,5130 @@ static const unsigned char lengthtable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31
};
static const struct grib_keys_hash wordlist[] =
{
- {""}, {""}, {""},
- {"n",1349},
- {""},
- {"nd",1359},
- {"ed",729},
- {"nnn",1363},
- {"td",2214},
- {"t",2203},
- {""},
- {"nt",1378},
- {"sd",1984},
- {"na",1352},
- {""},
- {"m",1225},
- {""},
- {"dy",719},
- {"date",649},
- {""},
- {"year",2476},
- {"name",1353},
- {"min",1308},
- {"day",661},
- {"data",630},
- {""}, {""},
- {"ident",966},
- {"one",1558},
- {"time",2240},
- {""}, {""}, {""},
- {"mars",1228},
- {""}, {""},
- {"names",1358},
- {""}, {""}, {""},
- {"stream",2175},
- {"sort",2119},
- {""},
- {"enorm",771},
- {""}, {""},
- {"metadata",1304},
- {""},
- {"type",2288},
- {"system",2201},
- {"eps",776},
- {"domain",712},
- {"spare",2136},
- {""}, {""}, {""},
- {"edition",730},
- {"oper",1569},
- {"present",1720},
- {"param",1668},
- {""}, {""}, {""},
- {"K",95},
- {""}, {""},
- {"parameter",1674},
- {"iteration",1041},
- {""},
- {"assertion",320},
- {"dimension",695},
- {""},
- {"centre",404},
- {""}, {""}, {""},
- {"step",2164},
- {""},
- {"true",2277},
- {"dataKeys",635},
- {""}, {""},
- {"parameters",1682},
- {"core",605},
- {"timerepres",2254},
- {"opttime",1576},
- {"points",1708},
- {""}, {""},
- {"rectime",1807},
- {""}, {""}, {""},
- {"second",1985},
- {""},
- {"stepZero",2174},
- {"const",578},
- {"minute",1310},
- {"restricted",1849},
- {"dummy",714},
- {""},
- {"units",2345},
- {""}, {""},
- {"radius",1782},
- {""}, {""},
- {"section",2010},
- {"status",2163},
- {""},
- {"partitions",1687},
- {""},
- {"leadtime",1106},
- {"direction",698},
- {""},
- {"section8",2049},
- {"radials",1781},
- {"instrument",998},
- {""}, {""}, {""},
- {"minimum",1309},
- {""}, {""}, {""},
- {"three",2227},
- {"dateTime",659},
- {""},
- {"hdate",937},
- {"dataTime",645},
- {"landtype",1063},
- {""}, {""},
- {"statistics",2162},
- {""}, {""}, {""},
- {"process",1750},
- {"ucs",2336},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"precision",1715},
- {""},
- {"refdate",1813},
- {"dataType",646},
- {""},
- {"method",1305},
- {""}, {""},
- {"count",619},
- {"marsType",1256},
- {""}, {""}, {""}, {""},
- {"class",432},
- {"phase",1701},
- {""},
- {"uco",2335},
- {""}, {""}, {""},
- {"country",623},
{""}, {""}, {""}, {""}, {""},
- {"latitude",1071},
- {"pl",1705},
- {"char",429},
- {"identifier",970},
- {"stepType",2170},
- {"model",1329},
- {"correction",610},
+ {"n",1368},
{""},
- {"total",2256},
+ {"m",1244},
+ {"na",1374},
+ {"t",2242},
{""},
- {"normal",1366},
- {"isSens",1027},
- {"consensus",576},
- {"product",1752},
+ {"nnn",1385},
+ {"nt",1400},
{""},
- {"latitudes",1102},
- {"hundred",958},
- {"Dy",42},
+ {"nd",1381},
+ {"ed",737},
+ {"td",2253},
+ {"name",1375},
+ {"min",1327},
+ {"data",633},
{""},
- {"dataStream",643},
- {"reportType",1828},
+ {"date",654},
+ {""}, {""}, {""},
+ {"time",2283},
+ {"sd",2020},
+ {""}, {""}, {""}, {""},
+ {"ident",982},
{""}, {""},
+ {"one",1584},
+ {"metadata",1323},
+ {""}, {""},
+ {"param",1699},
+ {""},
+ {"stream",2214},
+ {""},
+ {"mars",1247},
+ {"names",1380},
+ {"enorm",780},
+ {"dataset",651},
+ {""}, {""}, {""}, {""},
+ {"spare",2173},
+ {"domain",719},
+ {"eps",785},
+ {""},
+ {"sort",2156},
+ {""},
+ {"centre",406},
+ {""},
+ {"oper",1595},
+ {"parameter",1706},
+ {"present",1754},
+ {"step",2202},
+ {"edition",738},
+ {""}, {""}, {""},
+ {"rectime",1842},
+ {"true",2322},
+ {"core",608},
+ {"Latin",112},
+ {"iteration",1059},
+ {""}, {""},
+ {"opttime",1602},
+ {""}, {""}, {""},
+ {"minute",1329},
+ {""},
+ {"dimension",702},
+ {""}, {""},
+ {"const",581},
+ {"parameters",1714},
+ {""},
+ {"minimum",1328},
+ {"assertion",322},
+ {"Lap",107},
+ {"second",2021},
+ {"points",1741},
+ {"timerepres",2297},
+ {""}, {""},
+ {"section",2046},
+ {"Lo",122},
+ {"units",2391},
+ {"restricted",1885},
+ {"tile",2277},
+ {""},
+ {"direction",705},
+ {""}, {""},
+ {"radius",1816},
+ {"stepZero",2212},
+ {""}, {""},
+ {"status",2201},
+ {"instrument",1014},
+ {"Lop",142},
+ {"ucs",2382},
+ {""}, {""},
+ {"partitions",1720},
+ {""},
+ {"leadtime",1124},
+ {""},
+ {"count",622},
+ {""},
+ {"uuid",2423},
+ {"hdate",952},
+ {"three",2266},
+ {""},
+ {"precision",1749},
+ {"range",1821},
+ {"refdate",1848},
+ {""},
+ {"statistics",2200},
+ {"uco",2381},
+ {"process",1784},
+ {""},
+ {"grid",929},
+ {""},
+ {"radials",1815},
+ {""},
+ {"dataTime",648},
+ {"dateTime",664},
+ {""}, {""},
+ {"stepunits",2213},
+ {""}, {""},
+ {"daLoop",632},
+ {"phase",1734},
+ {"char",431},
+ {"product",1786},
+ {"correction",613},
+ {"method",1324},
+ {""}, {""}, {""},
+ {"section8",2085},
+ {""}, {""},
+ {"identifier",986},
+ {"class",434},
+ {""}, {""},
+ {"origin",1609},
+ {"reference",1849},
+ {""},
+ {"latitude",1089},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"generation",916},
+ {""}, {""},
+ {"pl",1738},
+ {""}, {""},
+ {"consensus",579},
+ {""},
+ {"upperLimit",2413},
+ {""},
+ {"hundred",974},
+ {""}, {""}, {""}, {""},
+ {"hour",964},
+ {""},
+ {"discipline",711},
+ {"file",865},
+ {"latitudes",1120},
+ {""},
+ {"total",2299},
+ {"model",1348},
+ {""},
+ {"normal",1388},
+ {""}, {""},
+ {"false",858},
+ {""}, {""},
+ {"fcperiod",862},
+ {"nref",1399},
+ {""},
+ {"datasetTemplate",653},
+ {"signature",2139},
+ {""},
+ {"million",1326},
+ {"dataStream",646},
+ {""},
+ {"temperature",2255},
+ {"g",905},
+ {"thousand",2265},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsStream",1272},
+ {""},
+ {"resolution",1876},
+ {"nTiles",1373},
+ {"categories",389},
+ {""},
+ {"endStep",771},
+ {"isSens",1044},
+ {""},
+ {"eight",742},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"month",1355},
+ {""},
+ {"platform",1739},
+ {""}, {""},
+ {"marsStep",1271},
+ {"K",94},
+ {"offset",1547},
+ {"diagnostic",698},
+ {"operStream",1596},
+ {""},
+ {"startStep",2193},
+ {"year",2525},
+ {"anoffset",317},
+ {""}, {""},
+ {"truncateLaplacian",2325},
+ {""}, {""},
+ {"elementsTable",743},
+ {"marsQuantile",1268},
+ {""},
+ {"padding",1628},
+ {""},
+ {"offsetdate",1581},
+ {"type",2333},
+ {""}, {""},
+ {"offsettime",1582},
+ {""}, {""}, {""}, {""}, {""},
+ {"ordering",1605},
+ {""},
+ {"oceanStream",1545},
+ {""}, {""}, {""},
+ {"system",2240},
+ {""},
+ {"partitionTable",1719},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"longitude",1203},
+ {""},
+ {"local",1167},
+ {""}, {""}, {""},
{"Di",30},
+ {"TT",240},
+ {"paramtype",1716},
{""},
- {"marsStream",1253},
- {"million",1307},
- {"reference",1814},
- {"hour",948},
- {"dummyc",717},
+ {"channel",429},
+ {""}, {""}, {""}, {""}, {""},
+ {"yLast",2524},
+ {""}, {""},
+ {"two",2331},
+ {""},
+ {"dataDate",636},
+ {"flags",882},
{""}, {""}, {""},
+ {"longitudes",1234},
{"Dstart",38},
+ {"gg",918},
{""}, {""},
- {"discipline",704},
- {"dataDate",633},
- {"codeType",556},
- {""},
- {"file",855},
- {"marsDir",1232},
- {""},
- {"endStep",763},
- {"false",848},
- {""}, {""}, {""}, {""},
- {"masterDir",1261},
- {"thousand",2226},
- {""},
- {"two",2286},
- {""},
- {"elementsTable",735},
- {""},
- {"operStream",1570},
- {""}, {""}, {""}, {""},
- {"marsStep",1252},
- {""},
- {"startStep",2156},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"temperature",2216},
- {""}, {""}, {""}, {""},
- {"yFirst",2474},
- {"marsDomain",1233},
- {"fcperiod",852},
- {""}, {""}, {""}, {""},
- {"nref",1377},
- {"month",1336},
- {""},
- {"TT",239},
- {""}, {""},
- {"accuracy",295},
- {"partitionTable",1686},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"range",1787},
- {"grid",915},
- {""}, {""}, {""},
- {"platform",1706},
+ {"fgTime",864},
{""}, {""}, {""}, {""}, {""},
- {"oceanStream",1519},
- {"rectimeDay",1808},
+ {"marsDir",1251},
{""}, {""}, {""}, {""}, {""}, {""},
- {"notDecoded",1376},
- {"offset",1521},
- {""}, {""}, {""}, {""}, {""},
- {"reserved",1832},
- {"local",1148},
- {"anoffset",315},
+ {"localTime",1195},
+ {""},
+ {"masterDir",1280},
+ {""},
+ {"endTimeStep",774},
{""}, {""}, {""},
- {"endTimeStep",765},
- {"origin",1581},
- {"offsetdate",1555},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"KS",96},
+ {"crcrlf",627},
{""},
- {"offsettime",1556},
+ {"threshold",2267},
+ {""}, {""}, {""}, {""},
+ {"matchSort",1287},
{""},
- {"standardDeviation",2148},
+ {"landtype",1081},
+ {"marsDomain",1252},
+ {""}, {""}, {""},
+ {"dummyc",724},
+ {"hideThis",957},
+ {"marsLatitude",1262},
+ {""}, {""}, {""},
+ {"fcmonth",861},
+ {"siteLatitude",2147},
{""}, {""},
- {"version",2399},
- {"channel",427},
- {"varno",2394},
+ {"instrumentIdentifier",1015},
+ {""}, {""}, {""}, {""},
+ {"forecastperiod",895},
+ {"dataType",649},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"reserved",1867},
+ {""}, {""},
+ {"dataLength",639},
+ {"marsType",1275},
+ {""}, {""},
+ {"flag",877},
+ {""},
+ {"varno",2443},
+ {""},
+ {"paramType",1703},
+ {"notDecoded",1398},
+ {"version",2448},
+ {"dataSelection",645},
+ {""}, {""}, {""},
+ {"band",334},
+ {"stepType",2208},
+ {"countTotal",625},
+ {""},
+ {"dataKeys",638},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"isSpectral",1045},
+ {""},
+ {"forecastTime",894},
+ {""},
+ {"conceptDir",571},
+ {"rdbtime",1827},
+ {"Xp",274},
+ {"reportType",1863},
+ {"codeType",558},
+ {""},
+ {"eleven",745},
+ {""}, {""}, {""},
+ {"userTimeStart",2422},
+ {"TS",238},
+ {"Xo",273},
+ {""},
+ {"efiOrder",741},
+ {"selectedSecond",2122},
+ {""}, {""}, {""}, {""}, {""},
+ {"TScalc",239},
+ {"bitmap",372},
+ {""}, {""}, {""}, {""},
+ {"additionalParameter",302},
+ {""},
+ {"lowerLimit",1237},
+ {""},
+ {"dataOrigin",640},
+ {""},
+ {"KS",95},
+ {""},
+ {"number",1401},
+ {""}, {""}, {""}, {""},
+ {"average",326},
+ {""}, {""},
+ {"elevation",744},
+ {""}, {""},
+ {"dy",726},
+ {""}, {""},
+ {"day",666},
+ {""}, {""},
+ {"statisticalProcess",2198},
+ {""}, {""}, {""},
+ {"isSatellite",1042},
+ {""}, {""},
+ {"windSpeed",2495},
+ {""}, {""}, {""}, {""},
+ {"gridType",939},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"values",2431},
+ {"fgDate",863},
+ {""}, {""}, {""}, {""}, {""},
+ {"forecastSteps",893},
+ {""},
+ {"statisticalProcessesList",2199},
+ {""},
+ {"aerosolpacking",307},
{""},
{"Ly",153},
+ {"localDate",1168},
+ {""}, {""},
+ {"coefsSecond",563},
+ {""},
+ {"localDir",1176},
+ {""},
+ {"ieeeFloats",987},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"levels",1147},
+ {"dummy",721},
+ {""}, {""},
+ {"levelist",1146},
+ {"logTransform",1202},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Latin",113},
- {"threshold",2228},
- {"localTime",1176},
+ {""},
+ {"Lcy",119},
{""}, {""}, {""}, {""},
- {"yLast",2475},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ieeeFloats",971},
- {"hideThis",942},
- {""}, {""}, {""}, {""},
- {"eleven",737},
+ {"avg",330},
+ {""}, {""}, {""},
+ {"recDateTime",1839},
{""},
- {"matchSort",1268},
- {""},
- {"conceptDir",568},
- {""},
- {"signature",2102},
- {""}, {""}, {""}, {""}, {""},
- {"TS",237},
- {""}, {""},
- {"aerosolType",302},
- {""}, {""},
- {"windSpeed",2446},
- {"Lap",108},
- {"dataSelection",642},
- {""}, {""},
- {"categories",387},
- {"Lcy",120},
- {""}, {""},
- {"typicalDay",2326},
- {""}, {""}, {""}, {""}, {""},
- {"eight",734},
- {"Lop",142},
+ {"offsetSection9",1578},
+ {""}, {""}, {""},
+ {"centreDescription",407},
+ {"localSecond",1190},
+ {"unitsFactor",2397},
{"Luy",149},
+ {""}, {""},
+ {"satelliteSeries",1950},
{""}, {""}, {""},
- {"levtype",1130},
- {"elevation",736},
- {"efiOrder",733},
- {"spectralType",2146},
- {""},
- {"gridType",924},
- {""}, {""}, {""}, {""},
- {"typicalTime",2331},
- {""}, {""}, {""}, {""}, {""},
- {"countTotal",622},
- {"userTimeStart",2376},
- {"additionalParameter",300},
- {""},
- {"localDir",1157},
- {""},
- {"localDate",1149},
- {"productType",1757},
- {"daLoop",629},
- {""},
- {"forecastperiod",884},
- {"localDay",1151},
- {""}, {""}, {""}, {""}, {""},
- {"selectedSecond",2086},
- {""}, {""}, {""},
- {"diagnostic",691},
- {""},
- {"crcrlf",624},
- {"fcmonth",851},
- {"values",2382},
+ {"coefsFirst",562},
+ {"forecastLeadTime",886},
{""}, {""},
- {"levels",1129},
- {"longitude",1184},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"isSatellite",1025},
- {""}, {""},
- {"levelist",1128},
- {"coefsFirst",560},
- {""}, {""},
- {"longitudes",1215},
- {"unitsFactor",2351},
- {""}, {""}, {""}, {""}, {""},
- {"marsQuantile",1249},
- {""}, {""},
- {"forecastTime",883},
- {"recDateTime",1804},
- {""}, {""}, {""},
- {"TScalc",238},
- {""}, {""}, {""}, {""},
- {"flags",872},
- {""}, {""}, {""}, {""},
- {"upperLimit",2367},
- {""}, {""},
- {"statisticalProcess",2160},
- {""},
- {"typicalDate",2324},
- {""}, {""}, {""}, {""},
- {"fgTime",854},
- {"endDescriptors",742},
- {"userDateStart",2372},
- {"level",1123},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"centreDescription",405},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"statisticalProcessesList",2161},
- {"forecastSteps",882},
- {"isFillup",1021},
- {"g",892},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"windDirection",2435},
- {""}, {""}, {""}, {""}, {""},
- {"overlayTemplate",1591},
- {""}, {""}, {""}, {""},
- {"runwayState",1908},
- {""},
- {"optionalData",1575},
- {"satelliteSeries",1914},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"isOctahedral",1023},
- {""}, {""},
- {"average",324},
- {"dataOrigin",637},
- {"levelType",1125},
- {""}, {""}, {""}, {""}, {""},
- {"referenceDate",1815},
- {""}, {""}, {""}, {""}, {""},
- {"padding",1597},
- {""}, {""},
- {"truncateLaplacian",2280},
- {"unitOfTime",2342},
- {"indicatorOfParameter",984},
- {""},
- {"fgDate",853},
- {"categoryType",388},
- {"pv",1766},
- {""}, {""}, {""},
- {"offsetSection8",1551},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"aerosolTypeName",303},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"localDateTime",1150},
+ {"marsLevel",1263},
+ {"level",1141},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"lev",1121},
- {""},
- {"nlev",1362},
+ {"unitOfTime",2388},
+ {"country",626},
{""}, {""}, {""}, {""},
- {"startTimeStep",2158},
- {"lowerLimit",1218},
- {"validityTime",2381},
+ {"isOctahedral",1040},
+ {""}, {""}, {""},
+ {"topLevel",2298},
{""}, {""},
- {"codeFigure",555},
+ {"typicalTime",2377},
+ {"offsetSection8",1577},
+ {""},
+ {"productType",1791},
+ {""}, {""}, {""},
+ {"codeFigure",557},
+ {""}, {""},
+ {"userDateStart",2418},
+ {""}, {""}, {""},
+ {"LaD",104},
+ {"aerosolType",304},
+ {""}, {""},
+ {"spectralType",2183},
+ {"destineSection",696},
+ {""}, {""}, {""}, {""},
+ {"accuracy",296},
+ {""},
+ {"indicatorOfParameter",1000},
+ {""}, {""}, {""}, {""},
+ {"yFirst",2523},
{""}, {""}, {""}, {""}, {""}, {""},
- {"fireTemplate",857},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"laplacianOperator",1064},
+ {"isFillup",1037},
+ {"rdbtimeTime",1834},
+ {"centreLongitude",412},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudesList",1121},
+ {""}, {""}, {""},
+ {"zero",2534},
+ {""},
+ {"distinctLatitudes",713},
+ {""},
+ {"aerosolTypeName",305},
+ {""},
+ {"zeros",2535},
+ {""},
+ {"gridSpecification",938},
+ {""}, {""}, {""}, {""},
+ {"pressureLevel",1774},
+ {""}, {""}, {""}, {""}, {""},
+ {"dataFlag",637},
+ {"standardDeviation",2185},
+ {""},
+ {"laplacianOperator",1082},
+ {"referenceSampleInterval",1857},
+ {""}, {""},
+ {"ccsdsFlags",395},
+ {""},
+ {"levtype",1148},
+ {"ccsdsRsi",396},
+ {"endDescriptors",750},
+ {""},
+ {"pv",1800},
+ {"setLocalDefinition",2129},
+ {""}, {""},
+ {"fireTemplate",867},
+ {""},
+ {"obstype",1542},
+ {""}, {""}, {""}, {""}, {""},
+ {"marsRange",1269},
+ {""}, {""},
+ {"periodOfTime",1730},
+ {""}, {""}, {""}, {""},
+ {"windDirection",2484},
+ {""}, {""},
+ {"longitudesList",1235},
+ {""},
+ {"latitudeSexagesimal",1117},
+ {""},
+ {"stepRange",2206},
+ {"referenceDate",1850},
+ {""}, {""},
+ {"localDateTime",1169},
+ {""},
+ {"startTimeStep",2196},
+ {"optionalData",1601},
+ {""}, {""}, {""},
+ {"unitsDecimalScaleFactor",2395},
+ {""},
+ {"referenceStep",1858},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"unitsDecimalScaleFactor",2349},
- {""}, {""}, {""},
- {"LaD",105},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"coordinatesPresent",604},
- {""},
- {"marsStartStep",1251},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"periodOfTime",1697},
- {"waveDomain",2423},
- {""}, {""}, {""},
- {"referenceStep",1823},
- {""},
- {"offsetSection0",1541},
- {"ccsdsFlags",393},
- {""},
- {"coefsSecond",561},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"pressureLevel",1740},
- {""}, {""}, {""},
- {"logTransform",1183},
- {""},
- {"ccsdsRsi",394},
- {"localSecond",1171},
- {""},
- {"parameterDiscipline",1677},
{""}, {""},
- {"band",332},
+ {"templatesLocalDir",2257},
{""},
- {"flag",867},
+ {"pointsOrdering",1742},
{""}, {""}, {""}, {""},
- {"firstDimension",858},
+ {"Dy",42},
+ {""},
+ {"lev",1139},
+ {""}, {""},
+ {"nlev",1384},
+ {""},
+ {"coordinatesPresent",607},
+ {"centreForLocal",408},
+ {""},
+ {"global",919},
+ {""},
+ {"rdbType",1825},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"upperRange",2414},
{""}, {""}, {""}, {""},
- {"datasetForLocal",648},
+ {"tubeDomain",2329},
+ {"typicalDate",2370},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsStartStep",1270},
+ {""},
+ {"ensembleSize",783},
+ {""}, {""}, {""},
+ {"heightLevelName",954},
+ {""}, {""},
+ {"meanSize",1315},
+ {""}, {""}, {""},
+ {"computeStatistics",570},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetSection0",1567},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"rectimeDay",1843},
+ {"rdbtimeDate",1828},
+ {""}, {""}, {""}, {""},
+ {"offsetDescriptors",1561},
+ {"preferLocalConcepts",1753},
{""}, {""}, {""}, {""}, {""},
- {"JS",94},
- {"userDateTimeStart",2374},
- {""}, {""},
- {"rdbtime",1793},
- {""},
- {"offsetSection9",1552},
- {""}, {""},
- {"freeFormData",887},
+ {"boustrophedonic",379},
{""}, {""}, {""}, {""},
- {"Xo",272},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"computeStatistics",567},
- {""}, {""}, {""}, {""}, {""},
- {"marsLevel",1244},
- {""}, {""}, {""}, {""},
- {"Xp",273},
- {""}, {""}, {""}, {""},
- {"gg",904},
- {""},
- {"dateOfForecast",651},
- {"instrumentIdentifier",999},
- {""},
- {"yearOfForecast",2480},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"obstype",1516},
- {"timeOfForecast",2247},
+ {"userDateTimeStart",2420},
{""}, {""},
- {"number",1379},
- {""}, {""},
- {"derivedForecast",689},
- {"longitudesList",1216},
- {"topLevel",2255},
- {"avg",328},
- {"bitmap",370},
+ {"centreLongitudeInDegrees",413},
{""}, {""}, {""},
- {"localDecimalScaleFactor",1152},
+ {"runwayState",1944},
+ {""}, {""}, {""},
+ {"parameterDiscipline",1709},
+ {""},
+ {"datumSize",665},
+ {"overlayTemplate",1622},
+ {""}, {""}, {""}, {""}, {""},
+ {"typeOfTile",2362},
+ {""}, {""}, {""},
+ {"localDecimalScaleFactor",1171},
+ {"levelType",1143},
+ {"laplacianOperatorIsSet",1083},
+ {""},
+ {"activity",298},
+ {"secondSize",2035},
+ {""}, {""}, {""}, {""}, {""},
+ {"categoryType",390},
+ {""},
+ {"localFlag",1178},
+ {""}, {""},
+ {"subSetK",2229},
+ {""},
+ {"firstDimension",868},
+ {""},
+ {"lengthDescriptors",1129},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"conceptsLocalDirAll",574},
+ {""}, {""},
+ {"generatingProcessTemplate",914},
+ {""},
+ {"anoffsetLast",320},
+ {""}, {""},
+ {"JS",93},
+ {"gridDefinition",931},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"angleDivisor",311},
+ {""},
+ {"firstSize",876},
+ {"rdbDateTime",1823},
+ {"validityTime",2430},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"waveDomain",2472},
+ {""},
+ {"datasetForLocal",652},
+ {""}, {""}, {""}, {""}, {""},
+ {"dateOfForecast",656},
+ {""}, {""}, {""},
+ {"timeOfForecast",2290},
+ {""}, {""},
+ {"bottomLevel",378},
+ {"longitudinalDirectionGridLength",1236},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"localDay",1170},
+ {""},
+ {"matchTimeRepres",1288},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"oldSubtype",1583},
+ {""}, {""}, {""}, {""},
+ {"derivedForecast",693},
+ {""}, {""}, {""},
+ {"localDefinition",1174},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"generatingProcessIdentifier",913},
+ {""}, {""},
+ {"anoffsetFirst",318},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"Nr",200},
- {"marsLatitude",1243},
- {""},
- {"offsetDescriptors",1535},
- {"siteLatitude",2110},
- {""}, {""},
- {"laplacianOperatorIsSet",1065},
- {""},
- {"analysisOffsets",308},
- {"marsKeywords",1240},
- {""},
- {"Ny",207},
{""}, {""}, {""}, {""},
- {"aerosolpacking",305},
+ {"originalSubCentreIdentifier",1613},
{"Ni",198},
- {"dataLength",636},
- {""},
- {"dataFlag",634},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"anoffsetFrequency",317},
- {""}, {""},
- {"localDefinition",1155},
- {""}, {""}, {""}, {""}, {""},
- {"rdbType",1791},
- {""},
- {"setLocalDefinition",2093},
- {""}, {""},
- {"marsRange",1250},
- {""}, {""}, {""},
- {"latitudesList",1103},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"validityDate",2380},
- {"distinctLatitudes",706},
- {"stepRange",2168},
- {"anoffsetFirst",316},
- {"Ncy",196},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"gridDefinition",917},
- {""},
- {"Nuy",205},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"angleDivisor",309},
- {""},
- {"centreForLocal",406},
{""}, {""}, {""}, {""},
- {"controlForecastCluster",583},
- {"J",93},
- {"parameterName",1679},
- {""}, {""},
- {"reservedOctet",1837},
- {""}, {""},
- {"setDecimalPrecision",2092},
- {""}, {""}, {""},
- {"templatesLocalDir",2218},
- {"suiteName",2194},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"modelName",1332},
+ {"northernLatitudeOfDomain",1396},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"rdbtimeDay",1795},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"referenceSampleInterval",1822},
- {""}, {""}, {""},
- {"decimalScaleFactor",671},
+ {"lowerRange",1238},
+ {"setDecimalPrecision",2128},
{""},
- {"upperRange",2368},
+ {"groupSplitting",943},
{""}, {""},
- {"verticalDomainTemplate",2409},
- {"rdbtimeTime",1800},
- {""}, {""},
- {"hourOfForecast",951},
- {""}, {""},
- {"scaledDirections",1945},
+ {"Nside",203},
+ {"generatingProcessIdentificationNumber",912},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"freeFormData",900},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"longitudeOfCentrePoint",1207},
{""}, {""}, {""},
- {"shortName",2098},
- {"lengthDescriptors",1111},
+ {"clusterSize",551},
+ {""}, {""}, {""},
+ {"incrementOfLengths",991},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"endOfRange",770},
+ {""}, {""},
+ {"reservedOctet",1872},
{""},
- {"dayOfForecast",664},
+ {"lcwfvSuiteName",1123},
+ {""}, {""}, {""}, {""},
+ {"southernLatitudeOfDomain",2167},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"parameterName",1711},
+ {""},
+ {"hourOfForecast",967},
+ {""}, {""},
+ {"marsLevelist",1264},
+ {""},
+ {"NL",186},
+ {"anoffsetFrequency",319},
+ {"verticalDomainTemplate",2458},
+ {"suiteName",2233},
+ {""}, {""}, {""},
+ {"bufrTemplate",384},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"tileName",2282},
+ {""}, {""}, {""}, {""},
+ {"decimalScaleFactor",676},
+ {""},
+ {"integerScaleFactor",1018},
+ {"J",92},
+ {"typicalDay",2372},
+ {""},
+ {"marsParam",1267},
+ {""},
+ {"marsKeywords",1259},
+ {"newSubtype",1383},
+ {""}, {""}, {""},
+ {"analysisOffsets",310},
+ {""},
+ {"modelName",1351},
+ {""}, {""}, {""},
+ {"LaR",106},
+ {""}, {""}, {""},
+ {"monthOfForecast",1358},
+ {"typeOfLevel",2347},
+ {"cfName",417},
+ {"gridName",936},
+ {"latitudeOfCentrePoint",1094},
+ {"localTimeForecastList",1196},
+ {""}, {""}, {""}, {""},
+ {"referenceOfLengths",1853},
+ {""}, {""},
+ {"yearOfForecast",2529},
+ {""}, {""}, {""},
+ {"LoR",127},
+ {""},
+ {"epsPoint",787},
+ {"rdbtimeDay",1829},
+ {""}, {""},
+ {"controlForecastCluster",586},
+ {"longitudeSexagesimal",1233},
+ {""},
+ {"shortName",2135},
+ {""},
+ {"Nassigned",193},
+ {""},
+ {"scaledDirections",1981},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"defaultStepUnits",684},
+ {""}, {""}, {""}, {""},
+ {"realPart",1836},
+ {"integerScalingFactorAppliedToDirections",1019},
+ {"integerScalingFactorAppliedToFrequencies",1020},
+ {""}, {""}, {""},
+ {"Nf",197},
+ {"qfe",1802},
+ {""}, {""}, {""}, {""},
+ {"gridDefinitionSection",933},
{""},
{"NT",190},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"localTimeForecastList",1177},
- {""}, {""}, {""},
- {"matchTimeRepres",1269},
- {""}, {""},
- {"marsParam",1248},
- {"centreLongitude",410},
- {""}, {""}, {""}, {""},
- {"subSetK",2190},
- {""}, {""},
- {"cfName",415},
- {""}, {""},
- {"preferLocalConcepts",1719},
- {""}, {""}, {""},
- {"tubeDomain",2284},
- {""}, {""}, {""},
- {"latitudeOfCentrePoint",1076},
+ {""}, {""}, {""}, {""}, {""},
+ {"ifsParam",988},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"monthOfForecast",1339},
- {""}, {""},
- {"epsPoint",778},
- {"forecastLeadTime",875},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeOfCentrePoint",1188},
- {"localFlag",1159},
+ {"sequences",2125},
+ {"editionNumber",739},
+ {""}, {""}, {""}, {""}, {""},
+ {"minuteOfReference",1335},
{""}, {""}, {""},
- {"realPart",1802},
- {"rdbtimeDate",1794},
+ {"multiplicationFactorForLatLong",1367},
+ {""},
+ {"quantile",1812},
+ {""}, {""}, {""}, {""}, {""},
+ {"dateOfReference",661},
+ {""}, {""}, {""},
+ {"timeOfReference",2293},
+ {""},
+ {"rdbSubtype",1824},
+ {""}, {""}, {""}, {""},
+ {"overlayTemplateNumber",1623},
+ {""},
+ {"sectionNumber",2094},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"masterTableNumber",1281},
+ {"climatologicalRegime",438},
+ {""},
+ {"numberOfTimeSteps",1516},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"qnh",1805},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"trueLengthOfLastGroup",2323},
+ {""}, {""}, {""},
+ {"visibility",2462},
+ {"minuteOfForecast",1332},
+ {""}, {""}, {""},
+ {"validityDate",2428},
+ {""}, {""}, {""}, {""},
+ {"secondOfForecast",2028},
+ {"observedData",1541},
+ {""}, {""},
+ {"numberOfFloats",1449},
+ {""}, {""}, {""}, {""},
+ {"gridDefinitionDescription",932},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"originalSubCentreIdentifier",1585},
- {"editionNumber",731},
- {""},
- {"Nf",197},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"incrementOfLengths",975},
- {""},
- {"oldSubtype",1557},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"latitudeSexagesimal",1099},
- {"anoffsetLast",318},
- {""},
- {"integerScaleFactor",1002},
- {"ensembleSize",774},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"gridName",922},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"sectionNumber",2058},
- {"lowerRange",1219},
- {"Nassigned",193},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfLevel",2302},
- {""},
- {"ifsParam",972},
- {""}, {""},
- {"energyNorm",770},
- {""}, {""},
- {"conceptsLocalDirAll",571},
- {"qfe",1768},
- {""},
- {"rdbDateTime",1789},
- {"northernLatitudeOfDomain",1374},
- {""}, {""}, {""}, {""}, {""},
- {"visibility",2413},
- {""}, {""},
- {"stepTypeForConversion",2171},
- {""}, {""}, {""},
- {"secondOfForecast",1992},
- {""}, {""},
- {"minuteOfForecast",1313},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"generatingProcessTemplate",901},
- {""},
- {"sequences",2089},
- {""},
- {"newSubtype",1361},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"quantile",1778},
- {"typeOfStatisticalPostProcessingOfEnsembleMembers",2314},
- {""}, {""},
- {"marsLevelist",1245},
- {""}, {""}, {""}, {""},
- {"referenceOfLengths",1818},
- {""},
- {"lcwfvSuiteName",1105},
- {"gridDefinitionSection",919},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"southernLatitudeOfDomain",2130},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"endOfRange",762},
- {""},
- {"clusterNumber",548},
- {""},
- {"defaultName",675},
- {"global",905},
- {""},
- {"qnh",1771},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"gridDefinitionDescription",918},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"atmosphericChemicalOrPhysicalConstituentType",321},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"channelNumber",428},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"longitudinalDirectionGridLength",1217},
- {""}, {""},
- {"spectralDataRepresentationType",2144},
- {"frequency",888},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"spectralDataRepresentationMode",2143},
- {""}, {""},
- {"generatingProcessIdentifier",900},
- {""}, {""}, {""}, {""}, {""},
- {"rectimeSecond",1811},
- {"minuteOfReference",1316},
- {""}, {""}, {""},
- {"standardParallel",2149},
- {"uerraSection",2338},
- {""}, {""}, {""},
- {"waveLevType",2425},
- {"crraSection",627},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfStatisticalProcessingForTimeRangeForReferencePeriod",2316},
- {""}, {""}, {""},
- {"integerScalingFactorAppliedToDirections",1003},
- {"integerScalingFactorAppliedToFrequencies",1004},
- {""}, {""}, {""}, {""}, {""},
- {"dateOfReference",656},
- {""}, {""},
- {"yearOfReference",2483},
- {""},
- {"typeOfStatisticalProcessing",2315},
- {""}, {""}, {""}, {""}, {""},
- {"timeOfReference",2250},
- {""},
- {"optimisationTime",1573},
- {""}, {""},
- {"forecastPeriod",878},
- {"longitudeOfGridPoints",1195},
- {""}, {""},
- {"windPresent",2445},
- {""},
- {"defaultParameter",676},
- {""}, {""}, {""}, {""}, {""},
- {"generatingProcessIdentificationNumber",899},
- {""}, {""}, {""}, {""}, {""},
- {"heightLevelName",939},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"faFieldName",845},
- {""},
- {"boustrophedonic",377},
- {""},
- {"sectionPosition",2059},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"typicalSecond",2330},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"observedData",1515},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"bufrTemplate",382},
- {""}, {""}, {""},
- {"levTypeName",1122},
- {""}, {""}, {""}, {""},
- {"groupSplitting",928},
- {""}, {""}, {""}, {""}, {""},
- {"LaR",107},
- {""}, {""}, {""},
- {"listOfScaledFrequencies",1145},
- {"standardParallelInDegrees",2150},
- {""},
- {"NL",186},
- {""}, {""},
- {"createNewData",625},
- {""}, {""},
- {"SPD",227},
- {""},
- {"LoR",127},
- {""}, {""}, {""}, {""},
- {"localSection",1172},
- {""},
- {"forecastPeriodTo",880},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"defaultStepUnits",679},
- {""}, {""},
- {"bottomLevel",376},
- {""}, {""}, {""}, {""}, {""},
- {"overlayTemplateNumber",1592},
- {""},
- {"latitudeOfCentrePointInDegrees",1077},
- {""},
- {"multiplicationFactorForLatLong",1348},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"epsStatisticsPoint",780},
- {""}, {""}, {""},
- {"numberOfFloats",1427},
- {"neitherPresent",1360},
- {""}, {""}, {""},
- {"yDirectionGridLength",2471},
- {""}, {""}, {""}, {""}, {""},
- {"climatologicalRegime",436},
- {""}, {""},
- {"dewPointTemperature",690},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"hourOfReference",954},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"angleOfRotation",311},
- {""}, {""}, {""}, {""}, {""},
{"Adelta",13},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"numberOfDirections",1439},
{""},
- {"siteId",2109},
- {""},
- {"treatmentOfMissingData",2276},
+ {"defaultName",680},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"marsIdent",1239},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"paramId",1669},
- {"monthOfReference",1342},
+ {"clusterNumber",550},
{""},
- {"maximum",1274},
- {"isAuto",1011},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfTimeSteps",1492},
+ {"optimizeScaleFactor",1600},
{""}, {""}, {""},
- {"corr4Data",609},
+ {"longitudeOfGridPoints",1214},
+ {""}, {""}, {""}, {""},
+ {"rectimeSecond",1846},
+ {""}, {""},
+ {"isAuto",1027},
+ {""}, {""},
+ {"crraSection",630},
+ {""}, {""}, {""},
+ {"uerraSection",2384},
+ {""}, {""}, {""}, {""},
+ {"numberingOrderOfDiamonds",1534},
+ {""}, {""}, {""}, {""},
+ {"energyNorm",779},
+ {"channelNumber",430},
+ {""}, {""}, {""}, {""}, {""},
+ {"dayOfForecast",669},
{""},
- {"productDefinition",1753},
+ {"localDefinitionNumber",1175},
+ {""},
+ {"numberOfSection",1506},
+ {""}, {""}, {""},
+ {"spectralDataRepresentationMode",2180},
+ {""}, {""}, {""}, {""},
+ {"hourOfReference",970},
+ {""},
+ {"optimisationTime",1599},
+ {""}, {""}, {""},
+ {"defaultParameter",681},
+ {""}, {""}, {""},
+ {"computeLaplacianOperator",569},
+ {""},
+ {"listOfScaledFrequencies",1163},
+ {""},
+ {"forecastPeriod",889},
+ {""},
+ {"waveLevType",2474},
+ {""}, {""},
+ {"numberOfSubsets",1511},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfLocalDefinitions",1466},
+ {""}, {""}, {""},
+ {"standardParallel",2186},
+ {""}, {""}, {""}, {""}, {""},
+ {"dataAccessors",634},
+ {""}, {""}, {""}, {""},
+ {"typeOfStatisticalPostProcessingOfEnsembleMembers",2359},
+ {"nTileAtt",1371},
+ {""}, {""}, {""}, {""},
+ {"Ny",208},
+ {"angleOfRotation",313},
+ {"horizontalCoordinateDefinition",959},
+ {"horizontalCoordinateSupplement",960},
+ {""},
+ {"monthOfReference",1361},
+ {""},
+ {"XR",271},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"centreLongitudeInDegrees",411},
- {"secondDimension",1986},
- {""},
- {"defaultTypeOfLevel",680},
- {""}, {""},
- {"iIncrement",963},
- {""}, {""}, {""},
- {"N",171},
- {""}, {""}, {""}, {""}, {""},
- {"dimensionType",697},
- {"originalParameterNumber",1583},
- {""}, {""}, {""}, {""},
- {"referencePeriodList",1820},
- {""},
- {"scaleFactorOfSecondSize",1934},
- {""},
- {"numberOfDirections",1417},
- {""},
- {"forecastPeriodFrom",879},
- {""}, {""}, {""}, {""},
- {"modeNumber",1328},
- {""}, {""}, {""}, {""}, {""},
- {"oceanLevName",1518},
- {"secondOfForecastUsedInLocalTime",1993},
- {""}, {""},
- {"minuteOfForecastUsedInLocalTime",1314},
- {"auxiliary",323},
- {""}, {""},
- {"scaleFactorOfFirstSize",1923},
- {""},
- {"correction1Part",612},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"numberOfSection",1483},
- {""}, {""},
- {"longitudeSexagesimal",1214},
- {""},
- {"computeLaplacianOperator",566},
- {""},
- {"scaleFactorOfStandardDeviation",1936},
- {"extraDim",802},
- {""},
- {"dataAccessors",631},
- {""},
- {"inputDataPresentIndicator",991},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfStandardDeviationInTheCluster",1937},
- {""}, {""}, {""},
- {"rdbSubtype",1790},
- {""},
- {"numberOfSubsets",1488},
- {""}, {""}, {""}, {""}, {""},
- {"xFirst",2467},
+ {"yearOfReference",2532},
+ {"typeOfStatisticalProcessing",2360},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfDiamonds",1416},
- {""}, {""},
- {"waveDirectionNumber",2422},
- {""}, {""}, {""}, {""}, {""},
- {"iDirectionIncrement",959},
- {""}, {""}, {""},
- {"temperatureAndDewpointPresent",2217},
+ {"indicatorOfUnitOfTimeRange",1006},
{""}, {""}, {""}, {""},
- {"numberOfFrequencies",1434},
- {"corr3Data",608},
- {""}, {""}, {""},
- {"is_uerra",1036},
- {""}, {""},
- {"modelIdentifier",1331},
- {""}, {""},
- {"endOfProduct",761},
- {"expandedTypes",793},
+ {"modeNumber",1347},
+ {"Ncy",196},
+ {"dataValues",650},
+ {"numberOfFrequencies",1456},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Nuy",206},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"faLevelName",846},
- {""},
- {"section_8",2078},
- {""}, {""}, {""},
- {"defaultShortName",678},
+ {"uuidOfDataGroup",2424},
+ {""}, {""}, {""}, {""},
+ {"validityDateTime",2429},
+ {"localSection",1191},
+ {""}, {""}, {""}, {""}, {""},
+ {"minuteOfForecastUsedInLocalTime",1333},
+ {"numberOfDiamonds",1438},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"TAFstr",235},
- {"probPoint",1746},
- {""}, {""}, {""},
- {"tiggeSection",2234},
+ {"secondOfForecastUsedInLocalTime",2029},
+ {"tiggeSection",2273},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"forecastPeriodTo",891},
+ {"probPoint",1780},
+ {""},
+ {"latitudeOfCentrePointInDegrees",1095},
+ {""},
+ {"originalParameterNumber",1611},
+ {"referenceValue",1859},
+ {"boustrophedonicOrdering",380},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"expver",800},
- {"applicationIdentifier",319},
- {""}, {""}, {""},
- {"orderOfSpatialDifferencing",1578},
- {""},
- {"totalNumber",2260},
- {"localDefinitionNumber",1156},
- {""}, {""}, {""}, {""},
- {"expoffset",799},
- {""}, {""}, {""}, {""},
- {"defaultFaFieldName",672},
- {""}, {""},
- {"selectedDay",2081},
- {""},
- {"xLast",2468},
- {""},
- {"short_name",2101},
- {""}, {""},
- {"_T",288},
- {""}, {""},
- {"corr2Data",607},
- {""},
- {"section_08",2067},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"verificationDate",2395},
- {""}, {""}, {""},
- {"pvlLocation",1767},
- {""}, {""},
- {"systemNumber",2202},
- {"typeOfRelationToReferenceDataset",2310},
- {""}, {""},
- {"XR",270},
- {"dataRepresentation",638},
- {""}, {""}, {""},
- {"defaultFaLevelName",673},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"unitOfOffsetFromReferenceTime",2341},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"_endStep",291},
- {"inputDelayedDescriptorReplicationFactor",992},
- {""},
- {"widthOfFirstOrderValues",2431},
- {""}, {""}, {""},
- {"subSetJ",2189},
- {""},
- {"orderOfSPD",1577},
- {"is_aerosol",1028},
- {""}, {""}, {""}, {""},
- {"simpleThinningSkip",2106},
- {""}, {""}, {""}, {""},
- {"indexTemplate",976},
- {""},
- {"ccccIdentifiers",390},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfStatisticallyProcessedFieldsForLocalTime",1486},
- {""}, {""}, {""}, {""},
- {"changeDecimalPrecision",421},
- {""}, {""}, {""},
- {"representationType",1830},
- {""},
- {"cnmc_isac",554},
- {""}, {""},
- {"P",211},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"significanceOfReferenceTime",2104},
- {""}, {""}, {""},
- {"numberOfForcasts",1428},
+ {"experiment",804},
{""}, {""}, {""}, {""}, {""},
- {"NR",188},
- {""}, {""}, {""}, {""},
- {"headersOnly",938},
- {""}, {""},
- {"dataRepresentationType",641},
- {""}, {""},
- {"partitionItems",1684},
+ {"oceanLevName",1544},
{""},
- {"methodNumber",1306},
- {"_anoffset",290},
+ {"iteratorDisableUnrotate",1061},
{""}, {""},
- {"changingPrecision",426},
- {""}, {""}, {""}, {""},
- {"local_use",1182},
- {"legNumber",1109},
- {""}, {""},
- {"numberOfForecastsInTube",1432},
+ {"sectionPosition",2095},
+ {"xLast",2517},
{""},
- {"scaleFactorOfFirstFixedSurface",1922},
+ {"maximum",1293},
+ {"yDirectionGridLength",2520},
{""}, {""},
- {"numberOfLocalDefinitions",1444},
- {"clusteringMethod",551},
- {"TAF",234},
- {"rdbtimeSecond",1799},
- {"efas_model",732},
- {""},
- {"typeOfTimeIncrement",2317},
- {""},
- {"typeOfDistributionFunction",2293},
+ {"atmosphericChemicalOrPhysicalConstituentType",323},
{""}, {""},
- {"numberingOrderOfDiamonds",1508},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"section_09",2068},
- {"indicatorOfUnitOfTimeRange",990},
- {""}, {""},
- {"groupLeafNodeK",926},
- {""}, {""}, {""},
- {"generatingProcessTemplateNumber",902},
- {"postProcessing",1711},
- {"trueLengthOfLastGroup",2278},
- {""}, {""},
- {"cnmc_cmcc",553},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"averagingPeriod",327},
- {"diffInDays",693},
- {"indexingTime",980},
- {"unitOfTimeIncrement",2343},
- {"is_chemical",1030},
- {""}, {""},
- {"powerOfTenUsedToScaleClimateWeight",1712},
- {""}, {""}, {""},
- {"_TS",289},
- {""}, {""}, {""}, {""}, {""},
- {"dataRepresentationTemplate",639},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"climateDateFrom",434},
- {""}, {""}, {""},
- {"simpleThinningStart",2107},
- {""},
- {"listOfDistributionFunctionParameter",1141},
- {""},
- {"dayOfStartOfReferencePeriod",668},
- {""}, {""}, {""}, {""}, {""},
- {"gts_header",935},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"is_localtime",1033},
- {""},
- {"scaleFactorOfSecondFixedSurface",1933},
+ {"iDirectionIncrement",975},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"centreLatitude",408},
- {""}, {""}, {""}, {""},
- {"g2grid",895},
{""}, {""},
- {"latitudeOfGridPoints",1080},
- {"matchLandType",1267},
+ {"totalNumber",2303},
{""},
- {"iteratorDisableUnrotate",1043},
+ {"spectralDataRepresentationType",2181},
{""}, {""},
- {"endOfInterval",759},
- {""}, {""}, {""}, {""},
- {"isAccumulation",1010},
+ {"charValues",432},
+ {""},
+ {"epsStatisticsPoint",789},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"applicationIdentifier",321},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"legNumber",1127},
+ {"windPresent",2494},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfStatisticallyProcessedFieldsForLocalTime",1509},
+ {""},
+ {"significanceOfReferenceTime",2141},
{""}, {""},
- {"secondLatitude",1989},
- {"scanPosition",1976},
- {"dataRepresentationTemplateNumber",640},
+ {"angleOfRotationInDegrees",314},
+ {""}, {""},
+ {"neitherPresent",1382},
+ {""},
+ {"faFieldName",855},
+ {""}, {""},
+ {"pvlLocation",1801},
{""}, {""}, {""}, {""}, {""}, {""},
- {"qnhPresent",1773},
+ {"orderOfSpatialDifferencing",1604},
+ {""},
+ {"faLevelName",856},
+ {"floatVal",883},
{""}, {""}, {""}, {""},
- {"stepTypeInternal",2172},
+ {"stepTypeForConversion",2209},
+ {""}, {""},
+ {"changingPrecision",428},
+ {"numberOfRadials",1498},
+ {"typicalSecond",2376},
{""}, {""}, {""},
- {"dataValues",647},
+ {"scaleFactorOfSecondSize",1970},
{""},
- {"orientationOfTheGrid",1579},
- {""}, {""}, {""},
- {"qfePresent",1769},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"satelliteIdentifier",1912},
+ {"standardParallelInDegrees",2187},
+ {"defaultTypeOfLevel",685},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"numberOfOperationalForecastTube",1455},
- {""}, {""}, {""}, {""}, {""},
- {"angleOfRotationInDegrees",312},
- {""}, {""},
- {"stretchingFactor",2177},
- {"bitmapSectionPresent",372},
- {""}, {""},
- {"widthOfSPD",2433},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"masterTableNumber",1262},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"section8Pointer",2051},
- {""}, {""},
- {"numberOfDistinctSection8s",1423},
- {""}, {""},
- {"numberOfRadials",1475},
- {"longitudeOfIcosahedronPole",1196},
- {""},
- {"secondsOfReference",2009},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"tigge_name",2236},
- {""},
- {"sensitiveAreaDomain",2088},
- {"streamOfAnalysis",2176},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"md5Data",1275},
- {""}, {""}, {""},
- {"minutesAfterDataCutoff",1318},
- {"angleOfRotationOfProjection",313},
- {"referenceValue",1824},
- {""}, {""}, {""}, {""},
- {"molarMass",1335},
- {"SecondLatitude",228},
- {"centuryOfReference",413},
- {""}, {""}, {""},
- {"stretchingFactorScaled",2178},
- {""},
- {"firstLatitude",861},
- {"section0Pointer",2012},
+ {"groupLeafNodeK",941},
{""}, {""},
- {"levelIndicator",1124},
+ {"productDefinition",1787},
+ {""}, {""}, {""},
+ {"rdbtimeSecond",1833},
+ {"clusteringMethod",553},
{""},
- {"offsetFreeFormData",1537},
- {"ensembleForecastNumbers",772},
+ {"siteId",2146},
{""},
- {"indexingDate",979},
+ {"paramId",1700},
+ {""},
+ {"referencePeriodList",1855},
+ {"TAFstr",236},
+ {"marsIdent",1258},
+ {""},
+ {"numberOfForcasts",1450},
+ {"methodNumber",1325},
{""}, {""}, {""}, {""},
+ {"subSetJ",2228},
+ {"frequency",901},
+ {""}, {""},
+ {"observablePropertyTemplate",1536},
+ {""}, {""}, {""}, {""}, {""},
+ {"ensembleForecastNumbers",781},
+ {""}, {""}, {""}, {""},
+ {"iIncrement",979},
+ {""}, {""},
+ {"typeOfStatisticalProcessingForTimeRangeForReferencePeriod",2361},
+ {""}, {""},
{"Nb",194},
- {""},
- {"PLPresent",214},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"section9Pointer",2054},
- {""}, {""},
- {"numberOfDistinctSection9s",1424},
- {""},
- {"md5Section8",1288},
- {""}, {""}, {""},
- {"charValues",430},
- {""},
- {"minuteOfAnalysis",1311},
- {""}, {""},
- {"dayOfReference",667},
- {""}, {""}, {""}, {""}, {""},
- {"scaleFactorAtReferencePoint",1915},
- {"marsModel",1247},
- {""}, {""},
- {"scalingFactorForFrequencies",1975},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"secondDimensionPhysicalSignificance",1988},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"dayOfAnalysis",662},
- {"floatVal",873},
+ {"expoffset",809},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"unitOfTimeIncrement",2389},
+ {""}, {""}, {""}, {""},
+ {"scaleFactorOfStandardDeviation",1972},
{""},
- {"localLatitude",1162},
+ {"numberOfForecastsInTube",1454},
+ {""}, {""},
+ {"SPD",228},
+ {""}, {""},
+ {"dewPointTemperature",697},
+ {""}, {""},
+ {"formatForLongs",897},
+ {"observablePropertyTemplateNumber",1537},
+ {""}, {""},
+ {"scaleFactorOfStandardDeviationInTheCluster",1973},
+ {"simpleThinningSkip",2143},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"versionNumOfFilesFreeSpaceStorage",2400},
- {"FirstLatitude",67},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"gts_ddhh00",934},
- {""}, {""}, {""}, {""},
- {"lengthOfProjectLocalTemplate",1118},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"md5Section9",1289},
- {"sfc_levtype",2095},
- {"correction2Part",614},
+ {"ensembleForecastNumbersList",782},
{""}, {""},
- {"expandedDescriptors",787},
- {""},
- {"numberOfForecastsUsedInLocalTime",1433},
+ {"extraDim",812},
+ {"realization",1838},
+ {"firstLatitude",871},
{""}, {""}, {""}, {""},
- {"observablePropertyTemplate",1510},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"decimalPrecision",670},
- {""},
- {"MS",158},
+ {"treatmentOfMissingData",2321},
{""}, {""}, {""}, {""}, {""},
- {"offsetAfterLocalSection",1525},
- {""}, {""},
- {"marsLongitude",1246},
- {""}, {""},
- {"siteLongitude",2111},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"perturbedType",1700},
+ {"forecastPeriodFrom",890},
{""},
- {"zeros",2486},
- {""}, {""},
- {"zero",2485},
- {""}, {""}, {""}, {""},
- {"dirty_statistics",702},
- {""}, {""},
- {"tubeNumber",2285},
- {""}, {""}, {""}, {""},
- {"internalVersion",1006},
- {""}, {""}, {""}, {""}, {""},
- {"boustrophedonicOrdering",378},
- {"longitudeOfLastGridPoint",1197},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"observablePropertyTemplateNumber",1511},
- {"angleSubdivisions",314},
+ {"powerOfTenUsedToScaleClimateWeight",1746},
{""},
- {"periodOfTimeIntervals",1698},
- {"numberOfPartitions",1459},
- {"representationMode",1829},
+ {"scaleFactorOfFirstSize",1959},
{""},
- {"NAT",174},
- {"clusterMember8",546},
- {"offsetAfterPadding",1526},
- {""}, {""}, {""}, {""}, {""},
- {"codedValues",559},
- {""}, {""}, {""}, {""}, {""},
- {"globalDomain",906},
- {"DyInDegrees",43},
- {""}, {""},
- {"DiInDegrees",32},
- {""}, {""},
- {"thisMarsType",2225},
+ {"secondDimension",2022},
{""},
- {"productDefinitionTemplateNumber",1754},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"nosigPresent",1375},
- {""}, {""},
- {"unitsOfSecondFixedSurface",2354},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"longitudeOfFirstGridPoint",1193},
- {"tableNumber",2206},
+ {"destineLocalVersion",694},
+ {"averagingPeriod",329},
+ {""},
+ {"postProcessing",1745},
+ {"marsLongitude",1265},
+ {"internalVersion",1022},
{""}, {""}, {""},
- {"baseAddress",333},
- {"corr1Data",606},
- {"isEps",1020},
- {""}, {""},
- {"expandedNames",788},
- {""},
- {"theMessage",2221},
- {""}, {""}, {""}, {""}, {""},
- {"localLongitude",1165},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"localMinute",1168},
- {""}, {""}, {""},
- {"typeOfPostProcessing",2306},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"memberNumber",1302},
- {"meanSize",1296},
- {"gridPointPosition",923},
- {""}, {""}, {""},
- {"correction3Part",616},
- {""},
- {"productDefinitionTemplateNumberInternal",1755},
- {""},
- {"oneMillionConstant",1560},
- {""}, {""},
- {"md5Structure",1290},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"offsetAfterCentreLocalSection",1523},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"totalNumberOfdimensions",2275},
- {""}, {""}, {""},
- {"localMonth",1169},
- {""}, {""}, {""}, {""},
- {"orientationOfTheGridInDegrees",1580},
- {""}, {""}, {""},
- {"ensembleForecastNumbersList",773},
- {"secondOrderFlags",1996},
- {""}, {""},
- {"ensembleStandardDeviation",775},
- {"verticalDomainTemplateNumber",2410},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"thisMarsStream",2224},
- {""}, {""}, {""},
- {"floatValues",874},
- {""}, {""}, {""}, {""}, {""},
- {"clusterMember9",547},
- {"monthlyVerificationTime",1346},
- {""},
- {"datumSize",660},
- {""}, {""}, {""}, {""},
- {"secondSize",1999},
- {""}, {""}, {""}, {""},
- {"radialAngularSpacing",1780},
- {""},
- {"clutterFilterIndicator",552},
- {""},
- {"internationalDataSubCategory",1007},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"scaleFactorOfRadiusOfSphericalEarth",1932},
- {""}, {""}, {""},
- {"missingDataFlag",1320},
- {""},
- {"angleMultiplier",310},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"marsEndStep",1234},
- {"totalNumberOfTubes",2271},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"spatialProcessing",2141},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"spectralMode",2145},
- {""},
- {"firstSize",866},
- {"marsLamModel",1242},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfDistributionFunctionParameter",1919},
- {""}, {""},
- {"tableReference",2207},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"spare4",2140},
- {"monthlyVerificationDate",1344},
- {""}, {""},
- {"operatingMode",1571},
- {"md5DataSection",1276},
- {""},
- {"numberOfReferencePeriodTimeRanges",1476},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfReservedBytes",1480},
- {""}, {""},
- {"localSectionPresent",1173},
- {""}, {""}, {""}, {""}, {""},
- {"md5TimeDomainSection",1291},
- {""},
- {"NP",187},
- {""}, {""},
- {"interpretationOfNumberOfPoints",1008},
- {""}, {""}, {""}, {""},
- {"earthMinorAxis",723},
- {"localDefNumberOne",1153},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"unsignedIntegers",2360},
- {""},
- {"binaryScaleFactor",368},
- {"observationGeneratingProcessIdentifier",1513},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"section4",2032},
- {"timeIncrement",2244},
- {""}, {""}, {""},
- {"perturbationNumber",1699},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"stringValues",2179},
- {""}, {""}, {""},
- {"is_aerosol_optical",1029},
- {"longitudeOfCentrePointInDegrees",1189},
- {""}, {""}, {""}, {""}, {""},
- {"totalNumberOfDirections",2263},
- {""}, {""},
- {"heightOrPressureOfLevel",940},
- {"falseNorthing",850},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"gridDefinitionTemplateNumber",920},
- {""},
- {"levelValues",1126},
- {"indexTemplateNumber",977},
- {"addressOfFileFreeSpaceInfo",301},
- {"latitudeLastInDegrees",1073},
- {""}, {""},
- {"tiggeModel",2233},
- {""},
- {"jdSelected",1053},
- {""}, {""},
- {"identificationNumber",967},
- {""}, {""}, {""},
- {"representativeMember",1831},
- {""},
- {"dateOfForecastRun",652},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfRemaininChars",1478},
- {""}, {""},
- {"tablesVersion",2210},
- {"scanningMode",1977},
- {""}, {""}, {""},
- {"totalNumberOfFrequencies",2265},
- {"northLatitudeOfCluster",1367},
- {""},
- {"scanningMode8",1982},
- {""}, {""},
- {"clusterSize",549},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"localTimeMethod",1178},
- {""}, {""},
- {"is_chemical_distfn",1031},
- {""},
- {"totalNumberOfQuantiles",2268},
- {""}, {""}, {""},
- {"julianDay",1054},
- {""}, {""},
- {"diagnosticNumber",692},
- {"subcentreOfAnalysis",2192},
- {"bitmapPresent",371},
- {""}, {""},
- {"extractSubset",833},
- {""},
- {"LaDInDegrees",106},
- {""}, {""}, {""},
- {"userTimeEnd",2375},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"latLonValues",1070},
- {""},
- {"siteElevation",2108},
- {"earthIsOblate",720},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"centuryOfReferenceTimeOfData",414},
- {""},
- {"southLatitudeOfCluster",2126},
- {""}, {""},
- {"n3",1351},
- {"offsetSection10",1543},
- {"calendarIdPresent",384},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"plusOneinOrdersOfSPD",1707},
- {""},
- {"truncateDegrees",2279},
- {"numberOfIterations",1442},
- {""},
- {"meaningOfVerticalCoordinate",1301},
- {"dx",718},
- {""}, {""}, {""}, {""},
- {"roundedMarsLatitude",1853},
- {"grib3divider",911},
- {""}, {""}, {""}, {""}, {""},
- {"max",1272},
- {""},
- {"cfVarName",418},
- {""},
- {"userDateTimeEnd",2373},
- {"longitudeOfStretchingPole",1205},
- {""},
- {"sp3",2133},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"xDirectionGridLength",2464},
- {"spare3",2139},
- {""},
- {"userDateEnd",2371},
- {""},
- {"endOfFileAddress",757},
- {""}, {""}, {""}, {""},
- {"param_value_min",1673},
- {""},
- {"numberOfAnalysis",1387},
- {""}, {""}, {""}, {""}, {""},
- {"indicatorOfUnitForForecastTime",986},
- {""}, {""}, {""}, {""},
- {"yearOfStartOfReferencePeriod",2484},
- {""},
- {"additionalFlagPresent",299},
- {""},
- {"monthOfStartOfReferencePeriod",1343},
- {""},
- {"eastLongitudeOfCluster",725},
- {""}, {""},
- {"conceptsMasterDir",574},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"section2Present",2025},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"grib2divider",910},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"biFourierTruncationType",367},
- {""}, {""}, {""},
- {"optimizeScaleFactor",1574},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"calendarIdentification",385},
- {""}, {""}, {""}, {""},
- {"NDSP",179},
- {""},
- {"roundedMarsLevelist",1854},
- {""}, {""}, {""}, {""},
- {"lsdate_bug",1223},
- {"conceptsLocalMarsDirAll",573},
- {""},
- {"directionScalingFactor",701},
- {""},
- {"startOfMessage",2154},
- {""}, {""}, {""}, {""},
- {"jdLocal",1052},
- {"lstime_bug",1224},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"n2",1350},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"NFSP",181},
- {""}, {""}, {""},
- {"isConstant",1017},
- {""},
- {"defaultSequence",677},
- {""}, {""}, {""}, {""}, {""},
- {"horizontalCoordinateSupplement",944},
- {"totalNumberOfRepetitions",2269},
- {""}, {""}, {""}, {""},
- {"roundedMarsLongitude",1855},
- {"extraDimensionPresent",803},
- {""}, {""}, {""}, {""}, {""},
- {"parameterNumber",1680},
- {"iterationNumber",1042},
- {""},
- {"sp2",2132},
- {"dimensionNumber",696},
- {"horizontalCoordinateDefinition",943},
- {""},
- {"unitsOfFirstFixedSurface",2353},
- {"Dx",39},
- {""}, {""}, {""}, {""}, {""},
- {"spare2",2138},
- {"secondsOfAnalysis",2008},
- {"parameterIndicator",1678},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"md5Product",1279},
- {""},
- {"libraryVersion",1131},
- {""}, {""},
- {"partitionNumber",1685},
- {""}, {""}, {""}, {""}, {""},
- {"marsClass",1229},
- {"originatingCentre",1586},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"scaledFrequencies",1946},
- {"listOfModelIdentifiers",1143},
- {"latitudeOfStretchingPole",1090},
- {"directionNumber",699},
- {""},
- {"startStepInHours",2157},
- {""}, {""}, {""}, {""}, {""},
- {"centuryOfAnalysis",412},
- {"dummy2",716},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"accumulationInterval",294},
- {"projectLocalTemplate",1762},
- {"productIdentifier",1756},
- {"westLongitudeOfCluster",2427},
- {""},
- {"hourOfStartOfReferencePeriod",955},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfInts",1441},
- {"calendarIdentificationTemplateNumber",386},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"marsForecastMonth",1237},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"clusterIdentifier",537},
- {""}, {""},
- {"laplacianScalingFactor",1066},
- {""}, {""}, {""}, {""}, {""},
- {"correction4Part",618},
- {""}, {""}, {""}, {""}, {""},
- {"reserved3",1835},
- {""}, {""}, {""}, {""},
- {"marsType2",1258},
- {""},
- {"offsetSection4",1547},
- {""}, {""},
- {"satelliteNumber",1913},
- {""}, {""}, {""}, {""},
- {"postAuxiliary",1709},
- {""}, {""}, {""}, {""}, {""},
- {"ITN",92},
- {""}, {""},
- {"matchAerosolPacking",1266},
- {""},
- {"julianForecastDay",1055},
- {""}, {""}, {""}, {""}, {""},
- {"Lx",151},
- {""},
- {"projString",1760},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"faModelName",847},
- {"numberOfPoints",1460},
- {""},
- {"centralLongitude",401},
- {""},
- {"oneConstant",1559},
- {""}, {""},
- {"typeOfEnsembleForecast",2294},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"complexPacking",563},
- {""},
- {"biFourierMakeTemplate",360},
- {""}, {""}, {""},
- {"typeOfPreProcessing",2307},
- {""}, {""},
- {"modelVersionTime",1334},
- {""}, {""}, {""}, {""}, {""},
- {"tablesMasterDir",2209},
- {""}, {""}, {""},
- {"windSpeedTrend4",2450},
- {""}, {""}, {""}, {""}, {""},
- {"iScansPositively",965},
- {""},
- {"Lcx",118},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"normAtInitialTime",1365},
- {""}, {""},
- {"Lux",147},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"identificationOfProject",969},
- {""}, {""},
- {"minutesAfterReferenceTimeOfDataCutoff",1319},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"parameterCode",1676},
- {""},
- {"windVariableDirection",2456},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"tablesVersionLatest",2211},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"default_max_val",681},
- {""}, {""},
- {"easternLongitudeOfDomain",728},
- {"tigge_short_name",2237},
- {""}, {""}, {""}, {""}, {""},
- {"reserved2",1834},
- {"modelVersionDate",1333},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"windDirectionTrend4",2439},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"La2",103},
- {"extractedDateTimeNumberOfSubsets",838},
- {"Lar2",111},
- {""}, {""},
- {"iScansNegatively",964},
- {"thresholdIndicator",2229},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"groupSplittingMethodUsed",929},
- {""},
- {"Lo2",125},
- {""},
- {"Lor2",145},
- {"Latin2",116},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"CDFstr",22},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"totalNumberOfTileAttributePairs",2270},
- {""},
- {"predefined_grid",1717},
- {""}, {""}, {""},
- {"originatingClass",1588},
- {""}, {""}, {""}, {""},
- {"tileClassification",2238},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"boot_edition",375},
- {""}, {""}, {""}, {""},
- {"section4Padding",2034},
- {""}, {""},
- {"scaledValueOfSecondSize",1965},
- {""}, {""},
- {"significanceOfReferenceDateAndTime",2103},
- {"monthOfForecastUsedInLocalTime",1340},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"centralLongitudeInDegrees",402},
- {"preProcessingParameter",1714},
- {""}, {""}, {""}, {""}, {""},
- {"scaledValueOfFirstSize",1954},
- {""},
- {"versionNumberOfGribLocalTables",2404},
- {""}, {""},
- {"numberOfVerticalPoints",1503},
- {""}, {""}, {""},
- {"extractSubsetList",836},
- {"section10Pointer",2015},
- {""}, {""}, {""}, {""}, {""},
- {"section4Pointer",2035},
- {"offsetSection3",1546},
- {""},
- {"numberOfDistinctSection4s",1419},
- {"conceptsLocalDirECMF",572},
- {"forecastProbabilityNumber",881},
- {""},
- {"scaledValueOfStandardDeviation",1967},
- {""}, {""},
- {"setCalendarId",2091},
- {"yDirectionGridLengthInMetres",2472},
- {""},
- {"monthOfAnalysis",1337},
- {""}, {""}, {""}, {""},
- {"classOfAnalysis",433},
- {"scaledValueOfStandardDeviationInTheCluster",1968},
- {"local_padding",1181},
- {""}, {""}, {""}, {""},
- {"originOfPostProcessing",1582},
- {"numberOfVerticalCoordinateValues",1501},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"versionNumOfRootGroupSymbolTableEntry",2401},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"westernLongitudeOfDomain",2430},
- {""},
- {"messageLength",1303},
- {"iDirectionIncrementInDegrees",962},
- {""}, {""}, {""},
- {"centreForTable2",407},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"verticalCoordinate",2407},
- {"numberOfDataPoints",1412},
- {"paleontologicalOffset",1667},
- {""}, {""},
- {"extractAreaWestLongitude",812},
- {""},
- {"numberOfIntegers",1440},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"windSpeedTrend3",2449},
- {""},
- {"numberOfVerticalGridDescriptors",1502},
- {""}, {""}, {""},
- {"coordinate1Start",591},
- {"totalNumberOfForecastProbabilities",2264},
- {""}, {""}, {""},
- {"coordinate1Flag",590},
- {""}, {""}, {""},
- {"indicatorOfUnitForTimeRange",988},
- {""},
- {"section3Padding",2029},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"sizeOfOffsets",2113},
- {""}, {""}, {""},
- {"targetCompressionRatio",2213},
- {"projectionCenterFlag",1764},
- {"startOfRange",2155},
- {"latitudeOfFirstGridPoint",1078},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CDF",21},
- {"verticalVisibility",2411},
- {"level_value_list",1127},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"parameterCategory",1675},
- {""}, {""}, {""},
- {"isHindcast",1022},
- {""}, {""},
- {"runwaySideCodeState4",1907},
- {""}, {""},
- {"section3Pointer",2030},
- {""}, {""},
- {"numberOfDistinctSection3s",1418},
- {""},
- {"longitudeFirstInDegrees",1185},
- {""},
- {"standardParallelInMicrodegrees",2151},
- {""}, {""}, {""}, {""}, {""},
- {"projectionCentreFlag",1765},
- {""}, {""}, {""},
- {"offsetSection2",1545},
- {""}, {""}, {""}, {""},
- {"windDirectionTrend3",2438},
- {""}, {""}, {""}, {""},
- {"runwayDepositState4",1867},
- {"yDirectionGridLengthInMillimetres",2473},
- {""}, {""}, {""},
- {"section2Padding",2023},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfLevelValues",1443},
- {"driverInformationBlockAddress",713},
- {"selectedMonth",2085},
- {""},
- {"tsectionNumber4",2282},
- {"tiggeCentre",2230},
- {"bufrDataEncoded",379},
- {"coordinate3OfLastGridPoint",597},
- {""}, {""},
- {"isectionNumber4",1039},
- {""}, {""},
- {"gridDescriptionSectionPresent",921},
- {""},
- {"isEPS",1019},
- {"numberInTheGridCoordinateList",1383},
- {""}, {""},
- {"grib1divider",907},
- {""}, {""}, {""},
- {"crraLocalVersion",626},
- {"dateOfAnalysis",650},
- {""},
- {"functionCode",891},
- {"yearOfAnalysis",2477},
- {""},
- {"g1conceptsMasterDir",894},
- {""}, {""}, {""}, {""},
- {"section2Pointer",2024},
- {"timeOfAnalysis",2246},
- {""}, {""},
- {"correction1",611},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"correction2",613},
- {""}, {""}, {""},
- {"windSpeedTrend2",2448},
- {""},
- {"marsStream1",1254},
- {"typeOfCompressionUsed",2292},
- {""},
- {"typeOfAnalysis",2289},
- {"qnhAPresent",1772},
- {""}, {""},
- {"marsStream2",1255},
- {""}, {""},
- {"numberOfTimeIncrementsOfForecastsUsedInLocalTime",1490},
- {""}, {""}, {""}, {""},
- {"numberOfDataMatrices",1411},
- {""}, {""}, {""}, {""},
- {"Nx",206},
- {"missing_values",1325},
- {""}, {""},
- {"forecastMonth",876},
- {"defaultFaModelName",674},
- {"numericValues",1509},
- {""}, {""}, {""},
- {"rectimeHour",1809},
- {"numberOfModels",1452},
- {""}, {""}, {""},
- {"lengthOfMessage",1116},
- {""},
- {"latitudeOfSouthernPole",1088},
- {"tablesVersionLatestOfficial",2212},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"verticalCoordinateDefinition",2408},
- {""},
- {"scaledValueOfFirstFixedSurface",1953},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"referenceReflectivityForEchoTop",1821},
- {"X2",268},
- {""}, {""},
- {"numberOfMembersInCluster",1446},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"Ncx",195},
- {""}, {""}, {""},
- {"windDirectionTrend2",2437},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Nux",204},
- {""}, {""},
- {"indicatorOfUnitForTimeRangeForReferencePeriod",989},
- {""},
- {"subCentre",2180},
- {""}, {""}, {""},
- {"stepRangeInHours",2169},
+ {"siteLongitude",2148},
{""},
{"Azi",15},
- {"waveFrequencyNumber",2424},
- {"DyInMetres",44},
- {""}, {""},
- {"DiInMetres",33},
- {""}, {""},
- {"localHour",1161},
- {"correction3",615},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"createNewData",628},
+ {""},
+ {"codedValues",561},
{""}, {""}, {""},
- {"nameOfSecondFixedSurface",1357},
+ {"systemNumber",2241},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"expver",810},
{""},
- {"rectimeMinute",1810},
- {"tableCode",2205},
+ {"levTypeName",1140},
{""},
- {"widthOfLengths",2432},
- {"extraValues",806},
+ {"indexingTime",996},
{""}, {""}, {""}, {""}, {""},
- {"scanningModeForOneDiamond",1983},
+ {"isAccumulation",1026},
{""}, {""},
- {"patch_precip_fp",1692},
- {"default_step_units",683},
- {""},
- {"PVPresent",216},
- {"productionStatusOfProcessedData",1758},
- {"typicalHour",2327},
+ {"changeDecimalPrecision",423},
{""}, {""}, {""}, {""},
- {"secondDimensionCoordinateValueDefinition",1987},
+ {"dataRepresentation",641},
+ {"tubeNumber",2330},
+ {"centreLatitude",410},
+ {"generatingProcessTemplateNumber",915},
+ {"numberOfForecastsUsedInLocalTime",1455},
{""},
- {"typeOfSecondFixedSurface",2312},
+ {"sizeOfOffsets",2150},
+ {"xFirst",2516},
{""}, {""}, {""}, {""},
- {"scaledValueOfSecondFixedSurface",1964},
- {"coordinateIndexNumber",603},
+ {"localLatitude",1181},
{""}, {""}, {""}, {""}, {""}, {""},
- {"N2",173},
+ {"bitmapSectionPresent",374},
+ {"tablesVersion",2249},
{""}, {""}, {""}, {""}, {""},
- {"hourOfAnalysis",949},
+ {"longitudeOfIcosahedronPole",1215},
+ {"listOfDistributionFunctionParameter",1159},
+ {""},
+ {"endOfProduct",769},
+ {""}, {""},
+ {"secondLatitude",2025},
{""}, {""}, {""},
- {"integerValues",1005},
+ {"modelIdentifier",1350},
{""},
- {"originalParameterTableNumber",1584},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"missingValue",1321},
- {"runwaySideCodeState3",1906},
- {""},
- {"projectLocalTemplateNumber",1763},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"DxInDegrees",40},
- {"timeRangeIndicator",2251},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"verificationMonth",2396},
- {"typeOfAuxiliaryInformation",2290},
- {""}, {""},
- {"localDefNumberTwo",1154},
- {""},
- {"dayOfEndOfOverallTimeInterval",663},
- {"runwayDepositState3",1866},
- {""},
- {"listMembersUsed",1136},
- {""}, {""},
- {"isotopeIdentificationNumber",1040},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"typicalMinute",2328},
- {""},
- {"sectionLengthLimitForEnsembles",2056},
- {""}, {""},
- {"tsectionNumber3",2281},
- {""}, {""}, {""}, {""}, {""},
- {"isectionNumber3",1038},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeOfLastGridPointInDegrees",1198},
- {""}, {""}, {""},
- {"LyInMetres",154},
- {"simpleThinningMissingRadius",2105},
- {""}, {""}, {""}, {""}, {""},
- {"conceptsDir1",569},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"conceptsDir2",570},
- {""},
- {"radiusInMetres",1783},
- {"twoOrdersOfSPD",2287},
- {"biFourierSubTruncationType",366},
- {""}, {""}, {""},
- {"is_ocean3d_param",1035},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"sphericalHarmonics",2147},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfOperationalForecastTube",1477},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"inputDataPresentIndicator",1007},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"defaultShortName",683},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"P2",213},
+ {"radialAngularSpacing",1814},
{""},
- {"typeOfIntervalForFirstAndSecondSize",2300},
+ {"is_uerra",1054},
+ {""}, {""}, {""},
+ {"ccccIdentifiers",392},
+ {""}, {""}, {""},
+ {"tableNumber",2245},
{""},
- {"typeOfHorizontalLine",2299},
+ {"scaleFactorOfLowerLimit",1963},
+ {""}, {""}, {""}, {""}, {""},
+ {"unitOfOffsetFromReferenceTime",2387},
+ {"typeOfTimeIncrement",2363},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"verificationDate",2444},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"floatValues",884},
+ {"memberNumber",1321},
+ {"N",171},
+ {""}, {""}, {""},
+ {"indexTemplate",992},
{""},
- {"constantFieldHalfByte",580},
+ {"inputDelayedDescriptorReplicationFactor",1008},
+ {""}, {""}, {""},
+ {"offsetAfterPadding",1552},
{""},
- {"scaleFactorOfAdditionalParameterForReferencePeriod",1916},
- {"verifyingMonth",2398},
+ {"minutesAfterDataCutoff",1337},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"section_8",2114},
+ {""}, {""}, {""},
+ {"temperatureAndDewpointPresent",2256},
+ {""}, {""},
+ {"cnmc_isac",556},
+ {""},
+ {"expandedTypes",802},
+ {""}, {""}, {""}, {""},
+ {"stringValues",2218},
+ {"short_name",2138},
+ {"baseAddress",335},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"latLonValues",1088},
+ {""}, {""},
+ {"simpleThinningStart",2144},
+ {""}, {""},
+ {"TAF",235},
+ {""}, {""},
+ {"typeOfDistributionFunction",2338},
+ {""}, {""}, {""},
+ {"_T",289},
+ {""}, {""},
+ {"cnmc_cmcc",555},
+ {""}, {""}, {""},
+ {"offsetAfterLocalSection",1551},
+ {""}, {""},
+ {"defaultFaLevelName",678},
+ {""}, {""}, {""},
+ {"SecondLatitude",229},
+ {""}, {""}, {""},
+ {"FirstLatitude",66},
+ {"correction4Part",621},
+ {""},
+ {"NR",188},
+ {""}, {""}, {""}, {""}, {""},
+ {"dataRepresentationTemplate",642},
+ {"_endStep",292},
+ {""},
+ {"stretchingFactor",2216},
+ {""}, {""}, {""}, {""}, {""},
+ {"waveDirectionNumber",2471},
+ {""},
+ {"numberOfDistinctSection9s",1446},
+ {""}, {""}, {""}, {""}, {""},
+ {"section_09",2104},
+ {""}, {""},
+ {"angleOfRotationOfProjection",315},
+ {""}, {""},
+ {"tigge_name",2275},
+ {"_anoffset",291},
+ {""},
+ {"dimensionType",704},
+ {"meaningOfVerticalCoordinate",1320},
+ {"ecpt_model",736},
+ {""},
+ {"gts_header",950},
+ {"is_aerosol",1046},
+ {"numberOfDistinctSection8s",1445},
+ {""},
+ {"auxiliary",325},
+ {""},
+ {"sensitiveAreaDomain",2124},
+ {""}, {""}, {""}, {""},
+ {"satelliteIdentifier",1948},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"orientationOfTheGrid",1607},
+ {""}, {""},
+ {"P",212},
+ {"dataRepresentationTemplateNumber",643},
+ {""},
+ {"isEps",1036},
+ {"section_08",2103},
+ {"globalDomain",920},
+ {"local_use",1201},
+ {""}, {""}, {""}, {""}, {""},
+ {"partitionItems",1717},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"codedNumberOfFirstOrderPackedValues",557},
+ {"is_chemical",1048},
+ {"efas_model",740},
{""},
- {"numberOfEffectiveValues",1426},
+ {"stretchingFactorScaled",2217},
+ {""}, {""}, {""},
+ {"localLongitude",1184},
+ {"typeOfRelationToReferenceDataset",2355},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"diagnosticNumber",699},
+ {""}, {""}, {""},
+ {"scaleFactorOfSecondFixedSurface",1969},
+ {""},
+ {"dayOfStartOfReferencePeriod",673},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"runwaySideCodeState2",1905},
- {"cloudsTitle1",517},
- {""}, {""}, {""},
- {"kurt",1060},
- {"presentTrend4",1724},
+ {"dataRepresentationType",644},
{""},
- {"cloudsTitle2",522},
+ {"defaultFaFieldName",677},
+ {""},
+ {"tablesVersionLatest",2250},
+ {""}, {""}, {""}, {""}, {""},
+ {"orderOfSPD",1603},
+ {"PLPresent",215},
{""}, {""}, {""},
- {"is_ocean2d_param",1034},
+ {"is_localtime",1051},
+ {"matchLandType",1286},
+ {"climateDateFrom",436},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"widthOfFirstOrderValues",2480},
+ {"secondsOfReference",2045},
+ {""}, {""},
+ {"correction1Part",615},
+ {""}, {""}, {""},
+ {"scaleFactorOfFirstFixedSurface",1958},
{""}, {""}, {""}, {""},
- {"lengthIncrementForTheGroupLengths",1112},
+ {"ensembleStandardDeviation",784},
+ {""}, {""},
+ {"monthlyVerificationTime",1365},
+ {""},
+ {"angleSubdivisions",316},
+ {""},
+ {"numberOfPartitions",1481},
+ {""},
+ {"sampleSizeOfReferencePeriod",1946},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"levelValues",1144},
+ {"corr4Data",612},
+ {"scanPosition",2012},
+ {""},
+ {"indexingDate",995},
+ {""}, {""}, {""}, {""},
+ {"numberOfReservedBytes",1503},
+ {"_TS",290},
+ {"latitudeOfGridPoints",1098},
+ {""}, {""}, {""}, {""}, {""},
+ {"longitudeOfStretchingPole",1224},
+ {"qfePresent",1803},
+ {"numberOfReferencePeriodTimeRanges",1499},
+ {""}, {""},
+ {"qnhPresent",1807},
+ {""}, {""}, {""},
+ {"streamOfAnalysis",2215},
+ {""}, {""}, {""}, {""},
+ {"lengthOfProjectLocalTemplate",1136},
+ {""}, {""}, {""}, {""}, {""},
+ {"marsEndStep",1253},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"outerLoopLengthOfTimeRange",1619},
+ {""},
+ {"totalNumberOfdimensions",2319},
+ {""}, {""},
+ {"startingAzimuth",2197},
+ {"numberOfRows",1504},
{""}, {""}, {""}, {""}, {""}, {""},
- {"Lar2InDegrees",112},
- {""}, {""}, {""},
- {"section_10",2070},
- {""},
- {"runwayDepositState2",1865},
- {""},
- {"expandedAbbreviations",782},
+ {"minuteOfAnalysis",1330},
{""}, {""},
- {"endDayTrend1",738},
+ {"tableReference",2246},
{""}, {""},
- {"extraLocalSectionPresent",805},
- {"Lor2InDegrees",146},
- {""}, {""},
- {"endDayTrend2",739},
- {""}, {""},
- {"centralClusterDefinition",400},
- {""},
- {"default_min_val",682},
- {""}, {""}, {""}, {""}, {""},
- {"isectionNumber2",1037},
- {""}, {""}, {""}, {""}, {""},
- {"kurtosis",1061},
- {""}, {""},
- {"section5",2037},
- {""},
- {"jIncrement",1048},
- {""}, {""}, {""},
- {"sampleSizeOfReferencePeriod",1910},
+ {"offsetAfterCentreLocalSection",1549},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"userTimeEnd",2421},
+ {""}, {""}, {""},
+ {"section9Pointer",2090},
+ {""},
+ {"localDefNumberTwo",1173},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section8Pointer",2087},
+ {""},
+ {"unitsOfSecondFixedSurface",2400},
+ {"secondDimensionPhysicalSignificance",2024},
{""}, {""},
- {"groupInternalNodeK",925},
- {"isCorrection",1018},
- {"typeOfIntervalForFirstAndSecondWavelength",2301},
- {""}, {""}, {""},
- {"aerosolbinnumber",304},
+ {"totalNumberOfTubes",2315},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"latitudeOfStretchingPole",1108},
+ {""},
+ {"missingDataFlag",1339},
+ {""},
+ {"diffInDays",700},
+ {""},
+ {"totalNumberOfQuantiles",2311},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"NAT",174},
{""}, {""},
- {"mars_labeling",1259},
- {""}, {""}, {""},
- {"implementationDateOfModelCycle",974},
- {"biFourierResolutionParameterN",363},
- {"keySat",1058},
- {""}, {""}, {""},
- {"extraLocalSectionNumber",804},
+ {"monthlyVerificationDate",1363},
{""}, {""}, {""}, {""},
- {"totalNumberOfIterations",2267},
- {""},
- {"numberOfDistributionFunctionParameters",1425},
- {""},
- {"M",155},
- {""},
- {"lengthOfTimeRange",1119},
+ {"representationType",1865},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cfVarName",420},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"libraryVersion",1149},
+ {""}, {""}, {""},
+ {"scaleFactorOfRadiusOfSphericalEarth",1968},
+ {""}, {""}, {""}, {""},
+ {"centuryOfReference",415},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsTitle3",527},
{""},
- {"section5Pointer",2039},
- {"section8Length",2050},
+ {"scalingFactorForFrequencies",2011},
+ {""}, {""}, {""},
+ {"endOfInterval",767},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"numberOfDistinctSection5s",1420},
+ {"section0Pointer",2048},
{""},
- {"localNumberOfObservations",1170},
+ {"dayOfReference",672},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"perturbedType",1733},
+ {""},
+ {"heightOrPressureOfLevel",955},
+ {""},
+ {"levelIndicator",1142},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"decimalPrecision",675},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"verticalDomainTemplateNumber",2459},
+ {""}, {""}, {""}, {""},
+ {"windVariableDirection",2505},
+ {""}, {""},
+ {"numberOfRemaininChars",1501},
+ {""}, {""},
+ {"stepTypeInternal",2210},
+ {""},
+ {"orientationOfTheGridInDegrees",1608},
+ {"userDateEnd",2417},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfVerticalPoints",1529},
+ {""}, {""},
+ {"widthOfSPD",2482},
+ {""},
+ {"scaleFactorAtReferencePoint",1951},
+ {""},
+ {"longitudeOfLastGridPoint",1216},
+ {""}, {""}, {""}, {""},
+ {"selectedDay",2117},
+ {""}, {""}, {""}, {""},
+ {"periodOfTimeIntervals",1731},
+ {""},
+ {"expandedDescriptors",796},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"typeOfPostProcessing",2351},
+ {""},
+ {"offsetFreeFormData",1563},
+ {""},
+ {"extractSubset",843},
+ {"gts_ddhh00",949},
+ {""}, {""},
+ {"northLatitudeOfCluster",1389},
+ {"longitudeOfFirstGridPoint",1212},
+ {"numberOfVerticalCoordinateValues",1527},
+ {""},
+ {"molarMass",1354},
+ {""}, {""},
+ {"nosigPresent",1397},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"eastLongitudeOfCluster",732},
+ {"siteElevation",2145},
+ {""},
+ {"lsdate_bug",1242},
+ {""}, {""},
+ {"gridDefinitionTemplateNumber",934},
+ {"lstime_bug",1243},
+ {""}, {""},
+ {"versionNumOfFilesFreeSpaceStorage",2449},
+ {"observationGeneratingProcessIdentifier",1539},
+ {""},
+ {"totalNumberOfDirections",2306},
+ {"dayOfAnalysis",667},
+ {""}, {""}, {""},
+ {"interpretationOfNumberOfPoints",1024},
+ {""},
+ {"numberOfVerticalGridDescriptors",1528},
+ {""}, {""},
+ {"is_aerosol_optical",1047},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"perturbationNumber",1732},
+ {""}, {""}, {""}, {""}, {""},
+ {"tablesVersionLatestOfficial",2251},
+ {""}, {""},
+ {"southLatitudeOfCluster",2163},
+ {""},
+ {"marsModel",1266},
+ {"headersOnly",953},
+ {"secondOrderFlags",2032},
+ {""}, {""}, {""},
+ {"spatialProcessing",2178},
+ {"scaleFactorOfDistributionFunctionParameter",1955},
+ {""}, {""}, {""}, {""},
+ {"numberOfLevelValues",1465},
+ {""},
+ {"isConstant",1033},
+ {""}, {""}, {""}, {""}, {""},
+ {"endOfFileAddress",765},
+ {""}, {""},
+ {"userDateTimeEnd",2419},
+ {"gridPointPosition",937},
+ {""}, {""}, {""}, {""}, {""},
{"LoV",128},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"keyData",1056},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeOfFirstGridPointInDegrees",1194},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"unsignedIntegers",2406},
+ {""},
+ {"expandedNames",797},
+ {"theMessage",2260},
+ {"g2grid",908},
{""}, {""}, {""},
- {"skewness",2117},
- {"inputOriginatingCentre",994},
- {"northernLatitudeOfClusterDomain",1373},
- {""}, {""},
- {"endDayTrend3",740},
- {""},
- {"frequencyScalingFactor",890},
- {""}, {""}, {""}, {""},
- {"scaleFactorOfDistanceFromEnsembleMean",1918},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfPackedValues",1456},
- {"jDirectionIncrement",1044},
- {""},
- {"nameOfFirstFixedSurface",1356},
- {"spatialSmoothingOfProduct",2142},
- {""}, {""},
- {"marsExpver",1236},
- {"La2InDegrees",104},
- {""},
- {"section0Length",2011},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfLowerLimit",1927},
- {""}, {""}, {""}, {""},
- {"Lo2InDegrees",126},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfFirstFixedSurface",2296},
- {"unknown",2355},
- {"coordinate2Start",594},
- {"section9Length",2053},
- {""}, {""}, {""},
- {"coordinate2Flag",593},
- {""},
- {"cloudsTitle1Trend4",521},
- {"md5Section5",1285},
- {""},
- {"mAngleMultiplier",1226},
+ {"falseNorthing",860},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"bitmapPresent",373},
+ {"numberOfIterations",1464},
+ {"DiInDegrees",32},
+ {"numberOfAnalysis",1409},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsClass",1248},
{""},
- {"southernLatitudeOfClusterDomain",2129},
+ {"operatingMode",1597},
+ {""}, {""}, {""},
+ {"binaryScaleFactor",370},
{""},
- {"shapeOfVerificationArea",2097},
+ {"totalNumberOfFrequencies",2308},
+ {""}, {""}, {""},
+ {"productDefinitionTemplateNumber",1788},
+ {""}, {""}, {""}, {""},
+ {"marsLamModel",1261},
+ {""}, {""},
+ {"parameterCode",1708},
+ {""}, {""}, {""},
+ {"scaledValueOfSecondSize",2001},
+ {""}, {""},
+ {"clusterMember9",549},
+ {"is_chemical_distfn",1049},
+ {"modelVersionTime",1353},
+ {""},
+ {"MS",158},
+ {""}, {""},
+ {"sfc_levtype",2132},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"clutterFilterIndicator",554},
+ {""}, {""},
+ {"matchAerosolPacking",1285},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"subDefinitions2",2182},
+ {"clusterMember8",548},
+ {""}, {""}, {""}, {""}, {""},
+ {"setCalendarId",2127},
+ {""},
+ {"internationalDataSubCategory",1023},
+ {""}, {""}, {""}, {""},
+ {"corr2Data",610},
{""}, {""},
- {"LcyInMetres",121},
+ {"localMinute",1187},
+ {""}, {""},
+ {"crraLocalVersion",629},
+ {""},
+ {"productDefinitionTemplateNumberInternal",1789},
+ {""}, {""}, {""}, {""}, {""},
+ {"spectralMode",2182},
+ {""}, {""},
+ {"earthIsOblate",727},
+ {"angleMultiplier",312},
+ {""}, {""}, {""},
+ {"correction3Part",619},
+ {""}, {""}, {""},
+ {"scanningMode",2013},
+ {""},
+ {"totalNumberOfTileAttributePairs",2314},
+ {""},
+ {"totalNumberOfRepetitions",2312},
+ {"xDirectionGridLength",2513},
+ {""},
+ {"LaDInDegrees",105},
+ {""},
+ {"param_value_min",1705},
+ {""},
+ {"tiggeModel",2272},
+ {""}, {""}, {""}, {""},
+ {"scaledValueOfStandardDeviation",2003},
+ {"westLongitudeOfCluster",2476},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfSizeInterval",2358},
+ {""}, {""}, {""},
+ {"totalNumberOfTileAttributeCombinations",2313},
+ {"scaledValueOfStandardDeviationInTheCluster",2004},
+ {""},
+ {"representationMode",1864},
+ {""},
+ {"latitudeLastInDegrees",1091},
+ {""},
+ {"localMonth",1188},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"biFourierTruncationType",369},
+ {"scanningMode8",2018},
+ {""}, {""}, {""},
+ {"scaledValueOfFirstSize",1990},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"earthMinorAxis",730},
+ {"thisMarsStream",2263},
+ {""}, {""}, {""},
+ {"oneConstant",1585},
{""}, {""}, {""}, {""}, {""}, {""},
- {"swapScanningLat",2197},
+ {"tiggeCentre",2269},
+ {"indicatorOfUnitForForecastTime",1002},
+ {"DyInDegrees",43},
{""}, {""},
- {"predefined_grid_values",1718},
+ {"modelVersionDate",1352},
+ {""},
+ {"dirty_statistics",709},
+ {""},
+ {"localSectionPresent",1192},
+ {"timeIncrement",2287},
+ {"coordinate4OfLastGridPoint",603},
+ {""}, {""},
+ {"corr1Data",609},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"dateOfForecastRun",657},
+ {"verticalVisibility",2460},
+ {""}, {""},
+ {"parameterNumber",1712},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractSubsetList",846},
+ {""},
+ {"default_max_val",686},
+ {""},
+ {"iterationNumber",1060},
+ {""}, {""},
+ {"tigge_short_name",2276},
+ {""}, {""}, {""},
+ {"targetCompressionRatio",2252},
+ {""},
+ {"dimensionNumber",703},
+ {""}, {""}, {""}, {""}, {""},
+ {"partitionNumber",1718},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"tileClassification",2279},
+ {"dx",725},
+ {"max",1291},
+ {""}, {""}, {""}, {""},
+ {"directionNumber",706},
+ {""}, {""}, {""},
+ {"bufrDataEncoded",381},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"longitudeOfCentrePointInDegrees",1208},
+ {""}, {""},
+ {"functionCode",904},
+ {""},
+ {"thisMarsType",2264},
+ {""},
+ {"scaledValueOfLowerLimit",1994},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Lx",151},
+ {"conceptsLocalMarsDirAll",576},
+ {"jdLocal",1070},
+ {"identificationNumber",983},
+ {"subCentre",2219},
+ {""}, {""}, {""}, {""},
+ {"localDefNumberOne",1172},
+ {""},
+ {"minutesAfterReferenceTimeOfDataCutoff",1338},
+ {""}, {""},
+ {"complexPacking",566},
+ {""},
+ {"oneMillionConstant",1586},
+ {""}, {""}, {""}, {""}, {""},
+ {"significanceOfReferenceDateAndTime",2140},
+ {""},
+ {"indexTemplateNumber",993},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Lcx",117},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"tableCode",2244},
+ {""}, {""},
+ {"jdSelected",1071},
+ {"additionalFlagPresent",301},
+ {""}, {""}, {""}, {""},
+ {"Lux",147},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"subcentreOfAnalysis",2231},
+ {""}, {""}, {""},
+ {"formatForDoubles",896},
+ {"satelliteNumber",1949},
+ {""}, {""}, {""}, {""},
+ {"numberOfInts",1463},
+ {""}, {""}, {""}, {""},
+ {"plusOneinOrdersOfSPD",1740},
+ {"numericValues",1535},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfPoints",1482},
+ {""},
+ {"totalNumberOfForecastProbabilities",2307},
+ {""},
+ {"NP",187},
+ {""},
+ {"defaultSequence",682},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"projectLocalTemplate",1796},
+ {""},
+ {"calendarIdPresent",386},
+ {""}, {""}, {""}, {""}, {""},
+ {"missingValue",1340},
+ {""},
+ {"integerValues",1021},
+ {"verticalCoordinate",2456},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"monthOfStartOfReferencePeriod",1362},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"coordinateIndexNumber",606},
+ {""}, {""}, {""}, {""},
+ {"extraLocalSectionPresent",815},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"gridDescriptionSectionPresent",935},
+ {"calendarIdentification",387},
+ {""}, {""},
+ {"versionNumberOfGribLocalTables",2453},
+ {""}, {""}, {""},
+ {"addressOfFileFreeSpaceInfo",303},
+ {""}, {""}, {""},
+ {"latitudeOfSouthernPole",1106},
+ {""},
+ {"destineOrigin",695},
+ {""}, {""}, {""}, {""}, {""},
+ {"parameterIndicator",1710},
+ {"centralLongitude",403},
+ {"extraLocalSectionNumber",814},
+ {"projString",1794},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"secondsOfAnalysis",2044},
+ {""},
+ {"CDFstr",22},
+ {""}, {""}, {""}, {""}, {""},
+ {"typeOfEnsembleForecast",2339},
+ {"indicatorOfUnitForTimeRange",1004},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"localTimeMethod",1197},
+ {"extractedDateTimeNumberOfSubsets",848},
+ {"truncateDegrees",2324},
+ {"centuryOfReferenceTimeOfData",416},
+ {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfSecondFixedSurface",2000},
+ {""}, {""}, {""},
+ {"extractAreaWestLongitude",822},
+ {""},
+ {"normAtInitialTime",1387},
+ {""}, {""}, {""},
+ {"Dx",39},
+ {""}, {""}, {""}, {""}, {""},
+ {"directionScalingFactor",708},
+ {""}, {""}, {""}, {""}, {""},
+ {"representativeMember",1866},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"accumulationInterval",295},
+ {""},
+ {"extraValues",816},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"hourOfStartOfReferencePeriod",971},
+ {"parameterCategory",1707},
+ {""}, {""},
+ {"originalParameterTableNumber",1612},
+ {""},
+ {"forecastProbabilityNumber",892},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"scaledValueOfFirstFixedSurface",1989},
+ {""},
+ {"startOfMessage",2191},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfIntegers",1462},
+ {""}, {""}, {""}, {""}, {""},
+ {"listOfModelIdentifiers",1161},
+ {""}, {""}, {""},
+ {"scaledFrequencies",1982},
+ {"predefined_grid",1751},
+ {""}, {""}, {""}, {""},
+ {"calendarIdentificationTemplateNumber",388},
+ {"monthOfForecastUsedInLocalTime",1359},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfPackedValues",1478},
+ {""}, {""},
+ {"yearOfStartOfReferencePeriod",2533},
+ {"referenceReflectivityForEchoTop",1856},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"originatingCentre",1614},
+ {"offsetSection10",1569},
+ {""}, {""}, {""},
+ {"extraDimensionPresent",813},
+ {""}, {""}, {""},
+ {"productIdentifier",1790},
+ {""},
+ {"corr3Data",611},
+ {""},
+ {"tablesMasterDir",2248},
+ {""}, {""},
+ {"roundedMarsLongitude",1891},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"iDirectionIncrementInDegrees",978},
+ {"laplacianScalingFactor",1084},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"boot_edition",377},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"biFourierMakeTemplate",362},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"clusterIdentifier",539},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"messageLength",1322},
+ {""}, {""}, {""}, {""}, {""},
+ {"typeOfPreProcessing",2352},
+ {""},
+ {"roundedMarsLatitude",1889},
+ {""}, {""}, {""}, {""}, {""},
+ {"easternLongitudeOfDomain",735},
+ {"numberInTheGridCoordinateList",1405},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"postAuxiliary",1743},
+ {"verticalCoordinateDefinition",2457},
+ {"centuryOfAnalysis",414},
+ {""}, {""}, {""}, {""},
+ {"grib2divider",924},
+ {""}, {""}, {""}, {""},
+ {"local_padding",1200},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"PVPresent",217},
+ {""},
+ {"unitsOfFirstFixedSurface",2399},
+ {"shapeOfVerificationArea",2134},
+ {""},
+ {"isEPS",1035},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfCompressionUsed",2337},
+ {""},
+ {"numberOfEffectiveValues",1448},
+ {""}, {""}, {""}, {""},
+ {"tileAttribute",2278},
+ {""}, {""},
+ {"groupSplittingMethodUsed",944},
+ {""},
+ {"thresholdIndicator",2268},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"section4Padding",2070},
+ {""}, {""},
+ {"numberOfMembersInCluster",1468},
+ {""}, {""}, {""}, {""}, {""},
+ {"conceptsMasterDir",577},
+ {""},
+ {"productionStatusOfProcessedData",1792},
+ {""}, {""}, {""},
+ {"startStepInHours",2194},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"roundedMarsLevelist",1890},
+ {"projectLocalTemplateNumber",1797},
+ {"scaledValueOfRadiusOfSphericalEarth",1999},
+ {""}, {""}, {""}, {""}, {""},
+ {"centralLongitudeInDegrees",404},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"originOfPostProcessing",1610},
+ {""}, {""}, {""}, {""},
+ {"CDF",21},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"aerosolbinnumber",306},
+ {"NDSP",179},
+ {""},
+ {"section7",2081},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfDataPoints",1434},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"grib1divider",921},
+ {"numberOfChars",1420},
+ {"preProcessingParameter",1748},
+ {"NV",192},
+ {""}, {""}, {""},
+ {"secondDimensionCoordinateValueDefinition",2023},
+ {""},
+ {"numberOfModels",1474},
+ {""},
+ {"coordinate1Start",594},
+ {""},
+ {"expandedAbbreviations",791},
+ {""}, {""}, {""}, {""},
+ {"indicatorOfUnitForTimeRangeForReferencePeriod",1005},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfTimeIncrementsOfForecastsUsedInLocalTime",1513},
+ {""}, {""},
+ {"projectionCenterFlag",1798},
+ {""}, {""},
+ {"distanceFromTubeToEnsembleMean",712},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"driverInformationBlockAddress",720},
+ {"level_value_list",1145},
+ {"NFSP",181},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"identificationOfProject",985},
+ {"northernLatitudeOfClusterDomain",1395},
+ {""},
+ {"julianDay",1072},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"referenceValueError",1860},
+ {""}, {""},
+ {"listMembersUsed",1154},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"projectionCentreFlag",1799},
+ {"longitudeFirstInDegrees",1204},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"numberOfValues",1526},
+ {"coordinate3OfLastGridPoint",600},
+ {""},
+ {"westernLongitudeOfDomain",2479},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfDistributionFunctionParameters",1447},
+ {"southernLatitudeOfClusterDomain",2166},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"AA",6},
+ {""}, {""}, {""}, {""},
+ {"numberOfCharacters",1419},
+ {""}, {""},
+ {"scaledValueOfDistributionFunctionParameter",1986},
+ {"localNumberOfObservations",1189},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"offsetAfterBitmap",1548},
+ {""}, {""}, {""},
+ {"faModelName",857},
+ {"originatingClass",1616},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"monthOfAnalysis",1356},
+ {""}, {""},
+ {"ITN",91},
+ {""}, {""},
+ {"classOfAnalysis",435},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"longitudeOfSubSatellitePoint",1226},
+ {""}, {""}, {""},
+ {"deletePV",692},
+ {"isCorrection",1034},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"qnhAPresent",1806},
+ {""}, {""}, {""}, {""},
+ {"longitudeOfSubSatellitePointInDegrees",1227},
+ {""}, {""}, {""}, {""},
+ {"paleontologicalOffset",1698},
+ {"mars_labeling",1278},
+ {""}, {""}, {""},
+ {"correction4",620},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfAdditionalParameterForReferencePeriod",1952},
+ {""}, {""},
+ {"isotopeIdentificationNumber",1058},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfDistinctSection7s",1444},
+ {""},
+ {"coordinate4Flag",601},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"basicAngleOfTheInitialProductionDomain",340},
+ {""}, {""}, {""},
+ {"biFourierCoefficients",361},
+ {""}, {""}, {""},
+ {"timeRangeIndicator",2294},
+ {"marsForecastMonth",1256},
+ {"twoOrdersOfSPD",2332},
+ {"centralClusterDefinition",402},
+ {"startOfRange",2192},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfMembersInEnsemble",1469},
+ {"sectionLengthLimitForEnsembles",2092},
+ {"conceptsLocalDirECMF",575},
+ {""},
+ {"predefined_grid_values",1752},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"implementationDateOfModelCycle",990},
+ {"gridCoordinate",930},
+ {""}, {""},
+ {"spare4",2177},
+ {"nameOfSecondFixedSurface",1379},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"versionNumOfRootGroupSymbolTableEntry",2450},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"LoVInDegrees",129},
+ {"lengthOfMessage",1134},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"missing_values",1344},
+ {"numberOfDataMatrices",1433},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfAuxiliaryInformation",2335},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section4",2068},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"julianForecastDay",1073},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"marsExpver",1255},
+ {""},
+ {"yDirectionGridLengthInMetres",2521},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"standardParallelInMicrodegrees",2188},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"latitudeOfFirstGridPoint",1096},
+ {""}, {""}, {""}, {""}, {""},
+ {"widthOfLengths",2481},
+ {""},
+ {"g1conceptsMasterDir",907},
+ {""}, {""}, {""},
+ {"Nx",207},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfDistinctSection4s",1441},
+ {""},
+ {"coordinate1Flag",593},
+ {"unitsConversionOffset",2393},
+ {""},
+ {"stepRangeInHours",2207},
+ {"numberOfCategories",1418},
+ {""}, {""},
+ {"numberOfOctetsExtraDescriptors",1476},
+ {"dateOfAnalysis",655},
+ {""}, {""}, {""},
+ {"timeOfAnalysis",2289},
+ {""}, {""},
+ {"offsetSection7",1576},
+ {"scaleFactorOfDistanceFromEnsembleMean",1954},
+ {""}, {""}, {""},
+ {"dayOfEndOfOverallTimeInterval",668},
+ {""},
+ {"Ncx",195},
+ {""}, {""}, {""}, {""},
+ {"section10Pointer",2051},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"Nux",205},
+ {""}, {""}, {""},
+ {"grib3divider",925},
+ {"codedNumberOfFirstOrderPackedValues",559},
+ {""}, {""}, {""},
+ {"listOfContributingSpectralBands",1158},
+ {""}, {""}, {""}, {""},
+ {"section2Padding",2059},
+ {""}, {""}, {""},
+ {"default_min_val",687},
+ {""}, {""},
+ {"totalNumberOfIterations",2310},
+ {""}, {""}, {""}, {""},
+ {"section2Present",2061},
+ {"masterTablesVersionNumber",1282},
+ {""}, {""}, {""},
+ {"quantileValue",1813},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsExperimentOffset",1254},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"scanningModeForOneDiamond",2019},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"yDirectionGridLengthInMillimetres",2522},
+ {"sampleSizeOfModelClimate",1945},
+ {""}, {""}, {""}, {""},
+ {"kurt",1078},
+ {"deleteExtraLocalSection",690},
+ {"section7Pointer",2083},
+ {""}, {""}, {""},
+ {"_numberOfValues",294},
+ {""}, {""},
+ {"nTileAttCombo",1372},
+ {""},
+ {"latitudeOfStretchingPoleInDegrees",1109},
+ {""}, {""}, {""},
+ {"biFourierSubTruncationType",368},
+ {"typeOfSecondFixedSurface",2357},
+ {"masterTablesVersionNumberLatest",1283},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"typeOfOriginalFieldValues",2349},
+ {""}, {""}, {""},
+ {"addExtraLocalSection",300},
+ {"selectedMonth",2121},
+ {""}, {""}, {""},
+ {"lengthIncrementForTheGroupLengths",1130},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsTitle4",534},
+ {""}, {""}, {""},
+ {"patch_precip_fp",1725},
+ {""}, {""}, {""},
+ {"numberOfMissing",1470},
+ {""}, {""},
+ {"epsStatisticsContinous",788},
+ {""}, {""},
+ {"southEastLatitudeOfLPOArea",2159},
+ {""}, {""},
+ {"hourOfAnalysis",965},
+ {""},
+ {"orderingConvention",1606},
+ {""}, {""}, {""}, {""}, {""},
+ {"forecastMonth",887},
+ {""}, {""},
+ {"kurtosis",1079},
+ {""},
+ {"section1Padding",2056},
+ {"groupWidth",945},
+ {""},
+ {"outerLoopTypeOfStatisticalProcessing",1620},
+ {""}, {""}, {""},
+ {"timeCoordinateDefinition",2284},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"DxInDegrees",40},
+ {""}, {""}, {""}, {""}, {""},
+ {"distinctLongitudes",714},
+ {"lengthOfIndexTemplate",1133},
+ {""}, {""}, {""}, {""}, {""},
+ {"isHindcast",1039},
+ {""},
+ {"iScansNegatively",980},
+ {"numberOfForecastsInEnsemble",1452},
+ {""}, {""}, {""},
+ {"section9Length",2089},
+ {"simpleThinningMissingRadius",2142},
+ {""},
+ {"numberOfLogicals",1467},
+ {"iScansPositively",981},
+ {""}, {""}, {""}, {""}, {""},
+ {"defaultFaModelName",679},
+ {""}, {""},
+ {"yearOfAnalysis",2526},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"mAngleMultiplier",1245},
+ {"section8Length",2086},
+ {""},
+ {"lengthOfTimeRange",1137},
+ {""}, {""}, {""}, {""},
+ {"typeOfAnalysis",2334},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"consensusCount",580},
+ {""},
+ {"longitudeOfLastGridPointInDegrees",1217},
+ {""}, {""}, {""}, {""},
+ {"longitudeOfStretchingPoleInDegrees",1225},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"rectimeMinute",1845},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfMissingInStatisticalProcess",1471},
+ {""}, {""},
+ {"numberOfDataValues",1436},
+ {""},
+ {"section4Pointer",2071},
+ {""}, {""}, {""}, {""}, {""},
+ {"inputExtendedDelayedDescriptorReplicationFactor",1009},
+ {""},
+ {"numberOfForecastsInCluster",1451},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"rectimeHour",1844},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfModeOfDistribution",1473},
+ {""},
+ {"biFourierResolutionParameterN",365},
+ {"groupInternalNodeK",940},
+ {"timeDomainTemplate",2285},
+ {""},
+ {"indicatorOfUnitForTimeIncrement",1003},
+ {""}, {""},
+ {"doExtractDateTime",716},
+ {""}, {""}, {""},
+ {"southEastLatitudeOfVerficationArea",2160},
+ {""}, {""},
+ {"climateDateTo",437},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Experiment_Identifier",54},
+ {""}, {""}, {""},
+ {"section0Length",2047},
+ {""},
+ {"table2Version",2243},
+ {""}, {""}, {""}, {""},
+ {"section10Length",2050},
+ {"missingValuesPresent",1343},
+ {""},
+ {"jDirectionIncrement",1062},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetSection4",1573},
+ {""}, {""}, {""}, {""}, {""},
+ {"skewness",2154},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudeLongitudeValues",1092},
+ {""},
+ {"expandedCodes",792},
+ {""},
+ {"unknown",2401},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"numberOfTimeRange",1514},
+ {"_leg_number",293},
+ {"sectionLengthLimitForProbability",2093},
+ {""},
+ {"endDayTrend4",749},
+ {""}, {""}, {""}, {""}, {""},
+ {"verificationMonth",2445},
+ {""},
+ {"numberOfTimeRanges",1515},
+ {""},
+ {"timeRangeIndicatorFromStepRange",2295},
+ {"localHour",1180},
+ {""}, {""},
+ {"inputOriginatingCentre",1010},
+ {""},
+ {"frequencyNumber",902},
+ {""}, {""}, {""},
+ {"md5Section9",1308},
+ {""},
+ {"constituentType",584},
+ {"totalLength",2302},
+ {"scaleValuesBy",1980},
+ {""}, {""}, {""},
+ {"lengthOfTimeRangeForReferencePeriod",1138},
+ {"groupWidths",946},
+ {"swapScanningLat",2236},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"LyInMetres",154},
+ {""}, {""}, {""},
+ {"md5Section8",1307},
+ {""}, {""}, {""}, {""},
+ {"DiInMetres",33},
+ {"swapScanningLon",2237},
+ {""},
+ {"nameOfFirstFixedSurface",1378},
+ {""}, {""}, {""},
+ {"keySat",1076},
+ {""}, {""},
+ {"md5Data",1294},
+ {"constituentTypeName",585},
+ {""}, {""},
+ {"upperThreshold",2415},
+ {"lengthOfOriginatorLocalTemplate",1135},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"windVariableDirectionTrend4",2509},
+ {""}, {""}, {""}, {""},
+ {"bitsPerValue",375},
+ {""}, {""},
+ {"originatorLocalTemplate",1617},
+ {""}, {""}, {""}, {""}, {""},
+ {"correction2Part",617},
+ {""},
+ {"isSatelliteType",1043},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"numberOfForecastsInTheCluster",1453},
+ {""}, {""}, {""}, {""},
+ {"typeOfCalendar",2336},
+ {""}, {""},
+ {"verifyingMonth",2447},
+ {""},
+ {"jIncrement",1066},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfAdditionalParametersForReferencePeriod",1408},
+ {"epsContinous",786},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfIntervalForFirstAndSecondSize",2345},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"typicalDateTime",2371},
+ {"listOfEnsembleForecastNumbers",1160},
+ {"radiusInMetres",1817},
+ {"referenceOfWidths",1854},
+ {"qualityControl",1809},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"operationalForecastCluster",1598},
+ {""}, {""}, {""}, {""}, {""},
+ {"sphericalHarmonics",2184},
+ {""},
+ {"listMembersMissing",1150},
+ {"windSpeedTrend4",2499},
+ {"longitudeOfFirstGridPointInDegrees",1213},
+ {""}, {""}, {""},
+ {"keyData",1074},
+ {""},
+ {"doSimpleThinning",718},
+ {"primaryMissingValue",1777},
+ {"skew",2153},
+ {""}, {""}, {""}, {""}, {""},
+ {"waveFrequencyNumber",2473},
+ {""},
+ {"numberOfParallelsBetweenAPoleAndTheEquator",1479},
+ {""},
+ {"typicalMinute",2374},
+ {""}, {""}, {""}, {""},
+ {"probContinous",1779},
+ {""},
+ {"reservedSection4",1875},
+ {"numberOfDistinctSection6s",1443},
+ {""},
+ {"coordinate3Flag",598},
+ {""}, {""}, {""}, {""}, {""},
+ {"minuteOfModelVersion",1334},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfComponents",1428},
+ {"secondOfModelVersion",2030},
+ {""}, {""},
+ {"totalInitialConditions",2301},
+ {""}, {""}, {""}, {""}, {""},
+ {"typicalHour",2373},
+ {""}, {""}, {""}, {""},
+ {"rdbtimeMinute",1831},
+ {""}, {""}, {""},
+ {"grib2LocalSectionPresent",923},
+ {""},
+ {"attributeOfTile",324},
+ {""},
+ {"section3Padding",2065},
+ {""}, {""},
+ {"md5Structure",1309},
+ {""}, {""}, {""},
+ {"typeOfIntervalForFirstAndSecondWavelength",2346},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"biFourierResolutionSubSetParameterN",367},
+ {"correction1",614},
+ {""}, {""}, {""},
+ {"spatialSmoothingOfProduct",2179},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"rdbtimeHour",1830},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"packingType",1627},
+ {"DyInMetres",44},
+ {"grib2LocalSectionNumber",922},
+ {""},
+ {"selectedFcIndex",2118},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"bitMapIndicator",371},
+ {""},
+ {"frequencyScalingFactor",903},
+ {""},
+ {"gts_TTAAii",948},
+ {"totalTileAttCombo",2320},
+ {""}, {""},
+ {"typeOfFirstFixedSurface",2341},
+ {""}, {""}, {""},
+ {"reservedNeedNotBePresent",1871},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsStream1",1273},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"lowerThreshold",1239},
+ {""}, {""},
+ {"windDirectionTrend4",2488},
+ {""}, {""}, {""}, {""},
+ {"combinationOfAttributesOfTile",564},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfOctectsForNumberOfPoints",1475},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"SecondOfModelVersion",230},
+ {"groupLengths",942},
+ {""}, {""},
+ {"inputProcessIdentifier",1012},
+ {""}, {""}, {""}, {""},
+ {"monthOfModelVersion",1360},
+ {""}, {""}, {""},
+ {"expandedOriginalCodes",798},
+ {"extremeClockwiseWindDirection",849},
+ {"expandedOriginalWidths",801},
+ {"resolutionAndComponentFlags",1877},
+ {""}, {""}, {""},
+ {"ijDirectionIncrementGiven",989},
+ {""},
+ {"primaryMissingValueSubstitute",1778},
+ {"tileIndex",2281},
+ {"matrixOfValues",1290},
+ {"LcyInMetres",120},
+ {""}, {""},
+ {"startOfHeaders",2190},
+ {""},
+ {"centreLatitudeInDegrees",411},
+ {"monthlyVerificationMonth",1364},
+ {""}, {""}, {""}, {""}, {""},
+ {"section_10",2106},
+ {""}, {""}, {""}, {""}, {""},
{"LuyInMetres",150},
{""}, {""}, {""}, {""},
- {"swapScanningLon",2198},
- {""},
- {"section10Length",2014},
- {"frequencyNumber",889},
- {"distinctLongitudes",707},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"startOfHeaders",2153},
+ {"maxLevelValue",1292},
{""}, {""}, {""},
- {"timeRangeIndicatorFromStepRange",2252},
- {""}, {""},
- {"presentTrend3",1723},
+ {"extractedAreaNumberOfSubsets",847},
{""}, {""}, {""},
- {"reservedSection2",1838},
- {""}, {""}, {""}, {""},
- {"section1Padding",2020},
- {""}, {""}, {""}, {""}, {""},
- {"AA",6},
+ {"Lar2InDegrees",111},
{""}, {""}, {""},
- {"coordinate4OfLastGridPoint",600},
- {"lengthOfIndexTemplate",1115},
+ {"secondLatitudeInDegrees",2026},
+ {"resolutionAndComponentFlags8",1884},
{""}, {""},
- {"indicatorOfUnitForTimeIncrement",987},
- {""},
- {"skew",2116},
- {"table2Version",2204},
- {""},
- {"gridCoordinate",916},
- {"numberOfModeOfDistribution",1451},
- {"typeOfSizeInterval",2313},
- {"doSimpleThinning",711},
- {""}, {""}, {""}, {""},
- {"unitsConversionOffset",2347},
- {"correction4",617},
- {"section6Pointer",2043},
- {""}, {""},
- {"numberOfDistinctSection6s",1421},
- {""},
- {"numberOfMissing",1448},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"section3Flags",2027},
- {"section1Pointer",2021},
- {""}, {""}, {""}, {""}, {""},
- {"section_4",2074},
- {"inputProcessIdentifier",996},
- {"numberOfChars",1398},
- {"lengthOfTimeRangeForReferencePeriod",1120},
- {""}, {""}, {""}, {""},
- {"marsExperimentOffset",1235},
- {""}, {""}, {""}, {""},
- {"cloudsTitle1Trend3",520},
- {""}, {""}, {""}, {""},
- {"numberOfRows",1481},
- {"upperThreshold",2369},
- {""},
- {"realPartOf00",1803},
- {""},
- {"expandedOriginalCodes",789},
- {""}, {""},
- {"expandedOriginalWidths",792},
- {"rdbtimeHour",1796},
- {""}, {""}, {""}, {""},
- {"deleteExtraLocalSection",686},
- {""}, {""}, {""}, {""},
- {"typeOfOriginalFieldValues",2304},
- {"numberInTheAuxiliaryArray",1382},
- {""},
- {"offsetAfterBitmap",1522},
- {"biFourierResolutionSubSetParameterN",365},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"timeCoordinateDefinition",2241},
- {""}, {""},
- {"averaging2Flag",326},
- {"scaledValueOfRadiusOfSphericalEarth",1963},
- {""}, {""}, {""},
- {"reservedSection3",1839},
- {"numberOfMembersInEnsemble",1447},
- {"section_04",2063},
- {""}, {""}, {""},
- {"coordinate3Flag",595},
- {"sp1",2131},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"spare1",2137},
+ {"section2Pointer",2060},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeLongitudeValues",1074},
- {"referenceOfWidths",1819},
- {"cloudsTitle1Trend2",519},
+ {"forecastOrSingularVectorNumber",888},
{""}, {""}, {""},
- {"presentTrend2",1722},
- {"lengthOfOriginatorLocalTemplate",1117},
- {"scaleFactorOfPrimeMeridianOffset",1931},
- {"_leg_number",292},
+ {"coordAveragingTims",591},
+ {"Lor2InDegrees",146},
{""}, {""},
- {"expandedOriginalScales",791},
+ {"is_ocean2d_param",1052},
{""}, {""},
- {"doExtractDateTime",709},
- {"shapeOfTheEarth",2096},
- {"scaledValueOfDistributionFunctionParameter",1950},
- {""}, {""}, {""}, {""},
- {"section6",2041},
+ {"expandedOriginalScales",800},
{""},
- {"rdbtimeMinute",1797},
+ {"latitudeOfNorthWestCornerOfArea",1102},
+ {"longitudeOfNorthWestCornerOfArea",1218},
+ {"firstDimensionCoordinateValueDefinition",869},
{""}, {""}, {""}, {""}, {""},
- {"numberOfTimeRange",1491},
- {""},
- {"epsStatisticsContinous",779},
- {"startingAzimuth",2159},
- {"dummy1",715},
+ {"extendedFlag",811},
{""}, {""}, {""}, {""},
- {"listMembersMissing",1132},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"section1",2013},
- {""}, {""}, {""}, {""},
- {"numberOfLogicals",1445},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"md5Section6",1286},
- {""}, {""}, {""}, {""}, {""},
- {"extendedFlag",801},
+ {"typeOfHorizontalLine",2344},
{""}, {""}, {""}, {""}, {""}, {""},
- {"bitMapIndicator",369},
+ {"M",155},
{""}, {""},
- {"tileIndex",2239},
- {"lowerThreshold",1220},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfCharacters",1397},
- {""}, {""},
- {"constituentType",581},
- {""}, {""},
- {"II",88},
+ {"extractSubsetIntervalEnd",844},
{""},
- {"marsType1",1257},
- {""}, {""},
- {"distanceFromTubeToEnsembleMean",705},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"biFourierCoefficients",359},
+ {"radiusOfCentralCluster",1818},
+ {""}, {""}, {""}, {""},
+ {"section6Pointer",2079},
+ {""},
+ {"extractSubsetIntervalStart",845},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"listOfParametersUsedForClustering",1162},
{""}, {""}, {""},
- {"offsetSection5",1548},
- {"packingType",1596},
+ {"scaledValueOfAdditionalParameterForReferencePeriod",1983},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"unitsConversionScaleFactor",2394},
{""}, {""}, {""}, {""}, {""},
- {"quantileValue",1779},
+ {"coordAveraging0",587},
{""}, {""}, {""}, {""}, {""},
- {"ijDirectionIncrementGiven",973},
- {""}, {""}, {""}, {""}, {""},
- {"sectionLengthLimitForProbability",2057},
- {"expandedOriginalReferences",790},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfMissingInStatisticalProcess",1449},
- {""}, {""},
- {"numberOfValues",1500},
+ {"numberOfPointsAlongXAxis",1490},
+ {""},
+ {"n2",1369},
+ {""},
+ {"expandedOriginalReferences",799},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"dataCategory",635},
+ {"latitudeOfIcosahedronPole",1099},
+ {"stepForClustering",2203},
{""}, {""}, {""},
- {"qualityControl",1775},
+ {"numberOfCoordinatesValues",1431},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"averaging2Flag",328},
+ {""}, {""}, {""},
+ {"Lar1InDegrees",109},
+ {"sp2",2169},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"section1Pointer",2057},
+ {""},
+ {"scaleFactorOfPrimeMeridianOffset",1967},
+ {"lengthOfHeaders",1132},
+ {""}, {""},
+ {"spare2",2175},
+ {""},
+ {"yCoordinateOfSubSatellitePoint",2519},
+ {"La2",102},
+ {""}, {""},
+ {"constantFieldHalfByte",583},
+ {"Lor1InDegrees",144},
+ {""},
+ {"Lar2",110},
+ {""}, {""}, {""},
+ {"conceptsDir1",572},
+ {"md5TimeDomainSection",1310},
+ {""}, {""}, {""}, {""}, {""},
+ {"Latin2",115},
+ {""}, {""}, {""},
+ {"Lo2",125},
+ {""}, {""},
+ {"azimuthalWidth",331},
+ {""}, {""},
+ {"Lor2",145},
+ {""}, {""}, {""}, {""},
+ {"numberInTheAuxiliaryArray",1404},
+ {""},
+ {"cloudsTitle1",519},
+ {""}, {""}, {""}, {""},
+ {"numberOfColumns",1427},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"tsectionNumber4",2327},
+ {""},
+ {"windVariableDirectionTrend2",2507},
+ {""},
+ {"isectionNumber4",1057},
+ {""}, {""}, {""},
+ {"numberOfCodedValues",1424},
+ {""},
+ {"md5DataSection",1295},
+ {""}, {""}, {""}, {""}, {""},
+ {"II",87},
+ {"La2InDegrees",103},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"doExtractArea",715},
+ {""}, {""}, {""},
+ {"Lo2InDegrees",126},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"LoVInDegrees",129},
- {""},
- {"lengthOfHeaders",1114},
+ {"formatVersionMajorNumber",898},
+ {"originatingCentreOfAnalysis",1615},
+ {""}, {""},
+ {"shapeOfTheEarth",2133},
{""}, {""}, {""},
- {"timeDomainTemplate",2242},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"NV",192},
- {"isSatelliteType",1026},
- {""},
- {"section_3",2073},
- {""}, {""}, {""}, {""},
- {"consensusCount",577},
- {"climateDateTo",435},
- {"longitudeOfStretchingPoleInDegrees",1206},
+ {"averaging1Flag",327},
{""}, {""}, {""}, {""}, {""},
- {"windVariableDirectionTrend4",2460},
- {""}, {""},
- {"typicalDateTime",2325},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"selectedFcIndex",2082},
- {""}, {""}, {""},
- {"latitudeOfStretchingPoleInDegrees",1091},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfOctectsForNumberOfPoints",1453},
- {""}, {""},
- {"subLocalDefinition2",2184},
+ {"tiggeLAMName",2270},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"XRInMetres",272},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsTitle4",532},
+ {"scaledValueOfDistanceFromEnsembleMean",1985},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"inputExtendedDelayedDescriptorReplicationFactor",993},
- {""},
- {"referenceValueError",1825},
- {""},
- {"reserved1",1833},
- {"primaryMissingValue",1743},
- {""},
- {"section_03",2062},
- {"longitudeOfSubSatellitePoint",1207},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"selectedMinute",2084},
- {""}, {""}, {""}, {""}, {""},
- {"longitudeOfSubSatellitePointInDegrees",1208},
+ {"section6",2077},
+ {""}, {""}, {""}, {""},
+ {"numberOfDistinctSection3s",1440},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"updateSequenceNumber",2412},
{""}, {""},
- {"La1",101},
+ {"baseTimeEPS",338},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"swapScanningX",2238},
+ {""}, {""}, {""}, {""}, {""},
+ {"windVariableDirectionTrend1",2506},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"stepUnits",2211},
+ {""}, {""}, {""}, {""}, {""},
+ {"La1InDegrees",101},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"longitudeOfFirstDiamondCenterLine",1209},
{""},
- {"Lar1",109},
- {""},
- {"endDayTrend4",741},
+ {"longitudeOfFirstDiamondCentreLine",1210},
{""}, {""}, {""}, {""}, {""}, {""},
- {"Lar1InDegrees",110},
+ {"Lo1InDegrees",124},
{""},
- {"basicAngleOfTheInitialProductionDomain",338},
+ {"typicalCentury",2369},
+ {""}, {""}, {""}, {""}, {""},
+ {"selectedMinute",2120},
+ {""}, {""},
+ {"presentTrend4",1758},
+ {""},
+ {"longitudeOfFirstDiamondCentreLineInDegrees",1211},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudeOfSouthernPoleInDegrees",1107},
+ {""},
+ {"sp1",2168},
+ {""},
+ {"dummy2",723},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"spare1",2174},
+ {""}, {""},
+ {"La1",100},
+ {""}, {""}, {""}, {""}, {""},
+ {"Lar1",108},
+ {""}, {""}, {""},
+ {"xDirectionGridLengthInMetres",2514},
+ {""},
+ {"yearOfCentury",2527},
+ {""}, {""}, {""}, {""},
+ {"Latin1",113},
+ {""},
+ {"bufrHeaderCentre",382},
{""},
{"Lo1",123},
{""},
+ {"endDayTrend1",746},
+ {""}, {""},
+ {"scaleFactorOfLengthOfSemiMinorAxis",1962},
{"Lor1",143},
- {"Latin1",114},
- {""},
- {"addExtraLocalSection",298},
- {""},
- {"clusterMember10",539},
- {""}, {""}, {""},
- {"Lor1InDegrees",144},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"reservedNeedNotBePresent",1836},
+ {"section1",2049},
{""}, {""},
- {"groupWidth",930},
+ {"fileConsistencyFlags",866},
+ {"marsGrid",1257},
{""}, {""}, {""}, {""}, {""}, {""},
- {"constituentTypeName",582},
- {"totalLength",2259},
+ {"LLCOSP",98},
{""},
- {"typeOfCalendar",2291},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"updateSequenceNumber",2366},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"windVariableDirectionTrend3",2459},
- {"listOfContributingSpectralBands",1140},
+ {"secondOrderOfDifferentWidth",2033},
+ {"backgroundProcess",333},
{""},
- {"section_2",2072},
- {"coordAveraging0",584},
+ {"isGridded",1038},
+ {""}, {""}, {""},
+ {"stepHumanReadable",2204},
+ {""}, {""}, {""},
+ {"reserved2",1869},
+ {""}, {""},
+ {"numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction",1425},
+ {"numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction",1426},
+ {""},
+ {"marsType2",1277},
+ {"X2",269},
+ {""}, {""},
+ {"runwayDepositState4",1903},
+ {""}, {""},
+ {"baseDateEPS",336},
+ {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfWaveDirections",1977},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfWaveDirectionSequenceParameter",1976},
+ {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfWaveFrequencies",1978},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfWavePeriodInterval",2367},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"monthlyVerificationMonth",1345},
- {""},
- {"marsGrid",1238},
- {"numberOfOctetsExtraDescriptors",1454},
+ {"totalNumberOfValuesInUnpackedSubset",2316},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"originatingCentreOfAnalysis",1587},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"operationalForecastCluster",1572},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"dataCategory",632},
- {""},
- {"_numberOfValues",293},
+ {"verticalVisibilityCoded",2461},
+ {"cloudsTitle4Trend4",538},
+ {""}, {""},
+ {"shortNameECMF",2136},
{""}, {""}, {""},
- {"coordAveragingTims",588},
- {"numberOfCategories",1396},
- {""},
- {"epsContinous",777},
+ {"compressedData",568},
{""}, {""}, {""},
- {"typicalCentury",2323},
+ {"runwaySideCodeState4",1943},
+ {"latitudeOfSubSatellitePoint",1110},
+ {""},
+ {"md5Product",1298},
{""}, {""}, {""}, {""}, {""},
- {"section_02",2061},
- {""},
- {"extractSubsetIntervalEnd",834},
- {""}, {""}, {""}, {""},
- {"centreLatitudeInDegrees",409},
- {""}, {""},
- {"windVariableDirectionTrend2",2458},
- {"deletePV",688},
- {""},
- {"numberOfForecastsInCluster",1429},
- {""}, {""},
- {"bufrHeaderCentre",380},
- {""}, {""},
- {"extractSubsetIntervalStart",835},
- {"numberOfParallelsBetweenAPoleAndTheEquator",1457},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"secondLatitudeInDegrees",1990},
- {"primaryMissingValueSubstitute",1744},
- {""}, {""},
- {"La1InDegrees",102},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"XRInMetres",271},
- {""}, {""}, {""}, {""}, {""},
- {"Lo1InDegrees",124},
+ {"numberOfWaveFrequencies",1532},
+ {"indicatorOfTypeOfLevel",1001},
+ {"xDirectionGridLengthInMillimetres",2515},
+ {""}, {""}, {""},
+ {"totalNumberOfDataValuesMissingInStatisticalProcess",2305},
+ {"timeDomainTemplateNumber",2286},
+ {"numberOfWaveDirections",1531},
+ {"windUnits",2500},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"expandedCodes",783},
+ {"ls_labeling",1241},
{""},
- {"listOfEnsembleForecastNumbers",1142},
+ {"unitsBias",2392},
+ {""}, {""},
+ {"typeOfEnsembleMember",2340},
+ {""}, {""},
+ {"section3Pointer",2066},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberOfRepresentativeMember",1502},
{""}, {""}, {""}, {""},
- {"scaleValuesBy",1944},
- {""}, {""}, {""},
- {"compressedData",565},
+ {"is_ocean3d_param",1053},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"localExtensionPadding",1177},
{""},
- {"cloudsTitle2Trend4",526},
- {""}, {""}, {""},
+ {"latitudeOfCentralPointInClusterDomain",1093},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section_7",2113},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetSection2",1571},
+ {""},
+ {"reducedGrid",1847},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"wrongPadding",2510},
+ {""},
+ {"normAtFinalTime",1386},
+ {""}, {""},
+ {"dummy1",722},
+ {""}, {""},
+ {"scaleFactorOfSecondWavelength",1971},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"integerPointValues",1017},
{"DjInDegrees",36},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"groupWidths",931},
- {""}, {""}, {""},
- {"xDirectionGridLengthInMetres",2465},
- {"coordinate1End",589},
- {""},
- {"yearOfCentury",2478},
{""}, {""}, {""}, {""},
- {"offsetSection6",1549},
+ {"subSetM",2230},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"flagForIrregularGridCoordinateList",879},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"GTSstr",78},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"reservedSection4",1840},
- {""},
- {"monthOfModelVersion",1341},
- {"missingValuesPresent",1324},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"radiusOfCentralCluster",1784},
- {""}, {""}, {""}, {""},
- {"offsetSection1",1542},
- {""},
- {"shortNameECMF",2099},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"originatorLocalTemplate",1589},
- {"coordinateFlag2",602},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"conceptsMasterMarsDir",575},
- {""}, {""},
- {"gts_TTAAii",933},
- {""}, {""},
- {"totalInitialConditions",2258},
- {""},
- {"numberOfAdditionalParametersForReferencePeriod",1386},
- {"scaleFactorOfLengthOfSemiMinorAxis",1926},
- {""}, {""}, {""},
- {"GTSstr",79},
- {""},
- {"numberOfDataValues",1414},
- {""},
- {"resolutionAndComponentFlags",1841},
- {"resolutionAndComponentFlags8",1848},
- {"section7Pointer",2047},
- {""},
- {"tsectionNumber5",2283},
- {"numberOfDistinctSection7s",1422},
- {"beginDayTrend4",342},
- {""}, {""}, {""},
- {"stepUnits",2173},
- {""}, {""}, {""},
- {"secondOfModelVersion",1994},
- {""}, {""},
- {"minuteOfModelVersion",1315},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"masterTablesVersionNumber",1263},
- {"stepHumanReadable",2166},
- {"windGust",2440},
- {""}, {""}, {""},
- {"clusterMember4",542},
- {""},
- {"windSpeedTrend1",2447},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsTitle2Trend3",525},
- {""},
- {"totalNumberOfDataValuesMissingInStatisticalProcess",2262},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"endMinuteTrend4",752},
- {""},
- {"numberOfForecastsInEnsemble",1430},
- {""}, {""},
- {"md5Section10",1281},
- {""}, {""}, {""}, {""},
- {"yCoordinateOfSubSatellitePoint",2470},
- {""}, {""}, {""},
- {"longitudeOfNorthWestCornerOfArea",1199},
- {""}, {""}, {""},
- {"subSetM",2191},
- {""},
- {"numberOfForecastsInTheCluster",1431},
- {""}, {""},
- {"xDirectionGridLengthInMillimetres",2466},
- {""},
- {"averaging1Flag",325},
- {""}, {""},
- {"endOfMessage",760},
- {""}, {""},
- {"coordinate4Flag",598},
- {"md5Section7",1287},
- {""}, {""}, {""}, {""}, {""},
- {"section1Flags",2018},
- {""}, {""},
- {"grib2LocalSectionPresent",909},
- {"X1",266},
- {"extremeClockwiseWindDirection",839},
- {""},
- {"cloudsTitle3Trend4",531},
- {"latitudeOfFirstGridPointInDegrees",1079},
- {"subLocalDefinitionLength2",2186},
- {""}, {""},
- {"flagForIrregularGridCoordinateList",869},
- {""},
- {"latitudeOfIcosahedronPole",1081},
- {""}, {""}, {""}, {""}, {""},
- {"cloudsTitle1Trend1",518},
- {""}, {""},
- {"windDirectionTrend1",2436},
- {""}, {""},
- {"GTS",78},
- {"cloudsTitle2Trend2",524},
+ {"cloudsTitle1Trend4",523},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"formatVersionMajorNumber",885},
+ {"scaleFactorOfWaveFrequencySequenceParameter",1979},
+ {"endStepUnit",773},
+ {"originatorLocalTemplateNumber",1618},
+ {"centreForTable2",409},
{""}, {""},
- {"extractedAreaNumberOfSubsets",837},
+ {"reserved1",1868},
{""},
- {"stepForClustering",2165},
- {""}, {""}, {""}, {""},
- {"typeOfEnsembleMember",2295},
- {""}, {""},
- {"SecondOfModelVersion",229},
- {""}, {""}, {""}, {""},
- {"Dj",34},
- {""}, {""},
- {"reducedGrid",1812},
+ {"pressureUnits",1775},
{""},
- {"windUnits",2451},
- {"grib2LocalSectionNumber",908},
- {""}, {""}, {""},
- {"Experiment_Identifier",55},
- {""}, {""}, {""},
- {"firstMonthUsedToBuildClimateMonth2",864},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"wrongPadding",2461},
- {"selectedHour",2083},
- {""}, {""},
- {"secondaryMissingValue",2006},
+ {"offsetSection6",1575},
{""},
- {"earthMajorAxis",721},
- {""}, {""},
- {"typeOfGrid",2298},
- {"N1",172},
- {""}, {""}, {""}, {""},
- {"marsKeywords1",1241},
- {""}, {""}, {""}, {""}, {""},
- {"groupLengths",927},
+ {"marsType1",1276},
+ {"X1",267},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"P_INST",217},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"earthMinorAxisInMetres",724},
- {""}, {""},
- {"DiGiven",31},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsTitle3Trend3",530},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"DxInMetres",41},
- {""},
- {"bitsPerValue",373},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfComponents",1406},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"probContinous",1745},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"listOfParametersUsedForClustering",1144},
- {"beginDayTrend3",341},
- {""}, {""}, {""},
- {"matrixOfValues",1271},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"visibilityInKilometresTrend4",2417},
- {"padding_sec1_loc",1661},
- {""}, {""}, {""},
- {"attributeOfTile",322},
- {""}, {""}, {""}, {""},
- {"clusterMember3",541},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsTitle3Trend2",529},
- {""}, {""}, {""},
- {"rootGroupObjectHeaderAddress",1850},
- {""}, {""},
- {"tiggeLAMName",2231},
+ {"windGust",2489},
{""}, {""}, {""}, {""}, {""},
- {"endMinuteTrend3",751},
+ {"sizeOfLength",2149},
{""},
- {"pressureUnits",1741},
- {"P1",212},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"localLatitude2",1164},
+ {"section_07",2102},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"windVariableDirectionTrend3",2508},
+ {""}, {""},
+ {"clusterMember10",541},
+ {""}, {""},
+ {"gribDataQualityChecks",926},
+ {""}, {""},
+ {"southEastLongitudeOfVerficationArea",2162},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"thisMarsClass",2262},
+ {""},
+ {"missingValueManagement",1341},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"ls_labeling",1222},
- {"flagShowingPostAuxiliaryArrayInUse",871},
+ {"primaryBitmap",1776},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"postAuxiliaryArrayPresent",1744},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"GTS",77},
+ {""}, {""},
+ {"windSpeedTrend2",2497},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"masterTablesVersionNumberLatest",1264},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"runwaySideCodeState1",1904},
+ {"flagForAnyFurtherInformation",878},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"latitudeOfFirstGridPointInDegrees",1097},
+ {"numberOfClusters",1423},
{""},
- {"versionNumberOfExperimentalSuite",2403},
- {"swapScanningX",2199},
- {""},
- {"indexedStorageInternalNodeK",978},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"biFourierResolutionParameterM",362},
+ {"correction3",618},
+ {"doExtractSubsets",717},
{""}, {""}, {""},
- {"runwayDesignatorState4",1883},
+ {"earthMajorAxis",728},
+ {""}, {""}, {""},
+ {"earthMinorAxisInMetres",731},
+ {"legBaseTime",1126},
{""},
+ {"flagShowingPostAuxiliaryArrayInUse",881},
+ {""}, {""}, {""}, {""},
+ {"offsetSection1",1568},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"LxInMetres",152},
- {""}, {""}, {""}, {""},
- {"southEastLatitudeOfLPOArea",2122},
- {""}, {""}, {""}, {""},
- {"runwayDepositState1",1864},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"southPoleOnProjectionPlane",2128},
- {"fileConsistencyFlags",856},
- {"scaleFactorOfWaveDirections",1941},
+ {""}, {""}, {""}, {""}, {""},
+ {"offsetEndSection4",1562},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"scaleFactorOfWaveDirectionSequenceParameter",1940},
- {""}, {""}, {""},
- {"stepInHours",2167},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"beginDayTrend2",340},
{""}, {""},
- {"runwayFrictionCoefficientState4",1903},
+ {"spaceUnitFlag",2171},
+ {"numberOfPointsAlongASide",1485},
+ {""}, {""},
+ {"deleteCalendarId",689},
+ {"thisExperimentVersionNumber",2261},
+ {""}, {""},
+ {"biFourierResolutionParameterM",364},
+ {""}, {""},
+ {"unitOfTimeRange",2390},
{""},
- {"scanningMode4",1978},
- {"offsetEndSection4",1536},
- {""}, {""}, {""},
- {"scaleFactorOfWaveFrequencySequenceParameter",1943},
- {"scaleFactorOfWaveFrequencies",1942},
- {""}, {""}, {""},
- {"latitudeOfSouthernPoleInDegrees",1089},
- {""}, {""}, {""},
- {"longitudeOfFirstDiamondCentreLine",1191},
- {"longitudeOfFirstDiamondCenterLine",1190},
- {""}, {""}, {""}, {""}, {""},
- {"section4Length",2033},
- {"clusterMember2",540},
- {""}, {""}, {""}, {""}, {""},
- {"indicatorOfTypeOfLevel",985},
- {"longitudeOfFirstDiamondCentreLineInDegrees",1192},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"endMinuteTrend2",750},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"timeDomainTemplateNumber",2243},
- {""},
- {"sampleSizeOfModelClimate",1909},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"isRotatedGrid",1024},
- {""}, {""}, {""}, {""},
- {"md5Headers",1278},
- {""},
- {"runwayDesignatorState3",1882},
- {""},
- {"latitudeOfCentralPointInClusterDomain",1075},
- {"flagForAnyFurtherInformation",868},
- {"windVariableDirectionTrend1",2457},
+ {"endOfMessage",768},
{""}, {""}, {""}, {""}, {""}, {""},
- {"localLongitude2",1167},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"maxLevelValue",1273},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"subLocalDefinitionNumber2",2188},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfWavePeriodInterval",2321},
+ {"unstructuredGrid",2407},
+ {""}, {""}, {""},
+ {"numberOfPointsAlongAMeridian",1483},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"visibilityInKilometresTrend3",2416},
- {""},
- {"runwayFrictionCoefficientState3",1902},
+ {"upperThresholdValue",2416},
{""}, {""}, {""},
- {"secondOrderOfDifferentWidth",1997},
- {"Product_Identifier",220},
- {""}, {""}, {""},
- {"thisMarsClass",2223},
- {"jPointsAreConsecutive",1049},
+ {"section_4",2110},
+ {""}, {""},
+ {"halfByte",951},
+ {""}, {""},
+ {"monthOfEndOfOverallTimeInterval",1357},
+ {"unstructuredGridType",2409},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"instrumentType",1016},
+ {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfFirstWavelength",1960},
+ {""},
+ {"northWestLatitudeOfLPOArea",1391},
{""}, {""}, {""},
- {"section3Length",2028},
- {"doExtractArea",708},
+ {"windDirectionTrend2",2486},
+ {""}, {""},
+ {"bufrdcExpandedDescriptors",385},
{""},
- {"runwayDesignatorState2",1881},
- {"section11Pointer",2017},
- {""},
- {"latitudeOfNorthWestCornerOfArea",1084},
- {"unitsBias",2346},
- {""},
- {"subDefinitions1",2181},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"coordinate2End",592},
+ {"indexedStorageInternalNodeK",994},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudinalDirectionGridLength",1122},
+ {""}, {""}, {""}, {""}, {""},
+ {"centralLongitudeInMicrodegrees",405},
+ {""},
+ {"Dj",34},
+ {"param_value_max",1704},
+ {"heightPressureEtcOfLevels",956},
+ {"selectedHour",2119},
{""}, {""}, {""}, {""},
- {"centralLongitudeInMicrodegrees",403},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"DiGiven",31},
+ {""}, {""}, {""},
+ {"tablesLocalDir",2247},
+ {""}, {""}, {""}, {""},
+ {"coordinate2Start",597},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"diffInHours",694},
- {"numberOfRepresentativeMember",1479},
- {"runwayFrictionCoefficientState2",1901},
+ {"subDefinitions2",2221},
+ {""},
+ {"longitudeOfReferencePoint",1219},
+ {""},
+ {"legBaseDate",1125},
+ {""},
+ {"Yp",285},
{""}, {""},
- {"primaryBitmap",1742},
- {"Yo",283},
+ {"unpackedSubsetPrecision",2404},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Yo",284},
+ {"longitudeOfTangencyPoint",1228},
+ {""}, {""}, {""}, {""}, {""},
+ {"typeOfGrid",2343},
+ {"numberOfPointsInDomain",1494},
+ {""},
+ {"cloudsTitle4Trend2",536},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"windSpeedTrend1",2496},
+ {"conceptsMasterMarsDir",578},
+ {""},
+ {"observationType",1540},
+ {""},
+ {"rootGroupObjectHeaderAddress",1886},
+ {""},
+ {"N2",173},
+ {""}, {""}, {""}, {""},
+ {"rangeBinSpacing",1822},
+ {"extractDateTimeYearStart",842},
+ {"section_04",2099},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section1Flags",2054},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"startDateOfReferencePeriod",2189},
+ {""},
+ {"minuteOfEndOfOverallTimeInterval",1331},
+ {""}, {""},
+ {"DxInMetres",41},
+ {"rootTablesDir",1888},
+ {""}, {""}, {""}, {""},
+ {"secondOfEndOfOverallTimeInterval",2027},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"southPoleOnProjectionPlane",2165},
+ {"section7Length",2082},
+ {""},
+ {"numberOfPointsAlongSecondAxis",1487},
+ {""},
+ {"P_INST",218},
+ {""},
+ {"isRotatedGrid",1041},
+ {""}, {""}, {""},
+ {"northWestLatitudeOfVerficationArea",1392},
+ {""}, {""},
+ {"secondaryBitmap",2037},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"jPointsAreConsecutive",1067},
+ {"P2",214},
+ {""}, {""}, {""},
+ {"BufrTemplate",19},
+ {""},
+ {"componentIndex",567},
+ {"packedValues",1625},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"unpackedSubsetPrecision",2358},
- {"biFourierResolutionSubSetParameterM",364},
- {"backgroundProcess",331},
- {"meanRVR4",1295},
- {""}, {""}, {""},
- {"Yp",284},
- {"section2Length",2022},
+ {"selectStepTemplateInstant",2115},
+ {"tiggeSuiteID",2274},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"subLocalDefinition2",2223},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"postAuxiliaryArrayPresent",1710},
- {""}, {""}, {""},
- {"unstructuredGrid",2361},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfColumns",1405},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"numberOfPointsAlongXAxis",1467},
- {""}, {""}, {""},
- {"localExtensionPadding",1158},
- {""}, {""}, {""}, {""}, {""},
- {"LcxInMetres",119},
- {""}, {""}, {""},
- {"section_5",2075},
- {"startDateOfReferencePeriod",2152},
+ {"cloudsTitle4Trend1",535},
{""},
- {"visibilityInKilometresTrend2",2415},
- {"unstructuredGridType",2363},
+ {"longitudeOfTheSouthernPoleOfProjection",1232},
+ {""}, {""}, {""}, {""}, {""},
+ {"versionOfModelClimate",2455},
{""}, {""},
+ {"scaledValueOfPrimeMeridianOffset",1998},
+ {""},
+ {"extractDateTimeHourStart",829},
+ {""},
+ {"cloudsTitle3",529},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"parametersVersion",1715},
+ {""}, {""},
+ {"selectedYear",2123},
+ {""},
+ {"lowerThresholdValue",1240},
+ {"hourOfEndOfOverallTimeInterval",966},
+ {""}, {""}, {""}, {""},
+ {"numberOfPointsAlongAParallel",1484},
+ {"LcxInMetres",118},
+ {""}, {""},
+ {"yCoordinateOfOriginOfSectorImage",2518},
+ {""}, {""}, {""}, {""},
+ {"n3",1370},
+ {"cloudsTitle1Trend2",521},
+ {"localYear",1199},
+ {""}, {""}, {""}, {""}, {""},
+ {"windDirectionTrend1",2485},
+ {""},
{"LuxInMetres",148},
{""},
- {"Model_Additional_Information",167},
- {""}, {""},
- {"instrumentType",1000},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfWaveFrequencies",1506},
- {""}, {""}, {""}, {""},
- {"firstDimensionCoordinateValueDefinition",859},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"gribDataQualityChecks",912},
- {"md5Section1",1280},
- {""}, {""}, {""}, {""},
- {"southEastLatitudeOfVerficationArea",2123},
- {""},
- {"md5Section2",1282},
- {""}, {""}, {""}, {""},
- {"jScansPositively",1051},
- {"numberOfPointsInDomain",1471},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"rootTablesDir",1852},
- {"cloudsTitle4Trend4",536},
- {""}, {""}, {""}, {""},
- {"unitOfTimeRange",2344},
- {"section_05",2064},
- {""}, {""},
- {"numberOfWaveDirections",1505},
- {"Model_Identifier",168},
- {""}, {""}, {""}, {""},
- {"LIMITS",98},
- {"Nj",199},
- {""}, {""}, {""}, {""}, {""},
- {"presentTrend1",1721},
- {""}, {""},
- {"cloudsTitle2Trend1",523},
- {""}, {""},
- {"section7",2045},
- {"scaledValueOfAdditionalParameterForReferencePeriod",1947},
- {""}, {""}, {""}, {""}, {""},
- {"halfByte",936},
- {"scaleFactorOfSecondWavelength",1935},
- {""},
- {"spaceUnitFlag",2134},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"parametersVersion",1683},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"selectedYear",2087},
- {""},
- {"componentIndex",564},
- {"unitsConversionScaleFactor",2348},
- {"latitudinalDirectionGridLength",1104},
- {""}, {""},
- {"firstMonthUsedToBuildClimateMonth1",863},
- {""}, {""}, {""}, {""},
- {"identificationOfOriginatingGeneratingCentre",968},
- {""},
- {"localYear",1180},
- {"jScansNegatively",1050},
- {""}, {""}, {""}, {""}, {""},
- {"param_value_max",1672},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"originatorLocalTemplateNumber",1590},
- {""}, {""}, {""}, {""},
- {"doExtractSubsets",710},
- {"md5Section3",1283},
- {""}, {""}, {""}, {""},
- {"typicalYear",2332},
- {""}, {""},
- {"monthOfEndOfOverallTimeInterval",1338},
- {""}, {""},
- {"HDF5str",81},
- {""},
- {"normAtFinalTime",1364},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"yearOfEndOfOverallTimeInterval",2479},
- {""},
- {"PUnset",215},
- {""}, {""},
- {"integerPointValues",1001},
- {""}, {""},
- {"LLCOSP",99},
- {"cloudsTitle4Trend3",535},
- {""}, {""}, {""},
- {"secondaryBitmap",2001},
- {""},
- {"NUT",191},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"longitudeOfReferencePoint",1200},
- {""}, {""}, {""}, {""},
- {"meanRVR3",1294},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation4",452},
- {""}, {""}, {""},
- {"percentileValue",1696},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"missingValueManagement",1322},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"cloudsTitle4Trend2",534},
- {""}, {""}, {""}, {""},
- {"cloudsTitle3Trend1",528},
- {""}, {""}, {""},
- {"scaledValueOfDistanceFromEnsembleMean",1949},
- {""}, {""},
- {"secondaryMissingValueSubstitute",2007},
- {""},
- {"tablesLocalDir",2208},
- {"jDirectionIncrementInDegrees",1047},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"subLocalDefinition1",2183},
- {""}, {""}, {""},
- {"tiggeSuiteID",2235},
- {""}, {""},
- {"scaledValueOfLowerLimit",1958},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"sourceOfGridDefinition",2120},
- {""}, {""}, {""}, {""},
- {"directionOfVariation",700},
- {""},
- {"totalNumberOfValuesInUnpackedSubset",2272},
- {""}, {""}, {""}, {""},
- {"latitudeOfSubSatellitePoint",1092},
- {"endMonthTrend4",756},
- {""}, {""},
- {"secondaryBitmapPresent",2002},
- {"GDSPresent",68},
- {"legBaseTime",1108},
- {""}, {""}, {""}, {""},
- {"remarkPresent",1827},
- {""},
- {"yCoordinateOfOriginOfSectorImage",2469},
- {""}, {""}, {""},
- {"keyMore",1057},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"qnhUnits",1774},
- {""}, {""},
- {"hourOfEndOfOverallTimeInterval",950},
- {""}, {""},
- {"meanRVR2",1293},
- {""}, {""}, {""}, {""}, {""},
- {"parameterUnits",1681},
- {""}, {""},
- {"qfeUnits",1770},
- {""},
- {"section_6",2076},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"dateSSTFieldUsed",658},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"section_1",2069},
- {"inputShortDelayedDescriptorReplicationFactor",997},
- {""}, {""}, {""}, {""},
- {"offsetFromReferenceOfFirstTime",1539},
- {"legBaseDate",1107},
- {"typeOfReferenceDataset",2309},
- {"physicalFlag2",1703},
- {""}, {""},
- {"formatVersionMinorNumber",886},
- {"section5Length",2038},
- {"versionOfModelClimate",2406},
- {""}, {""}, {""}, {""},
- {"Latin2InDegrees",117},
+ {"offsetBeforeData",1558},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeYearStart",832},
+ {"biFourierResolutionSubSetParameterM",366},
{""},
- {"marsClass2",1231},
- {""}, {""}, {""}, {""},
- {"section_06",2065},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"secondaryBitmaps",2003},
+ {"offsetBSection9",1556},
{""}, {""}, {""}, {""}, {""},
- {"BufrTemplate",19},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeHourStart",819},
+ {"longitudeOfThePoleOfStretching",1229},
+ {"isectionNumber2",1055},
+ {"sp3",2170},
{""}, {""},
- {"endGridDefinition",743},
- {"section_01",2060},
- {"alternativeRowScanning",306},
- {""}, {""}, {""}, {""},
- {"longitudeOfTangencyPoint",1209},
+ {"oceanAtmosphereCoupling",1543},
+ {"easternLongitudeOfClusterDomain",734},
{""}, {""},
- {"scaleFactorOfFirstWavelength",1924},
- {""}, {""}, {""}, {""}, {""},
- {"deleteCalendarId",685},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsAbbreviation3",447},
- {"NrInRadiusOfEarthScaled",202},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCoefficientState4",1939},
{""}, {""}, {""},
- {"selectStepTemplateInstant",2079},
+ {"secondaryMissingValue",2042},
+ {""},
+ {"spare3",2176},
+ {""},
+ {"Product_Identifier",221},
+ {"yearOfEndOfOverallTimeInterval",2528},
{""}, {""}, {""}, {""},
- {"secondOfEndOfOverallTimeInterval",1991},
- {""}, {""},
- {"minuteOfEndOfOverallTimeInterval",1312},
- {"secondaryBitmapsCount",2004},
- {""}, {""}, {""}, {""}, {""},
- {"observationType",1514},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"baseTimeEPS",336},
+ {"cloudsTitle3Trend4",533},
+ {""}, {""}, {""}, {""},
+ {"subDefinitions1",2220},
+ {""}, {""}, {""}, {""},
+ {"padding_sec1_loc",1692},
{""}, {""}, {""},
- {"firstDimensionPhysicalSignificance",860},
- {"NrInRadiusOfEarth",201},
- {"scaledValueOfPrimeMeridianOffset",1962},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfClusters",1401},
- {""},
- {"runwayDesignatorState1",1880},
- {"clusteringDomain",550},
- {""}, {""},
- {"offsetSection7",1550},
- {""}, {""}, {""}, {""},
- {"variationOfVisibility",2383},
- {""}, {""}, {""}, {""},
- {"numberOfCoordinatesValues",1409},
- {""},
- {"DjInMetres",37},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"offsetBeforeData",1532},
- {""}, {""}, {""},
- {"southEastLongitudeOfVerficationArea",2125},
- {""},
- {"upperThresholdValue",2370},
- {""}, {""}, {""},
- {"uerraLocalVersion",2337},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"endOfHeadersMarker",758},
- {"endMonthTrend3",755},
- {""},
- {"rdb_key",1792},
- {"runwayFrictionCoefficientState1",1900},
- {""}, {""}, {""},
- {"coordinateFlag1",601},
+ {"section4Length",2069},
{""}, {""}, {""}, {""}, {""},
- {"section6Length",2042},
- {""}, {""}, {""}, {""}, {""},
- {"baseDateEPS",334},
- {""}, {""}, {""},
- {"heightPressureEtcOfLevels",941},
- {""}, {""},
- {"section1Length",2019},
- {""}, {""}, {""},
- {"NRj",189},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"forecastOrSingularVectorNumber",877},
- {"swapScanningAlternativeRows",2196},
- {""},
- {"variationOfVisibilityDirection",2384},
+ {"dateSSTFieldUsed",663},
+ {"percentileValue",1729},
{""}, {""}, {""}, {""},
- {"cloudsAbbreviation2",442},
- {"variationOfVisibilityDirectionAngle",2385},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"oceanAtmosphereCoupling",1517},
+ {"beginDayTrend4",344},
+ {"produceLargeConstantFields",1785},
+ {"secondaryBitmapPresent",2038},
{""}, {""},
- {"easternLongitudeOfClusterDomain",727},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"clusterMember5",543},
- {""},
- {"gaussianGridName",896},
+ {"formatVersionMinorNumber",899},
{""}, {""},
- {"tempPressureUnits",2215},
- {""}, {""},
- {"md5Section4",1284},
- {""}, {""},
- {"longitudeOfTheSouthernPoleOfProjection",1213},
- {""}, {""},
- {"falseEasting",849},
- {""},
- {"unstructuredGridSubtype",2362},
- {""}, {""},
- {"section11Length",2016},
- {""}, {""},
- {"offsetBSection9",1530},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfPointsAlongAMeridian",1461},
- {""}, {""}, {""},
- {"rdbtimeYear",1801},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"deleteLocalDefinition",687},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"lowerThresholdValue",1221},
- {""}, {""}, {""}, {""},
- {"subLocalDefinitionLength1",2185},
- {""}, {""}, {""}, {""}, {""},
- {"firstOrderValues",865},
- {""},
- {"dateOfSSTFieldUsed",657},
- {""}, {""}, {""}, {""}, {""},
- {"endMonthTrend2",754},
- {""}, {""}, {""},
- {"secondOrderValuesDifferentWidths",1998},
- {""}, {""}, {""}, {""},
- {"iDirectionIncrementGiven",960},
- {"addEmptySection2",297},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"bufrdcExpandedDescriptors",383},
- {""}, {""}, {""}, {""},
- {"typeOfSSTFieldUsed",2311},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"produceLargeConstantFields",1751},
- {"packedValues",1594},
- {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfUpperLimit",1938},
- {""}, {""}, {""}, {""},
- {"numberOfCodedValues",1402},
- {""}, {""},
- {"xCoordinateOfSubSatellitePoint",2463},
- {""}, {""}, {""},
- {"padding_local40_1",1658},
- {""}, {""},
- {"localUsePresent",1179},
- {""},
- {"typicalMonth",2329},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"dayOfForecastUsedInLocalTime",665},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"longitudeOfCentralPointInClusterDomain",1187},
- {""},
- {"westernLongitudeOfClusterDomain",2429},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"METARstr",157},
- {""}, {""}, {""}, {""}, {""},
- {"dataSubCategory",644},
- {"dayOfTheYearDate",669},
- {""},
- {"expandedCrex_scales",784},
- {"numberOfPointsAlongSecondAxis",1464},
- {""}, {""}, {""}, {""},
- {"verticalVisibilityCoded",2412},
- {""}, {""},
- {"rangeBinSpacing",1788},
- {"TIDE",236},
- {""}, {""}, {""}, {""}, {""},
- {"unpackedError",2357},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"unexpandedDescriptors",2339},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfProcessedData",2308},
- {""},
- {"latitudeOfLastGridPoint",1082},
- {""}, {""}, {""}, {""}, {""},
- {"longitudeOfThePoleOfStretching",1210},
- {""},
- {"satelliteID",1911},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"selectStepTemplateInterval",2080},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"expandedCrex_units",785},
- {"cloudsTitle4Trend1",533},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"endStepInHours",764},
- {""}, {""},
- {"totalNumberOfWaveDirections",2273},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"localLatitude1",1163},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberIncludedInAverage",1384},
- {"unexpandedDescriptorsEncoded",2340},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfPointsAlongAParallel",1462},
- {""}, {""}, {""},
- {"WMO",263},
- {""},
- {"totalNumberOfWaveFrequencies",2274},
- {""},
- {"offsetAfterData",1524},
- {"numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction",1403},
- {"numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction",1404},
- {""},
- {"expandedUnits",794},
- {""}, {""}, {""}, {""},
- {"numberMissingFromAveragesOrAccumulations",1385},
- {"YR",279},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"crraSuiteID",628},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode1",497},
- {""},
- {"referenceForGroupWidths",1817},
- {""}, {""}, {""}, {""},
- {"cloudsCode2",502},
- {""}, {""}, {""}, {""}, {""},
- {"Original_Parameter_Identifier",210},
- {"tiggeLocalVersion",2232},
- {""},
- {"runwayDepositCodeState4",1863},
- {""}, {""},
- {"theHindcastMarsStream",2220},
- {""}, {""}, {""}, {""},
- {"Ensemble_Identifier",51},
- {""},
- {"beginDayTrend1",339},
- {"clusterMember6",544},
- {""},
{"NC",176},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Section7",1306},
+ {"unstructuredGridSubtype",2408},
+ {""},
+ {"PUnset",216},
+ {"coordinate1End",592},
+ {""}, {""},
+ {"N1",172},
+ {""},
+ {"longitudeOfSouthEastCornerOfArea",1221},
+ {"subLocalDefinitionLength2",2225},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"firstMonthUsedToBuildClimateMonth2",874},
+ {""},
+ {"expandedCrex_scales",793},
+ {""}, {""},
+ {"jDirectionIncrementInDegrees",1065},
+ {""}, {""}, {""},
+ {"Model_Additional_Information",167},
+ {""},
+ {"TIDE",237},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsTitle1Trend1",520},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"identificationOfOriginatingGeneratingCentre",984},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"uerraLocalVersion",2383},
+ {""},
+ {"clusterMember7",547},
+ {""}, {""},
+ {"xCoordinateOfSubSatellitePoint",2512},
+ {""},
+ {"meanRVR4",1314},
+ {""}, {""},
+ {"NrInRadiusOfEarthScaled",202},
+ {""},
+ {"P1",213},
+ {"expandedCrex_units",794},
+ {""},
+ {"numberOfDistinctSection5s",1442},
+ {""},
+ {"coordinate2Flag",596},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"NUT",191},
+ {""}, {""}, {""}, {""}, {""},
+ {"versionNumberOfExperimentalSuite",2452},
+ {"stepInHours",2205},
+ {""}, {""},
+ {"LIMITS",97},
+ {"falseEasting",859},
+ {""},
+ {"subLocalDefinition1",2222},
+ {"alternativeRowScanning",308},
+ {"presentTrend2",1756},
+ {""},
+ {"typicalYear",2378},
+ {""}, {""}, {""},
+ {"marsKeywords1",1260},
+ {"Sub-Experiment_Identifier",234},
+ {""}, {""}, {""}, {""},
+ {"endDayTrend3",748},
+ {""}, {""}, {""}, {""}, {""},
+ {"NrInRadiusOfEarth",201},
+ {""}, {""},
+ {"qfeUnits",1804},
+ {"numberOfClusterHighResolution",1421},
+ {""},
+ {"directionOfVariation",707},
+ {"qnhUnits",1808},
+ {"secondaryBitmaps",2039},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"unpackedError",2403},
+ {"firstMonthUsedToBuildClimateMonth1",873},
+ {""}, {""},
+ {"totalNumberOfWaveDirections",2317},
+ {""}, {""},
+ {"rdbtimeYear",1835},
+ {"parameterUnits",1713},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfLengthOfSemiMinorAxis",1993},
+ {""},
+ {"totalNumberOfWaveFrequencies",2318},
+ {""},
+ {"scanningMode7",2017},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfClusterLowResolution",1422},
+ {""}, {""}, {""},
+ {"Ensemble_Identifier",50},
+ {""}, {""}, {""}, {""},
+ {"secondaryBitmapsCount",2040},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetFromReferenceOfFirstTime",1565},
+ {""}, {""},
+ {"westernLongitudeOfClusterDomain",2478},
+ {""}, {""}, {""}, {""},
+ {"remarkPresent",1862},
+ {""},
+ {"packingError",1626},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"section3Flags",2063},
+ {""}, {""}, {""}, {""},
+ {"runwayDepositState2",1901},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityInKilometresTrend4",2466},
+ {""}, {""}, {""}, {""},
+ {"tiggeLocalVersion",2271},
+ {""}, {""},
+ {"scaledValueOfWaveDirectionSequenceParameter",2007},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"sourceOfGridDefinition",2157},
+ {"scaleFactorOfUpperLimit",1974},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"firstDimensionPhysicalSignificance",870},
+ {""}, {""},
+ {"METARstr",157},
+ {""}, {""}, {""},
+ {"totalNumberOfClusters",2304},
+ {""}, {""},
+ {"diffInHours",701},
+ {""}, {""}, {""},
+ {"subLocalDefinitionLength1",2224},
+ {""}, {""}, {""}, {""},
+ {"longitudeOfCentralPointInClusterDomain",1206},
+ {""}, {""}, {""},
+ {"reserved3",1870},
+ {""}, {""}, {""}, {""}, {""},
+ {"runwaySideCodeState2",1941},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"startStepUnit",2195},
+ {""}, {""}, {""}, {""},
+ {"cloudsTitle4Trend3",537},
+ {""}, {""}, {""}, {""},
+ {"reservedSection3",1874},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation4",454},
+ {"selectStepTemplateInterval",2116},
+ {"cloudsCode4",514},
+ {""}, {""}, {""}, {""}, {""},
+ {"section11Pointer",2053},
+ {""}, {""}, {""}, {""},
+ {"numberOfUnexpandedDescriptors",1517},
+ {""}, {""}, {""}, {""}, {""},
+ {"expandedCrex_widths",795},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"scanningMode5",1979},
+ {"numberOfUsedTileAttributes",1521},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"scaledValueOfLengthOfSemiMinorAxis",1957},
- {"latitudeWhereDxAndDyAreSpecified",1100},
+ {"presentTrend1",1755},
+ {"section5Pointer",2075},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"scaledValueOfSecondWavelength",2002},
+ {"numberOfWaveFrequencySequenceParameters",1533},
+ {"numberOfStepsUsedForClustering",1510},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfUsedTileAttributesForTileAttributeCombination",1522},
+ {""}, {""}, {""},
+ {"scaledValuesOfWaveDirections",2009},
+ {"Nj",199},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfWaveDirectionSequenceParameters",1530},
{""},
- {"clusterMember1",538},
- {"packingError",1595},
- {"runwayDepthOfDepositCodeState4",1871},
+ {"secondaryMissingValueSubstitute",2043},
+ {""},
+ {"dataSubCategory",647},
+ {""}, {""}, {""}, {""}, {""},
+ {"clusterMember4",544},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberMissingFromAveragesOrAccumulations",1407},
+ {""}, {""}, {""}, {""},
+ {"Model_Identifier",168},
{""}, {""},
- {"latitudeOfReferencePoint",1085},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Latin1InDegrees",115},
+ {"offsetSection3",1572},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"endMinuteTrend4",760},
+ {"forceStepUnits",885},
+ {"scaledValueOfWaveFrequencySequenceParameter",2008},
+ {""}, {""},
+ {"numberOfPointsAlongXAxisInCouplingArea",1491},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudeOfTangencyPoint",1112},
+ {""}, {""}, {""},
+ {"clusteringDomain",552},
+ {""}, {""}, {""}, {""},
+ {"runwayDepositState1",1900},
+ {"numberIncludedInAverage",1406},
+ {"scaledValuesOfWaveFrequencies",2010},
+ {""}, {""},
+ {"cloudsTitle1Trend3",522},
+ {""},
+ {"longitudeOfThePolePoint",1230},
+ {"runwayFrictionCoefficientState2",1937},
+ {""}, {""},
+ {"cfVarNameECMF",421},
+ {"WRAPstr",266},
+ {""}, {""}, {""},
+ {"swapScanningAlternativeRows",2235},
+ {""},
+ {"variationOfVisibilityDirection",2433},
+ {""}, {""}, {""},
+ {"cloudsTitle3Trend2",531},
+ {""},
+ {"variationOfVisibilityDirectionAngle",2434},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"secondOrderValuesDifferentWidths",2034},
+ {""}, {""}, {""},
+ {"section2Length",2058},
+ {""}, {""},
+ {"scanningMode4",2014},
+ {""},
+ {"deleteLocalDefinition",691},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"tempPressureUnits",2254},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"runwaySideCodeState1",1940},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"gaussianGridName",909},
+ {""}, {""},
+ {"numberOfBits",1410},
+ {""}, {""}, {""},
+ {"typeOfReferenceDataset",2354},
+ {""},
+ {"section6Length",2078},
+ {""}, {""}, {""}, {""}, {""},
+ {"cavokOrVisibility",391},
+ {"runwayDesignatorState4",1919},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"keyMore",1075},
+ {""}, {""},
+ {"scaleFactorOfCentralWaveNumber",1953},
+ {"inputShortDelayedDescriptorReplicationFactor",1013},
+ {""}, {""},
+ {"rdb_key",1826},
+ {"preBitmapValues",1747},
+ {"correction2",616},
+ {""}, {""},
+ {"firstOrderValues",875},
+ {""}, {""},
+ {"GDSPresent",67},
+ {"scaleFactorOfLowerWavePeriodLimit",1964},
+ {""}, {""},
+ {"runwayFrictionCoefficientState1",1936},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfUsedSpatialTiles",1519},
+ {""}, {""}, {""}, {""},
+ {"cloudsTitle3Trend1",530},
{""},
- {"latitudeWhereDxAndDyAreSpecifiedInDegrees",1101},
- {""}, {""}, {""}, {""}, {""}, {""},
{"************_PRODUCT_***************",3},
- {"endMinuteTrend1",749},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeOfSouthEastCornerOfArea",1202},
- {""}, {""}, {""}, {""}, {""},
- {"NC2",178},
- {"padding_loc9_2",1654},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"listMembersMissing4",1135},
- {""},
- {"Date_E4",28},
- {"referenceForGroupLengths",1816},
- {""}, {""}, {""}, {""}, {""},
- {"nameLegacyECMF",1355},
- {""},
- {"cavokOrVisibility",389},
- {""}, {""}, {""}, {""},
- {"numberOfWaveFrequencySequenceParameters",1507},
- {""},
- {"cloudsCode3",507},
- {""}, {""}, {""}, {""},
- {"localLongitude1",1166},
- {""}, {""},
- {"numberOfClusterHighResolution",1399},
- {""}, {""},
- {"numberOfUsedTileAttributes",1496},
- {""}, {""}, {""}, {""},
- {"longitudeOfThePolePoint",1211},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"subLocalDefinitionNumber1",2187},
- {""},
- {"numberOfStepsUsedForClustering",1487},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"WMO",264},
{""}, {""}, {""},
- {"iDirectionIncrementGridLength",961},
- {""},
- {"kindOfProduct",1059},
+ {"windSpeedTrend3",2498},
{""}, {""}, {""}, {""}, {""}, {""},
- {"cfVarNameECMF",419},
- {""}, {""},
- {"numberOfWaveDirectionSequenceParameters",1504},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfTangencyPoint",1094},
- {""}, {""}, {""}, {""},
- {"localFlagLatestVersion",1160},
- {""}, {""},
- {"runwayDepthOfDepositCodeState3",1870},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"section2Used",2026},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"numberOfClusterLowResolution",1400},
- {""}, {""}, {""}, {""},
- {"Sub-Experiment_Identifier",233},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"expandedCrex_widths",786},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfPacking",2305},
- {""}, {""}, {""}, {""}, {""},
- {"expandBy",781},
- {""}, {""}, {""}, {""}, {""},
- {"section7Length",2046},
- {"totalNumberOfClusters",2261},
- {""}, {""},
- {"section8UniqueIdentifier",2052},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"MonthOfModelVersion",170},
- {"runwayDepthOfDepositCodeState2",1869},
- {"extractDateTimeMinuteEnd",820},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"extractAreaEastLongitude",807},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeFirstInDegrees",1072},
- {"extractDateTimeMinuteStart",822},
- {"runwayDepositCodeState3",1862},
- {""},
- {"numberOfUnexpandedDescriptors",1493},
- {"northWestLatitudeOfLPOArea",1369},
- {""}, {""},
- {"numberOfUsedSpatialTiles",1495},
- {""}, {""},
- {"secondOfStartOfReferencePeriod",1995},
- {""}, {""},
- {"minuteOfStartOfReferencePeriod",1317},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"thisExperimentVersionNumber",2222},
- {""}, {""},
- {"extractDateTimeMonthEnd",823},
- {""}, {""},
- {"visibilityInKilometresTrend1",2414},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"extractDateTimeMonthStart",825},
- {""}, {""}, {""}, {""},
- {"section9UniqueIdentifier",2055},
+ {"section1Length",2055},
{""}, {""}, {""},
- {"MinuteOfModelVersion",159},
- {"rdbtimeMonth",1798},
- {""}, {""}, {""},
- {"WRAPstr",265},
- {""}, {""}, {""}, {""},
- {"localTablesVersion",1174},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"pentagonalResolutionParameterK",1694},
- {""}, {""}, {""}, {""},
- {"qualityControlIndicator",1776},
+ {"iDirectionIncrementGiven",976},
+ {""}, {""},
+ {"section11Length",2052},
+ {"localLatitude2",1183},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"variationOfVisibility",2432},
+ {"localUsePresent",1198},
+ {""},
+ {"endGridDefinition",751},
+ {"dayOfForecastUsedInLocalTime",670},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"marsStream2",1274},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"coordinateFlag2",605},
+ {""}, {""},
+ {"probabilityType",1782},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"dateOfSSTFieldUsed",662},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetAfterData",1550},
+ {""},
+ {"section_2",2108},
+ {"extractDateTimeMinuteEnd",830},
+ {"mBasicAngle",1246},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeMinuteStart",832},
+ {""}, {""},
+ {"secondaryBitmapsSize",2041},
+ {""}, {""},
+ {"probabilityTypeName",1783},
+ {""}, {""}, {""},
+ {"scaledValueOfFirstWavelength",1991},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeMonthEnd",833},
+ {""},
+ {"YR",280},
+ {""}, {""}, {""}, {""},
+ {"extractDateTimeMonthStart",835},
+ {""}, {""}, {""}, {""},
{"METAR",156},
{""}, {""}, {""}, {""}, {""},
- {"listMembersMissing3",1134},
- {""},
- {"Date_E3",27},
- {""}, {""}, {""},
- {"numberOfBits",1388},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfCentralWaveNumber",1917},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Section6",1305},
{""}, {""}, {""}, {""}, {""}, {""},
- {"offsetSection11",1544},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"constantAntennaElevationAngle",579},
+ {"numberOfContributingSpectralBands",1429},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetBeforePL",1559},
{""}, {""}, {""}, {""}, {""},
- {"scanningMode6",1980},
- {"Threshold_Or_Distribution_Units",249},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayDepositCodeState2",1861},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"verificationYear",2397},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractAreaNorthLatitude",810},
+ {"localFlagLatestVersion",1179},
{""}, {""},
- {"codedNumberOfGroups",558},
- {"probabilityType",1748},
- {"runwayFrictionCodeValueState4",1895},
+ {"extractAreaNorthLatitude",820},
+ {"latitudeWhereDxAndDyAreSpecified",1118},
+ {""}, {""},
+ {"theHindcastMarsStream",2259},
+ {""},
+ {"iDirectionIncrementGridLength",977},
+ {"windDirectionTrend3",2487},
+ {""}, {""}, {""},
+ {"section_6",2112},
+ {""}, {""}, {""}, {""},
+ {"expandedUnits",803},
+ {""}, {""},
+ {"latitudeWhereDxAndDyAreSpecifiedInDegrees",1119},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"jScansNegatively",1068},
+ {""},
+ {"southEastLongitudeOfLPOArea",2161},
+ {""}, {""},
+ {"section_02",2097},
+ {""}, {""}, {""},
+ {"jScansPositively",1069},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudeOfReferencePoint",1103},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfRadarSitesUsed",1497},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"unpackedValues",2405},
+ {""},
+ {"MinuteOfModelVersion",159},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"extractDateTimeStart",839},
+ {""}, {""}, {""}, {""},
+ {"localTablesVersion",1193},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"latitudeOfSubSatellitePointInDegrees",1111},
+ {""}, {""}, {""}, {""}, {""},
+ {"localLatitude1",1182},
+ {""}, {""},
+ {"subLocalDefinitionNumber2",2227},
+ {""}, {""}, {""},
+ {"extractDateTimeSecondEnd",836},
+ {""}, {""}, {""},
+ {"numberOfDataBinsAlongRadials",1432},
+ {""}, {""}, {""}, {""},
+ {"extractDateTimeSecondStart",838},
+ {""},
+ {"localLongitude2",1186},
+ {""}, {""},
+ {"conceptsDir2",573},
+ {""}, {""},
+ {"unexpandedDescriptors",2385},
+ {""},
+ {"typeOfSSTFieldUsed",2356},
+ {""}, {""}, {""}, {""},
+ {"NRj",189},
+ {"coordinateFlag1",604},
+ {"section_06",2101},
+ {""},
+ {"ITERATOR",90},
+ {""},
+ {"gribTablesVersionNo",928},
+ {""}, {""},
+ {"longitudeOfSouthernPole",1222},
+ {"numberOfHorizontalPoints",1461},
+ {""}, {""}, {""},
+ {"cloudsTitle2",524},
+ {""}, {""}, {""}, {""},
+ {"dayOfTheYearDate",674},
+ {""}, {""},
+ {"section9UniqueIdentifier",2091},
+ {"section_1",2105},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"scaledValueOfWaveDirectionSequenceParameter",1971},
+ {"section8UniqueIdentifier",2088},
+ {""}, {""}, {""}, {""},
+ {"numberOfControlForecastTube",1430},
+ {""}, {""}, {""}, {""},
+ {"uuidOfVGrid",2426},
+ {""}, {""},
+ {"unexpandedDescriptorsEncoded",2386},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"kindOfProduct",1077},
+ {""}, {""}, {""}, {""}, {""},
+ {"matchAerosolBinNumber",1284},
+ {"typeOfPacking",2350},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberOfDataPointsExpected",1435},
+ {""}, {""}, {""},
+ {"horizontalDomainTemplate",962},
+ {""}, {""},
+ {"MonthOfModelVersion",170},
+ {""}, {""}, {""},
+ {"pentagonalResolutionParameterK",1727},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"backgroundGeneratingProcessIdentifier",332},
+ {"runwayFrictionCoefficientState3",1938},
+ {""}, {""}, {""}, {""},
+ {"DjInMetres",37},
+ {"beginDayTrend2",342},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsTitle3Trend3",532},
+ {""}, {""}, {""}, {""}, {""},
+ {"northWestLongitudeOfVerficationArea",1394},
+ {"typicalMonth",2375},
+ {"tsectionNumber3",2326},
+ {""}, {""}, {""},
+ {"isectionNumber3",1056},
+ {"latitudeOfLastGridPoint",1100},
+ {"section3Length",2064},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"section_01",2096},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"expandBy",790},
+ {""}, {""}, {""}, {""}, {""},
+ {"runwayDesignatorState2",1917},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"NEAREST",180},
+ {"rdbtimeMonth",1832},
+ {""}, {""}, {""}, {""},
+ {"qualityControlIndicator",1810},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"minuteOfStartOfReferencePeriod",1336},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"secondOfStartOfReferencePeriod",2031},
+ {""}, {""}, {""}, {""},
+ {"runwayFrictionCodeValueState4",1931},
+ {"padding_local40_1",1689},
+ {""}, {""}, {""}, {""}, {""},
+ {"meanRVR2",1312},
+ {""},
+ {"mixedCoordinateFieldFlag",1346},
+ {""}, {""}, {""}, {""},
+ {"cloudsCode1",499},
+ {""}, {""}, {""}, {""},
+ {"subLocalDefinitionNumber1",2226},
+ {""}, {""},
+ {"xCoordinateOfOriginOfSectorImage",2511},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"listMembersUsed4",1157},
+ {""}, {""},
+ {"localLongitude1",1185},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Latin2InDegrees",116},
+ {""},
+ {"endDayTrend2",747},
+ {""},
+ {"referenceForGroupWidths",1852},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"satelliteID",1947},
+ {""},
+ {"endOfHeadersMarker",766},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"extractAreaEastLongitude",817},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayDesignatorState1",1916},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"inputOverriddenReferenceValues",1011},
+ {""},
+ {"physicalMeaningOfVerticalCoordinate",1737},
+ {""}, {""},
+ {"presentTrend3",1757},
+ {""}, {""}, {""},
+ {"Original_Parameter_Identifier",211},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"crraSuiteID",631},
+ {""}, {""},
+ {"codedNumberOfGroups",560},
+ {""},
+ {"referenceForGroupLengths",1851},
+ {""}, {""}, {""},
+ {"typeOfProcessedData",2353},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityInKilometresTrend2",2464},
+ {""}, {""}, {""}, {""},
+ {"totalAerosolBinsNumbers",2300},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfUpperLimit",2005},
+ {""}, {""}, {""},
+ {"beginDayTrend1",341},
+ {""}, {""}, {""},
+ {"Latin1InDegrees",114},
+ {""}, {""},
+ {"verificationYear",2446},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"sizeOfPostAuxiliaryArray",2151},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"constantAntennaElevationAngle",582},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"projTargetString",1795},
+ {""}, {""}, {""}, {""},
+ {"runwayDepositState3",1902},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayDesignatorRVR4",1879},
+ {"endStepInHours",772},
{""}, {""}, {""},
- {"scaledValueOfWaveFrequencySequenceParameter",1972},
+ {"reservedSection2",1873},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation2",444},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"meanRVR1",1311},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"projSourceString",1793},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetICEFieldsUsed",1566},
{""}, {""},
- {"numberOfPointsAlongXAxisInCouplingArea",1468},
+ {"runwaySideCodeState3",1942},
+ {""}, {""}, {""},
+ {"longitudeLastInDegrees",1205},
+ {""}, {""}, {""},
+ {"experimentVersionNumber",805},
+ {"totalNumberOfGridPoints",2309},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfMajorAxisOfOblateSpheroidEarth",1965},
{""}, {""},
- {"md5GridSection",1277},
+ {"numberOfGroups",1459},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"horizontalDimensionProcessed",961},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"marsClass2",1250},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfPointsAlongFirstAxis",1486},
+ {"pentagonalResolutionParameterJ",1726},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"clusterMember2",542},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Threshold_Or_Distribution_Units",250},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"WRAP",265},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"endMinuteTrend2",758},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberInMixedCoordinateDefinition",1403},
+ {""}, {""}, {""},
+ {"typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing",2364},
+ {""}, {""}, {""},
+ {"endMonthTrend4",764},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityInKilometresTrend1",2463},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberOfPointsAlongTheXAxis",1488},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"realPartOf00",1837},
+ {"clusterMember6",546},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsTitle2Trend4",528},
+ {""}, {""}, {""},
+ {"changeIndicatorTrend4",427},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberOfSingularVectorsComputed",1507},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ZLMULT",288},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"nameECMF",1376},
+ {""},
+ {"hoursAfterReferenceTimeOfDataCutoff",973},
+ {""}, {""}, {""},
+ {"extractDateTimeYearEnd",840},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation1",439},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"disableGrib1LocalSection",710},
+ {""},
+ {"latitudeFirstInDegrees",1090},
+ {""},
+ {"scaledValueOfCentralWaveNumber",1984},
+ {""}, {""},
+ {"offsetValuesBy",1580},
{""}, {""}, {""}, {""},
- {"templatesMasterDir",2219},
+ {"section2Used",2062},
+ {"longitudeOfReferencePointInDegrees",1220},
+ {""},
+ {"runwayDepositCodeState4",1899},
+ {""},
+ {"scaledValueOfLowerWavePeriodLimit",1995},
+ {"runwayDesignatorState3",1918},
+ {""},
+ {"runwayFrictionCodeValueState2",1929},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"legacyGaussSubarea",1128},
+ {"scanningMode6",2016},
+ {"numberOfBytesPerInteger",1417},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"unitsECMF",2396},
+ {""}, {""}, {""}, {""},
+ {"numberOfSingularVectorsEvolved",1508},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"definitionFilesVersion",688},
+ {""}, {""}, {""}, {""},
+ {"marsClass1",1249},
+ {""}, {""}, {""}, {""}, {""},
+ {"Ensemble_Combination_Number",49},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"clusterMember1",540},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"modelErrorType",1349},
+ {"extractDateTimeHourEnd",827},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"listMembersMissing2",1133},
+ {"getNumberOfValues",917},
+ {""}, {""}, {""}, {""}, {""},
+ {"endMinuteTrend1",757},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayDepthOfDepositCodeState4",1907},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCodeValueState1",1928},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
+ {"recentWeather",1840},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Local_Number_Members_Used",138},
+ {"unstructuredGridUUID",2410},
+ {""},
+ {"monthlyVerificationYear",1366},
+ {""}, {""}, {""}, {""},
+ {"numberOfSecondOrderPackedValues",1505},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section_3",2109},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Total_Number_Members_Used",259},
+ {""}, {""},
+ {"numberOfDaysInClimateSamplingWindow",1437},
+ {""}, {""},
+ {"scaleFactorOfLengthOfSemiMajorAxis",1961},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"matrixBitmapsPresent",1289},
+ {""}, {""},
+ {"nameLegacyECMF",1377},
+ {""}, {""}, {""},
+ {"Date_E4",28},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"md5Section4",1303},
+ {""}, {""}, {""}, {""},
+ {"numberOfGroupsOfDataValues",1460},
+ {""}, {""}, {""},
+ {"numberOfPressureLevelsUsedForClustering",1496},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"outerLoopTypeOfTimeIncrement",1621},
+ {""}, {""}, {""}, {""}, {""},
+ {"reflectivityCalibrationConstant",1861},
+ {""}, {""}, {""},
+ {"localTablesVersionNumber",1194},
+ {"Local_Number_Members_Possible",134},
+ {"mask",1279},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"dateOfIceFieldUsed",659},
+ {""},
+ {"Total_Number_Members_Possible",258},
+ {""}, {""}, {""}, {""}, {""},
+ {"templatesMasterDir",2258},
+ {"section_03",2098},
+ {"pack",1624},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"northLatitudeOfDomainOfTubing",1390},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"eastLongitudeOfDomainOfTubing",733},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"unpack",2402},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfWaveFrequencySequence",2366},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"pastTendencyRVR4",1724},
+ {"dateOfForecastUsedInLocalTime",658},
+ {""}, {""}, {""},
+ {"timeOfForecastUsedInLocalTime",2291},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Local_Number_Members_Missing",130},
+ {""}, {""}, {""}, {""},
+ {"southLatitudeOfDomainOfTubing",2164},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"ceilingAndVisibilityOK",397},
+ {""}, {""},
+ {"resolutionAndComponentFlags7",1883},
+ {"Total_Number_Members_Missing",257},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractAreaSouthLatitude",821},
+ {"paramIdLegacyECMF",1702},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"offsetSection11",1570},
+ {""}, {""}, {""}, {""},
+ {"listMembersMissing4",1153},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"cloudsTitle2Trend2",526},
+ {""}, {""}, {""},
+ {"changeIndicatorTrend2",425},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"probProductDefinition",1781},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Headers",1297},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"observationDiagnostic",1538},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode3",509},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"beginDayTrend3",343},
+ {""},
+ {"section5Length",2074},
+ {""}, {""},
+ {"hourOfForecastUsedInLocalTime",968},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"secondaryBitMap",2036},
+ {""}, {""},
+ {"coordinate2End",595},
+ {""}, {""}, {""}, {""},
+ {"section5",2073},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCodeValueState3",1930},
+ {""}, {""}, {""},
+ {"timeUnitFlag",2296},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsTitle2Trend1",525},
+ {""}, {""},
+ {"yearOfForecastUsedInLocalTime",2530},
+ {"changeIndicatorTrend1",424},
+ {"sizeOfPostAuxiliaryArrayPlusOne",2152},
+ {"westLongitudeOfDomainOfTubing",2477},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"meanRVR3",1313},
+ {""}, {""}, {""},
+ {"earthMajorAxisInMetres",729},
+ {"checkInternalVersion",433},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"NC2",178},
+ {""}, {""}, {""}, {""},
+ {"lengthOf4DvarWindow",1131},
+ {""},
+ {"laplacianScalingFactorUnset",1085},
+ {"runwayDepthOfDepositCodeState2",1905},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation4Trend4",458},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfPointsUsed",1495},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCoefficientCodeState4",1935},
+ {"variationOfVisibilityTrend4",2442},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityTrend4",2470},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfEarthMajorAxis",1956},
+ {""}, {""},
+ {"variationOfVisibilityDirectionTrend4",2438},
+ {""}, {""},
+ {"scaleFactorOfEarthMinorAxis",1957},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfGridInReference",1457},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"timeIncrementBetweenSuccessiveFields",2288},
+ {""}, {""}, {""},
+ {"resolutionAndComponentFlags4",1881},
+ {""}, {""}, {""},
+ {"md5Section5",1304},
+ {""},
+ {"numberOfBitsForScaledGroupLengths",1412},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityInKilometresTrend3",2465},
+ {""}, {""}, {""}, {""}, {""},
+ {"physicalFlag2",1736},
+ {"DjGiven",35},
+ {""}, {""},
+ {"gribMasterTablesVersionNumber",927},
+ {""}, {""},
+ {"runwayDepthOfDepositCodeState1",1904},
+ {""}, {""}, {""}, {""},
+ {"horizontalDomainTemplateNumber",963},
+ {""},
+ {"northWestLongitudeOfLPOArea",1393},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfMajorAxisOfOblateSpheroidEarth",1996},
+ {""}, {""}, {""},
+ {"SOH",227},
+ {""}, {""}, {""}, {""}, {""},
+ {"DELETE",24},
+ {"scaleFactorOfMinorAxisOfOblateSpheroidEarth",1966},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation3",449},
+ {""}, {""}, {""},
+ {"latitudeOfReferencePointInDegrees",1104},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"7777",5},
+ {""},
+ {"longitudeOfThePolePointInDegrees",1231},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"firstLatitudeInDegrees",872},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"NC1",177},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"endMonthTrend2",762},
+ {""},
+ {"beginHourTrend4",348},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"clusterMember3",543},
+ {""}, {""},
+ {"padding_grid90_1",1635},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typeOfGeneratingProcess",2342},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CLNOMA",23},
+ {""},
+ {"endMinuteTrend3",759},
+ {""}, {""}, {""}, {""},
+ {"dateOfModelVersion",660},
+ {""}, {""}, {""},
+ {"timeOfModelVersion",2292},
+ {"offsetSection5",1574},
+ {""}, {""}, {""}, {""},
+ {"section7UniqueIdentifier",2084},
+ {""}, {""}, {""}, {""},
+ {"padding_local_7_1",1691},
+ {""},
+ {"flagForNormalOrStaggeredGrid",880},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"physicalFlag1",1735},
+ {"widthOfWidths",2483},
+ {""}, {""}, {""}, {""},
+ {"cloudsTitle2Trend3",527},
+ {""}, {""}, {""},
+ {"changeIndicatorTrend3",426},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfBytesInLocalDefinition",1415},
+ {""}, {""}, {""},
+ {"beginMinuteTrend4",352},
+ {""}, {""}, {""}, {""},
+ {"versionNumOfSharedHeaderMessageFormat",2451},
+ {"accuracyMultipliedByFactor",297},
+ {""}, {""},
+ {"md5Section1",1299},
+ {""}, {""}, {""}, {""},
+ {"runwayDepositCodeState2",1897},
+ {"cfNameECMF",418},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"HDF5str",80},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc9_2",1685},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"baseTimeOfThisLeg",339},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"hourOfModelVersion",969},
+ {""}, {""},
+ {"spacingOfBinsAlongRadials",2172},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"countOfICEFieldsUsed",624},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"section4UniqueIdentifier",2072},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation2Trend4",448},
+ {""},
+ {"endMonthTrend1",761},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"radiusOfTheEarth",1820},
+ {"pastTendencyRVR1",1721},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCoefficientCodeState2",1933},
+ {"variationOfVisibilityTrend2",2440},
+ {""}, {""}, {""}, {""},
+ {"yearOfModelVersion",2531},
+ {"runwayDepthOfDepositCodeState3",1906},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"numberOfUsedTileAttributeCombinationsForTypeOfTile",1520},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfLengthOfSemiMajorAxis",1992},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"variationOfVisibilityDirectionTrend2",2436},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
{"Date_E2",26},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"listOfWaveFrequencySequenceParameters",1166},
+ {""}, {""}, {""}, {""}, {""},
+ {"dayOfModelVersion",671},
+ {""}, {""}, {""}, {""},
+ {"generalExtended2ordr",911},
+ {""},
+ {"cloudsBase4",474},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"indexingTimeMM",999},
+ {"baseDateOfThisLeg",337},
+ {"cloudsAbbreviation1Trend4",443},
+ {"shortNameLegacyECMF",2137},
{""}, {""},
- {"numberOfRadarSitesUsed",1474},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"padding_local_35",1659},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"azimuthalWidth",329},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeLastInDegrees",1186},
- {""}, {""}, {""}, {""}, {""},
- {"generalExtended2ordr",898},
- {""}, {""}, {""}, {""},
- {"totalNumberOfGridPoints",2266},
- {""}, {""}, {""},
- {"runwayFrictionCodeValueState3",1894},
- {""},
- {"cloudsAbbreviation4Trend4",456},
- {""}, {""}, {""},
- {"experimentVersionNumber",795},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Total_Number_Members_Used",258},
- {""}, {""}, {""}, {""},
- {"SOH",226},
- {""}, {""}, {""}, {""}, {""},
- {"physicalMeaningOfVerticalCoordinate",1704},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfDataBinsAlongRadials",1410},
- {""}, {""}, {""},
- {"disableGrib1LocalSection",703},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"northWestLatitudeOfVerficationArea",1370},
- {"cloudsCode4",512},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"scaledValuesOfWaveDirections",1973},
- {""}, {""}, {""},
- {"listMembersUsed2",1137},
- {""}, {""}, {""},
- {"runwayFrictionCodeValueState2",1893},
- {""}, {""}, {""}, {""},
- {"meanRVR1",1292},
- {"section_7",2077},
- {""}, {""}, {""}, {""},
- {"probabilityTypeName",1749},
- {""}, {""},
- {"numberOfGroups",1437},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"mBasicAngle",1227},
- {""}, {""}, {""}, {""},
- {"ITERATOR",91},
- {""}, {""},
- {"numberOfDataPointsExpected",1413},
- {""},
- {"beginHourTrend4",346},
- {""},
- {"uuidOfVGrid",2378},
- {""}, {""}, {""}, {""},
- {"scaledValuesOfWaveFrequencies",1974},
- {""}, {""}, {""},
- {"Total_Number_Members_Possible",257},
- {"physicalFlag1",1702},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation3Trend4",451},
- {"scaleFactorOfLengthOfSemiMajorAxis",1925},
- {""}, {""}, {""}, {""}, {""},
- {"section_07",2066},
- {""}, {""}, {""}, {""},
- {"marsClass1",1230},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"definitionFilesVersion",684},
- {"xCoordinateOfOriginOfSectorImage",2462},
- {""}, {""}, {""}, {""}, {""},
- {"runwayDesignatorRVR3",1878},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"pentagonalResolutionParameterJ",1693},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"listMembersUsed3",1138},
- {"unpackedValues",2359},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"backgroundGeneratingProcessIdentifier",330},
+ {"runwayDepositCodeState1",1896},
+ {"runwayDesignatorRVR4",1915},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"coordAveraging3",587},
- {"unstructuredGridUUID",2364},
+ {"longitudeOfSouthernPoleInDegrees",1223},
{""}, {""}, {""}, {""},
- {"endHourTrend4",747},
- {"cloudsAbbreviation2Trend4",446},
+ {"runwayFrictionCoefficientCodeState1",1932},
+ {"variationOfVisibilityTrend1",2439},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"typeOfWavelengthInterval",2368},
+ {""}, {""}, {""},
+ {"Less_Than_Or_To_Overall_Distribution",121},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfSubSatellitePointInDegrees",1093},
- {"sizeOfLength",2112},
- {""}, {""}, {""}, {""},
- {"changeIndicatorTrend4",425},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"preBitmapValues",1713},
- {""}, {""},
- {"variationOfVisibilityTrend4",2393},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"scaledValueOfSecondWavelength",1966},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation4Trend3",455},
- {"resolutionAndComponentFlags4",1845},
- {""}, {""}, {""}, {""},
- {"longitudeOfSouthernPole",1203},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"longitudeOfReferencePointInDegrees",1201},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Local_Number_Members_Used",138},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"dateOfIceFieldUsed",654},
+ {"listMembersUsed3",1156},
{""}, {""}, {""}, {""}, {""},
- {"runwayDesignatorRVR2",1877},
- {""}, {""},
- {"scaleFactorOfMajorAxisOfOblateSpheroidEarth",1929},
- {""}, {""}, {""}, {""}, {""},
- {"gribTablesVersionNo",914},
- {"offsetBeforePL",1533},
- {""}, {""},
- {"variationOfVisibilityDirectionTrend4",2389},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayDepthOfDepositCodeState1",1868},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"projSourceString",1759},
- {"versionNumOfSharedHeaderMessageFormat",2402},
- {""}, {""}, {""}, {""},
- {"coordAveraging2",586},
- {""},
- {"cloudsAbbreviation1",437},
- {""}, {""}, {""},
- {"changeIndicatorTrend3",424},
- {""}, {""}, {""},
- {"DjGiven",35},
- {"earthMajorAxisInMetres",722},
- {""}, {""}, {""}, {""},
- {"mixedCoordinateFieldFlag",1327},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"variationOfVisibilityTrend3",2392},
- {""}, {""}, {""}, {""},
- {"beginHourTrend3",345},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"dateOfForecastUsedInLocalTime",653},
- {""}, {""},
- {"yearOfForecastUsedInLocalTime",2481},
- {""}, {""}, {""}, {""}, {""},
- {"Local_Number_Members_Possible",134},
- {"cloudsAbbreviation3Trend3",450},
- {"timeOfForecastUsedInLocalTime",2248},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"projTargetString",1761},
- {""},
- {"cloudsAbbreviation4Trend2",454},
- {""}, {""}, {""}, {""},
{"NH",183},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"southEastLongitudeOfLPOArea",2124},
- {"changeIndicatorTrend2",423},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"variationOfVisibilityTrend2",2391},
- {""}, {""}, {""},
- {"endMonthTrend1",753},
- {"ZLMULT",287},
- {""},
- {"variationOfVisibilityDirectionTrend3",2388},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"padding_grid90_1",1604},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"endHourTrend3",746},
- {"cloudsAbbreviation2Trend3",445},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"lengthOf4DvarWindow",1113},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"HDF5",80},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfGeneratingProcess",2297},
{""}, {""}, {""}, {""}, {""},
- {"numberOfGroupsOfDataValues",1438},
+ {"padding_loc9_1",1684},
+ {"padding_loc7_1",1683},
{""},
- {"hoursAfterReferenceTimeOfDataCutoff",957},
- {""}, {""}, {""},
- {"shortNameLegacyECMF",2100},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"beginHourTrend2",344},
+ {"variationOfVisibilityDirectionTrend1",2435},
{""},
- {"variationOfVisibilityDirectionTrend2",2387},
- {""}, {""}, {""},
- {"resolutionAndComponentFlags3",1844},
- {""}, {""}, {""},
- {"typeOfWaveFrequencySequence",2320},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsAbbreviation3Trend2",449},
- {"nameECMF",1354},
- {"Total_Number_Members_Missing",256},
- {""}, {""},
- {"extractDateTimeStart",829},
+ {"coordinate4OfFirstGridPoint",602},
+ {"padding_loc6_1",1682},
{""}, {""}, {""}, {""}, {""},
- {"numberOfControlForecastTube",1408},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"mask",1260},
- {""}, {""}, {""},
- {"extractDateTimeSecondEnd",826},
- {"hourOfForecastUsedInLocalTime",952},
- {""}, {""}, {""},
- {"numberOfDaysInClimateSamplingWindow",1415},
- {""}, {""}, {""},
- {"northWestLongitudeOfVerficationArea",1372},
- {"NEAREST",180},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeSecondStart",828},
+ {"experimentVersionNumberOfAnalysis",808},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"runwayDepthOfDepositState4",1875},
- {""},
- {"numberOfContributingSpectralBands",1407},
- {""},
- {"secondaryBitMap",2000},
- {"probProductDefinition",1747},
- {""},
- {"localTablesVersionNumber",1175},
- {""}, {""}, {""}, {""},
- {"endHourTrend2",745},
- {"cloudsAbbreviation2Trend2",444},
- {"unitsECMF",2350},
{""}, {""}, {""}, {""}, {""},
- {"typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing",2318},
+ {"padding_loc5_1",1681},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"inputOverriddenReferenceValues",995},
- {""},
- {"numberOfBytesPerInteger",1395},
- {""}, {""},
- {"pack",1593},
- {""},
- {"scaledValueOfFirstWavelength",1955},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"getNumberOfValues",903},
- {"WRAP",264},
- {"timeUnitFlag",2253},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"resolutionAndComponentFlags2",1843},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"windUnitsTrend4",2455},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"listMembersUsed4",1139},
- {"unpack",2356},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfUsefulPointsAlongXAxis",1523},
{""}, {""}, {""}, {""},
- {"matrixBitmapsPresent",1270},
+ {"subdivisionsOfBasicAngle",2232},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"runwayFrictionCodeValueState1",1892},
- {""}, {""}, {""}, {""},
- {"numberOfPointsAlongFirstAxis",1463},
- {""},
- {"numberOfSingularVectorsEvolved",1485},
- {""}, {""},
- {"monthlyVerificationYear",1347},
- {""}, {""},
- {"clusterMember7",545},
- {""}, {""},
- {"matchAerosolBinNumber",1265},
- {""}, {""}, {""}, {""},
- {"totalAerosolBinsNumbers",2257},
- {""}, {""}, {""}, {""},
- {"numberInMixedCoordinateDefinition",1381},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"laplacianScalingFactorUnset",1067},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"padding_loc18_2",1618},
- {""}, {""},
- {"modelErrorType",1330},
+ {"latitudeOfLastGridPointInDegrees",1101},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"observationDiagnostic",1512},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"NC1",177},
- {"padding_loc9_1",1653},
- {"padding_loc7_1",1652},
- {""},
- {"padding_loc5_1",1650},
- {""},
- {"Local_Number_Members_Missing",130},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"indexingTimeMM",983},
- {""}, {""},
- {"numberOfSingularVectorsComputed",1484},
+ {"endHourTrend4",755},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"dateOfModelVersion",655},
{""}, {""},
- {"yearOfModelVersion",2482},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"timeOfModelVersion",2249},
- {""},
- {"offsetValuesBy",1554},
- {""}, {""}, {""},
- {"numberOfPressureLevelsUsedForClustering",1473},
- {"cloudsAbbreviation1Trend4",441},
- {""}, {""}, {""}, {""},
- {"padding_loc19_2",1624},
- {""},
- {"runwayDepthOfDepositState3",1874},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc50_1",1649},
+ {"listMembersMissing2",1151},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"pastTendencyRVR1",1688},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"pastTendencyRVR2",1689},
+ {"tileGrouping",2280},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc50_1",1680},
{""}, {""}, {""}, {""},
- {"padding_loc6_1",1651},
+ {"visibilityTrend1",2467},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayFrictionCoefficientCodeState4",1899},
- {""}, {""}, {""}, {""}, {""},
- {"recentWeather",1805},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"legacyGaussSubarea",1110},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"section4UniqueIdentifier",2036},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"dayOfModelVersion",666},
- {"scaledValueOfUpperLimit",1969},
- {""}, {""}, {""},
- {"section_11",2071},
- {""}, {""}, {""},
- {"windUnitsTrend3",2454},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"latitudeOfReferencePointInDegrees",1086},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"radiusOfTheEarth",1786},
- {""}, {""}, {""},
- {"accuracyMultipliedByFactor",296},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfHorizontalPoints",1439},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"pastTendencyRVR3",1690},
- {""}, {""},
- {"reflectivityCalibrationConstant",1826},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"runwayDepthOfDepositState2",1873},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"hourOfModelVersion",953},
- {"ceilingAndVisibilityOK",395},
- {""}, {""}, {""}, {""},
- {"offsetICEFieldsUsed",1540},
- {"extractDateTimeYearEnd",830},
- {""}, {""}, {""},
- {"runwayFrictionCoefficientCodeState3",1898},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"horizontalDomainTemplate",946},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"extractDateTimeHourEnd",817},
- {""}, {""},
- {"section3UniqueIdentifier",2031},
- {""}, {""},
- {"numberOfPointsUsed",1472},
- {""}, {""}, {""}, {""},
- {"sizeOfPostAuxiliaryArray",2114},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"changeIndicatorTrend1",422},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfGridInReference",1435},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"windUnitsTrend2",2453},
- {"variationOfVisibilityTrend1",2390},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"runwayFrictionCoefficientCodeState2",1897},
- {""},
{"DayOfModelVersion",29},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsCode2",504},
+ {""}, {""}, {""}, {""},
+ {"numberOfBytesOfFreeFormatData",1416},
+ {""}, {""}, {""}, {""}, {""},
+ {"beginMinuteTrend2",350},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"windUnitsTrend4",2504},
+ {""},
+ {"offsetBeforePV",1560},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetFromOriginToInnerBound",1564},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Section10",1300},
{""}, {""},
- {"cloudsAbbreviation1Trend3",440},
- {""},
- {"firstLatitudeInDegrees",862},
- {""},
- {"secondaryBitmapsSize",2005},
- {"scanningMode7",1981},
+ {"tsectionNumber5",2328},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"runwayDepositCodeState1",1860},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"timeIncrementBetweenSuccessiveFields",2245},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"variationOfVisibilityDirectionTrend1",2386},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBaseCoded1Trend4",481},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"addEmptySection2",299},
{""}, {""}, {""},
- {"latitudeOfLastGridPointInDegrees",1083},
+ {"pentagonalResolutionParameterM",1728},
{""}, {""}, {""}, {""}, {""},
- {"padding_sec2_3",1664},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"northLatitudeOfDomainOfTubing",1368},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Threshold_Or_Distribution_0_no_1_yes",249},
+ {"latitudeOfThePolePoint",1114},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded4",494},
+ {""}, {""}, {""}, {""},
+ {"Original_CodeTable_2_Version_Number",209},
{""}, {""}, {""},
- {"cloudsAbbreviation1Trend2",439},
- {"Y2",277},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"scaleFactorOfMinorAxisOfOblateSpheroidEarth",1930},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfPointsAlongTheXAxis",1465},
+ {"commonBlock",565},
{""},
- {"scaleFactorOfEarthMajorAxis",1920},
+ {"cloudsBaseCoded4Trend4",498},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"numberOfSecondOrderPackedValues",1482},
- {"scaleFactorOfEarthMinorAxis",1921},
+ {"coordAveraging2",589},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"beginMinuteTrend1",349},
+ {""},
+ {"jDirectionIncrementGiven",1063},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"southLatitudeOfDomainOfTubing",2127},
+ {"cloudsAbbreviation4Trend2",456},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBaseCoded1Trend3",480},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation3Trend4",453},
+ {"section6UniqueIdentifier",2080},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"qualityValueAssociatedWithParameter",1811},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayFrictionCoefficientCodeState3",1934},
+ {"variationOfVisibilityTrend3",2441},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfEarthMajorAxis",1987},
{""}, {""}, {""}, {""}, {""},
- {"horizontalDimensionProcessed",945},
- {""},
- {"padding_sec2_2",1663},
+ {"scaledValueOfEarthMinorAxis",1988},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_loc190_1",1619},
- {""}, {""}, {""},
- {"padding_loc29_3",1639},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"*********_EXTRA_DATA_***************",4},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"resolutionAndComponentFlags2",1879},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"eastLongitudeOfDomainOfTubing",726},
+ {"variationOfVisibilityDirectionTrend3",2437},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsBaseCoded1Trend2",479},
- {""},
- {"checkInternalVersion",431},
- {"Original_CodeTable_2_Version_Number",208},
- {""},
- {"Less_Than_Or_To_Overall_Distribution",122},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"Threshold_Or_Distribution_0_no_1_yes",248},
+ {"runwayDepthOfDepositState4",1911},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section_11",2107},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"Minute_E4",162},
+ {"cloudsBaseCoded1Trend4",483},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc2_2",1641},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"paramIdLegacyECMF",1671},
- {""},
- {"visibilityTrend1",2418},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"visibilityTrend2",2419},
- {"longitudeOfThePolePointInDegrees",1212},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"windGustTrend4",2444},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cfNameECMF",416},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"pastTendencyRVR4",1691},
- {""},
- {"listOfWaveFrequencySequenceParameters",1147},
{""}, {""}, {""}, {""}, {""},
- {"padding_loc29_2",1638},
+ {"jDirectionIncrementGridLength",1064},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaledValueOfMinorAxisOfOblateSpheroidEarth",1997},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"resolutionAndComponentFlags6",1882},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"coordAveraging1",588},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation4Trend1",455},
+ {"extractDateTimeEnd",826},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"g1conceptsLocalDirAll",906},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"beginHourTrend2",346},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"offsetToEndOf4DvarWindow",1579},
+ {"numberInHorizontalCoordinates",1402},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"resolutionAndComponentFlags1",1878},
+ {""}, {""}, {""},
+ {"endMonthTrend3",763},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"scaledValueOfCentralWaveNumber",1948},
- {""}, {""},
- {"westLongitudeOfDomainOfTubing",2428},
- {""}, {""}, {""},
- {"jDirectionIncrementGiven",1045},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"visibilityTrend3",2420},
- {"extractAreaSouthLatitude",811},
- {""}, {""},
- {"beginMinuteTrend4",350},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"numberOfBytesInLocalDefinition",1393},
- {""},
- {"section5UniqueIdentifier",2040},
- {""}, {""}, {""},
- {"widthOfWidths",2434},
- {""}, {""},
- {"scaleFactorOfLowerWavePeriodLimit",1928},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Section3",1302},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"uuidOfHGrid",2425},
{""}, {""}, {""}, {""},
- {"runwayDesignatorRVR1",1876},
+ {"numberOfMissingValues",1472},
+ {""},
+ {"md5GridSection",1296},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"coordinate3OfFirstGridPoint",596},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"uuidOfHGrid",2377},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"coordAveraging1",585},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"latitudeOfThePoleOfStretching",1113},
+ {"cloudsBase1",459},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"coordinate3OfFirstGridPoint",599},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"beginMinuteTrend3",351},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"Local_Number_Members_Possible_E4",137},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc30_2",1643},
+ {""}, {""},
+ {"Local_Number_Members_Missing_E4",133},
{""}, {""}, {""}, {""}, {""}, {""},
- {"Minute_E3",161},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"flagForNormalOrStaggeredGrid",870},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"beginMinuteTrend3",349},
+ {"INBITS",88},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"runwayDepositCodeState3",1898},
+ {""}, {""}, {""},
+ {"hook_post_meta_data",958},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"cloudsBaseCoded4Trend2",496},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"pastTendencyRVR3",1723},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Ensemble_Identifier_E4",53},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation2Trend2",446},
+ {""}, {""}, {""},
+ {"beginHourTrend1",345},
+ {""}, {""}, {""},
+ {"countOfGroupLengths",623},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"section3UniqueIdentifier",2067},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"weightAppliedToClimateMonth1",2475},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"sourceSinkChemicalPhysicalProcess",2158},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"radiusOfClusterDomain",1819},
+ {""},
+ {"cloudsBaseCoded4Trend1",495},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"recentWeatherTry",1841},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation1Trend2",441},
+ {""}, {""}, {""}, {""},
+ {"runwayDesignatorRVR2",1913},
+ {"cloudsBaseCoded1Trend2",481},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Minute_E4",162},
+ {""},
+ {"section_5",2111},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Date_E3",27},
+ {""},
+ {"latitudeOfSouthEastCornerOfArea",1105},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfParametersUsedForClustering",1480},
+ {""}, {""}, {""},
+ {"listMembersUsed2",1155},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded3Trend4",493},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation4Trend1",453},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"windGustTrend3",2443},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"pentagonalResolutionParameterM",1695},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"intervalBetweenTimes",1025},
+ {"cloudsCode4Trend4",518},
{""}, {""},
- {"runwayFrictionCoefficientCodeState1",1896},
+ {"numberOfPointsAlongYAxis",1492},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded1",479},
+ {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation2Trend1",445},
{""}, {""}, {""}, {""}, {""},
- {"weightAppliedToClimateMonth1",2426},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"section6UniqueIdentifier",2044},
- {""}, {""},
- {"padding_loc13_4",1610},
- {""},
- {"beginMinuteTrend2",348},
+ {"cloudsBaseCoded1Trend1",480},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"gribMasterTablesVersionNumber",913},
- {""}, {""}, {""},
- {"experimentVersionNumberOfAnalysis",798},
+ {""}, {""},
+ {"section_05",2100},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"endHourTrend2",753},
+ {"superblockExtensionAddress",2234},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_local11_1",1686},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"visibilityTrend3",2469},
+ {""}, {""},
+ {"beginYearTrend4",360},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"uvRelativeToGrid",2427},
+ {""}, {""}, {""}, {""},
+ {"cfVarNameLegacyECMF",422},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Number_Combination_Ensembles_1_none",204},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation1Trend1",440},
+ {""}, {""}, {""}, {""},
+ {"runwayDesignatorRVR1",1912},
+ {""}, {""}, {""}, {""}, {""},
+ {"listMembersMissing3",1152},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode1Trend4",503},
+ {"YRInMetres",281},
+ {""},
+ {"windUnitsTrend2",2502},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"endMark",756},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"beginMonthTrend4",356},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Local_Number_Members_Possible_E2",135},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"Local_Number_Members_Missing_E2",131},
+ {"runwayExtentOfContaminationState4",1927},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"typeOfWaveDirectionSequence",2365},
+ {""}, {""},
+ {"mixedCoordinateDefinition",1345},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"padding_loc190_1",1650},
+ {""}, {""}, {""}, {""}, {""},
+ {"************_EXPERIMENT_************",2},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"Ensemble_Identifier_E2",51},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsBaseCoded4Trend3",497},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"endHourTrend1",752},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"windGustTrend4",2493},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsAbbreviation3Trend2",451},
+ {""},
+ {"missingValueManagementUsed",1342},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"coordAveraging3",590},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_loc4_2",1679},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation4Trend3",457},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Y2",278},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"runwayDepthOfDepositState2",1909},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"presentWeather2Present",1764},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"windUnitsTrend1",2501},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"setToMissingIfOutOfRange",2131},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"resolutionAndComponentFlags3",1880},
+ {""}, {""},
+ {"ccsdsCompressionOptionsMask",394},
+ {"paramIdECMF",1701},
+ {""}, {""}, {""},
+ {"cloudsBaseCoded1Trend3",482},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded3Trend2",491},
+ {""}, {""}, {""}, {""}, {""},
+ {"offsetBBitmap",1553},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ZLBASE",287},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"typeOfLevelECMF",2348},
+ {""}, {""}, {""},
+ {"padding_sec4_1",1697},
+ {""}, {""}, {""}, {""},
+ {"cloudsCode4Trend2",516},
+ {""}, {""},
+ {"padding_loc19_2",1655},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"presentWeather1Present",1759},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc18_2",1649},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"is_chemical_srcsink",1050},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation3Trend1",450},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded3Trend1",490},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"setPackingType",2130},
+ {""}, {""},
+ {"endYearTrend4",778},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Y1",276},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"beginHourTrend3",347},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"md5Section2",1301},
+ {""}, {""},
+ {"cloudsCode4Trend1",515},
+ {""}, {""},
+ {"runwayDepthOfDepositState1",1908},
+ {""},
+ {"typicalYearOfCentury",2380},
+ {"cloudsBase3",469},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"isCavok",1028},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"clusterMember5",545},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode1Trend2",501},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"offsetBSection6",1555},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetBeforeBitmap",1557},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"extractDateTimeDayStart",825},
+ {""}, {""},
+ {"runwayExtentOfContaminationState2",1925},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode3Trend4",513},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"hoursAfterDataCutoff",972},
+ {""},
{"Local_Number_Members_Possible_E3",136},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"cloudsBase1",457},
- {"beginHourTrend1",343},
- {""}, {""}, {""}, {""}, {""},
- {"cloudsBase2",462},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Minute_E2",160},
- {""},
- {"Local_Number_Members_Missing_E4",133},
- {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation3Trend1",448},
- {""}, {""}, {""}, {""},
- {"cloudsBaseCoded2Trend4",486},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"Local_Number_Members_Possible_E2",135},
- {""},
- {"windGustTrend2",2442},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfBytesOfFreeFormatData",1394},
{""}, {""},
- {"scaledValueOfLengthOfSemiMajorAxis",1956},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"CLNOMA",23},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"endHourTrend1",744},
- {"cloudsAbbreviation2Trend1",443},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"cloudsBase3",467},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"resolutionAndComponentFlags6",1846},
- {""}, {""}, {""},
- {"typeOfWavelengthInterval",2322},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"g1conceptsLocalDirAll",893},
- {""}, {""}, {""}, {""}, {""},
{"Local_Number_Members_Missing_E3",132},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"resolutionAndComponentFlags1",1842},
- {""}, {""}, {""},
- {"cloudsBaseCoded2Trend3",485},
- {"typicalYear2",2333},
- {"jDirectionIncrementGridLength",1046},
{""}, {""},
- {"countOfICEFieldsUsed",621},
+ {"scanningMode5",2015},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"padding_grid1_2",1599},
+ {"pastTendencyRVR2",1722},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"Ensemble_Combination_Number",50},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"northWestLongitudeOfLPOArea",1371},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"cloudsBaseCoded3Trend4",491},
- {""}, {""},
- {"padding_loc13_3",1609},
- {"cloudsBaseCoded1",477},
- {""}, {""}, {""}, {""},
- {"Local_Number_Members_Missing_E2",131},
- {""},
- {"cloudsBaseCoded2",482},
- {""},
- {"cloudsBaseCoded1Trend1",478},
+ {"skipExtraKeyAttributes",2155},
{""}, {""}, {""}, {""}, {""},
- {"padding_loc14_2",1613},
- {"cloudsBaseCoded2Trend2",484},
- {""}, {""}, {""},
- {"scaledValueOfMajorAxisOfOblateSpheroidEarth",1960},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeEnd",816},
- {"sizeOfPostAuxiliaryArrayPlusOne",2115},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfBitsForScaledGroupLengths",1390},
- {""},
- {"spacingOfBinsAlongRadials",2135},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"visibilityTrend4",2421},
- {""},
- {"*********_EXTRA_DATA_***************",4},
- {"padding_loc18_1",1617},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"beginYearTrend4",358},
+ {"padding_loc18_1",1648},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"offsetFromOriginToInnerBound",1538},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_local11_1",1655},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc10_1",1605},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_local1_1",1656},
- {"cloudsBaseCoded3",487},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBaseCoded3Trend3",490},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"longitudeOfSouthernPoleInDegrees",1204},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc13_2",1608},
- {""}, {""}, {""}, {""},
- {"endYearTrend4",769},
- {""},
- {"countOfGroupLengths",620},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_local_7_1",1660},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"cloudsBaseCoded3Trend2",489},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"latitudeOfThePolePoint",1096},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"INBITS",89},
- {""},
- {"padding_loc4_2",1648},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"commonBlock",562},
- {""},
- {"coordinate4OfFirstGridPoint",599},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Ensemble_Identifier_E4",54},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"padding_grid50_1",1602},
- {""}, {""}, {""}, {""},
- {"runwayDepthOfDepositState1",1872},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfMissingValues",1450},
- {"beginYearTrend3",357},
- {""},
- {"YRInMetres",280},
- {""}, {""}, {""}, {""},
- {"offsetToEndOf4DvarWindow",1553},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"sourceSinkChemicalPhysicalProcess",2121},
- {""}, {""}, {""}, {""}, {""},
- {"windUnitsTrend1",2452},
- {""},
- {"numberOfUsefulPointsAlongXAxis",1497},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"recentWeatherTry",1806},
- {"cfVarNameLegacyECMF",420},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"section7UniqueIdentifier",2048},
- {""}, {""},
- {"subdivisionsOfBasicAngle",2193},
- {""}, {""}, {""}, {""},
- {"Ensemble_Identifier_E3",53},
+ {"cloudsCode1Trend1",500},
{""},
- {"beginMinuteTrend1",347},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_grid4_1",1601},
- {""}, {""}, {""}, {""},
- {"endYearTrend3",768},
- {""}, {""}, {""}, {""},
- {"cloudsBase4",472},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Ensemble_Identifier_E2",52},
- {""}, {""}, {""}, {""},
- {"beginYearTrend2",356},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather3Present",1735},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"oneMinuteMeanMaximumRVR4",1564},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"endMark",748},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsAbbreviation1Trend1",438},
- {"Y1",275},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_grid3_1",1600},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfLevelECMF",2303},
- {""}, {""},
- {"baseTimeOfThisLeg",337},
- {""},
- {"horizontalDomainTemplateNumber",947},
- {""}, {""}, {""},
- {"presentWeather2Present",1730},
- {""}, {""}, {""},
- {"endYearTrend2",767},
- {""}, {""}, {""}, {""},
- {"setToMissingIfOutOfRange",2094},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"scaleFactorOfUpperWavePeriodLimit",1975},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"radiusOfClusterDomain",1785},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Ensemble_Identifier_E3",52},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"padding_sec2_1",1662},
+ {"padding_local1_1",1687},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"runwayExtentOfContaminationState1",1924},
+ {""}, {""},
+ {"padding_grid4_1",1632},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"baseDateOfThisLeg",335},
+ {"section5UniqueIdentifier",2076},
+ {""},
+ {"cloudsAbbreviation2Trend3",447},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"cloudsBaseCoded4",492},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBaseCoded4Trend4",496},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBaseCoded2Trend1",483},
+ {"padding_loc10_1",1636},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"RVR4_1",226},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"Minute_E2",160},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc2_1",1640},
+ {"ICPLSIZE",86},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather3Present",1769},
+ {""}, {""}, {""},
+ {"XpInGridLengths",275},
+ {""},
+ {"padding_local_35",1690},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"beginMonthTrend1",353},
+ {"cloudsAbbreviation1Trend3",442},
{""}, {""}, {""}, {""},
- {"padding_loc28_1",1636},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"typeOfWaveDirectionSequence",2319},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"runwayExtentOfContaminationState4",1891},
- {""}, {""},
- {"DELETE",24},
- {""},
- {"padding_loc192_1",1623},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"offsetBSection5",1528},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc20_1",1625},
- {""}, {""},
- {"Hour_E4",85},
+ {"runwayDesignatorRVR3",1914},
{""}, {""}, {""},
- {"oneMinuteMeanMaximumRVR3",1563},
- {""}, {""}, {""},
- {"cloudsBaseCoded4Trend3",495},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"************_EXPERIMENT_************",2},
- {""},
- {"padding_loc29_1",1637},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode1Trend4",501},
- {"Time_Range_One_E4",252},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_sec3_1",1665},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"versionNumberOfSuperblock",2454},
{""}, {""},
+ {"cloudsBaseCoded3",489},
+ {""}, {""},
+ {"RENAME",222},
+ {""}, {""}, {""},
{"NG",182},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsBaseCoded4Trend2",494},
+ {""}, {""}, {""},
+ {"cloudsBaseCoded3Trend3",492},
{""}, {""}, {""}, {""},
- {"cloudsBaseCoded3Trend1",488},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfThePoleOfStretching",1095},
+ {"extractAreaLongitudeRank",819},
{""}, {""}, {""}, {""},
- {"RVR4_1",225},
- {"runwayExtentOfContaminationState3",1890},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"padding_loc3_1",1647},
- {""}, {""}, {""}, {""},
- {"padding_loc38_1",1646},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"oneMinuteMeanMaximumRVR2",1562},
- {""}, {""}, {""}, {""}, {""},
- {"experimentVersionNumber2",797},
- {"cloudsCode1Trend3",500},
- {"Time_Range_One_E3",251},
+ {"numberOfGridUsed",1458},
{""}, {""}, {""},
- {"mixedCoordinateDefinition",1326},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc30_1",1642},
- {""},
- {"runwayExtentOfContaminationState2",1889},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"uvRelativeToGrid",2379},
- {"padding_local1_31",1657},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"superblockExtensionAddress",2195},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"scaledValueOfMinorAxisOfOblateSpheroidEarth",1961},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsCode1Trend2",499},
- {"Time_Range_One_E2",250},
- {""},
- {"qualityValueAssociatedWithParameter",1777},
- {""}, {""}, {""}, {""},
- {"scaledValueOfEarthMajorAxis",1951},
- {"RVR3_1",224},
- {""}, {""}, {""},
- {"scaledValueOfEarthMinorAxis",1952},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Hour_E3",84},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc13_5",1611},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_grid5_1",1603},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"RVR2_1",223},
- {""}, {""}, {""}, {""},
- {"typicalYearOfCentury",2334},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"numberOfPointsAlongYAxis",1469},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"offsetBSection6",1529},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"windGustTrend1",2441},
+ {"numberOfReforecastYearsInModelClimate",1500},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Time_Range_One_E4",253},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Hour_E2",83},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ccsdsCompressionOptionsMask",392},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"resolutionAndComponentFlags7",1847},
- {""},
- {"presentWeather1Present",1725},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"oneMinuteMeanMinimumRVR4",1568},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"padding_grid1_1",1598},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"paramIdECMF",1670},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"scaledValueOfLowerWavePeriodLimit",1959},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"padding_loc14_1",1612},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfParametersUsedForClustering",1458},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfSouthEastCornerOfArea",1087},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"offsetBeforePV",1534},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"is_chemical_srcsink",1032},
- {""}, {""}, {""},
- {"padding_loc191_1",1620},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc191_2",1621},
- {""}, {""},
- {"extractDateTimeDayStart",815},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"beginMonthTrend1",351},
- {"missingValueManagementUsed",1323},
- {""}, {""}, {""}, {""}, {""},
- {"beginMonthTrend2",352},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_loc13_1",1607},
- {""},
- {"cloudsCode2Trend4",506},
- {""},
- {"padding_sec4_1",1666},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"XpInGridLengths",274},
- {""}, {""}, {""},
- {"oneMinuteMeanMinimumRVR3",1567},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"cloudsBaseCoded4Trend1",493},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc17_2",1616},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc191_3",1622},
- {""}, {""},
- {"padding_loc12_1",1606},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"beginMonthTrend3",353},
- {""}, {""}, {""},
- {"numberOfReforecastYearsInModelClimate",1477},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"cloudsCode2Trend3",505},
- {"skipExtraKeyAttributes",2118},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"ceilingAndVisibilityOKTrend4",399},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayExtentOfContaminationState1",1888},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"oneMinuteMeanMinimumRVR2",1566},
- {""}, {""}, {""},
- {"cloudsCode3Trend4",511},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"cloudsCode1Trend1",498},
- {""}, {""},
- {"unitsLegacyECMF",2352},
- {""}, {""}, {""},
- {"cloudsCode2Trend2",504},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Extra_Data_FreeFormat_0_none",56},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"listOfWaveDirectionSequenceParameters",1146},
- {""}, {""}, {""}, {""}, {""},
- {"isCavok",1012},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"RVR1_1",222},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"isCavokTrend4",1016},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode3Trend3",510},
- {"Number_Combination_Ensembles_1_none",203},
- {""},
- {"beginYearTrend1",355},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"scaleFactorOfUpperWavePeriodLimit",1939},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"TYPE_FF",243},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode3Trend2",509},
- {"offsetBBitmap",1527},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"TYPE_OF",245},
- {""},
- {"ceilingAndVisibilityOKTrend3",398},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"endYearTrend1",766},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfThePolePointInDegrees",1097},
- {"hoursAfterDataCutoff",956},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfGridUsed",1436},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_loc15_1",1614},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"biFourierPackingModeForAxes",361},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractAreaLongitudeRank",809},
- {""},
- {"isCavokTrend3",1015},
- {""},
- {"ceilingAndVisibilityOKTrend2",397},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"numberInHorizontalCoordinates",1380},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"beginMonthTrend4",354},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"latitudeOfTheSouthernPoleOfProjection",1098},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"rootGroupSymbolTableEntry",1851},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"versionNumberOfSuperblock",2405},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc23_1",1627},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"offsetBeforeBitmap",1531},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"isCavokTrend2",1014},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_loc16_1",1615},
- {""},
- {"padding_loc27_2",1635},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode4Trend3",517},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"BUFR",18},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"oneMinuteMeanMaximumRVR1",1561},
+ {"latitudeOfThePolePointInDegrees",1115},
{""}, {""}, {""}, {""}, {""},
- {"experimentVersionNumber1",796},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Extra_Data_FreeFormat_0_none",55},
+ {""}, {""},
+ {"visibilityTrend2",2468},
+ {""}, {""}, {""}, {""}, {""},
+ {"beginYearTrend2",358},
+ {""}, {""},
+ {"ccsdsBlockSize",393},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"bufrHeaderSubCentre",383},
+ {""},
{"NB",175},
- {""}, {""},
- {"FMULTM",66},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"HourOfModelVersion",82},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode4Trend4",516},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode2Trend1",503},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"padding_loc37_2",1645},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Local_Number_Members_Used_E4",141},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"extractAreaLatitudeRank",808},
+ {""}, {""}, {""}, {""}, {""},
+ {"listOfWaveDirectionSequenceParameters",1165},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc244_1",1628},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc244_2",1629},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"cloudsCode4Trend3",515},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsCode4Trend2",514},
- {""}, {""}, {""}, {""},
- {"cloudsCode3Trend1",508},
- {""},
{"ECMWF",45},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc244_3",1630},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"TYPE_OR",246},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"TYPE_PF",247},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"RENAME",221},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"numberOfPointsAlongYAxisInCouplingArea",1470},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius",307},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Local_Number_Members_Used_E3",140},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ZLBASE",286},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"setBitsPerValue",2090},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ICPLSIZE",87},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Local_Number_Members_Used_E2",139},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"TYPE_FX",244},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc26_1",1633},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cfNameLegacyECMF",417},
- {""}, {""}, {""}, {""}, {""},
- {"padding_loc21_1",1626},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"FMULTE",65},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"indexingTimeHH",981},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"X2InGridLengths",269},
- {""}, {""}, {""}, {""},
- {"oneMinuteMeanMinimumRVR1",1565},
+ {"latitudeOfTheSouthernPoleOfProjection",1116},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"endHourTrend3",754},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius",309},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"bufrHeaderSubCentre",381},
+ {"padding_loc30_2",1674},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"Ensemble_Combinat_Number_0_none_E4",49},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"unusedBitsInBitmap",2365},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"intervalBetweenTimes",1009},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ICEFieldsUsed",86},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"biFourierPackingModeForAxes",363},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"padding_loc245_1",1631},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"padding_loc245_2",1632},
- {"LSTCUM",100},
- {""}, {""}, {""}, {""}, {""}, {""},
{"************_ENSEMBLE_**************",1},
+ {""}, {""},
+ {"cloudsCode1Trend3",502},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"padding_sec3_1",1696},
+ {"padding_grid1_2",1630},
+ {""}, {""}, {""},
+ {"cloudsCode3Trend2",511},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"windUnitsTrend3",2503},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayExtentOfContaminationState3",1926},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"padding_loc3_1",1678},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"BUFR",18},
+ {"windGustTrend2",2491},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc38_1",1677},
+ {""}, {""}, {""},
+ {"beginYearTrend1",357},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode3Trend1",510},
+ {""}, {""}, {""},
+ {"numberOfBitsContainingEachPackedValue",1411},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"padding_local1_31",1688},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsAbbreviation3Trend3",452},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"RVR2_1",224},
+ {""}, {""}, {""}, {""},
+ {"padding_loc30_1",1673},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"unusedBitsInBitmap",2411},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_grid1_1",1629},
+ {""}, {""}, {""},
+ {"runwayDepthOfDepositState3",1910},
+ {""}, {""}, {""}, {""},
+ {"TYPE_OF",246},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"Hour_E4",84},
+ {""}, {""}, {""},
+ {"oneMinuteMeanMaximumRVR4",1590},
+ {""},
+ {"cloudsBaseCoded2Trend4",488},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"At_least__Or_Distribut_Proportion_Of",14},
+ {"TYPE_FF",244},
+ {"Time_Range_One_E2",251},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"Ensemble_Combinat_Number_0_none_E3",48},
+ {"RVR1_1",223},
+ {""}, {""},
+ {"P_TACC",219},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"unitsLegacyECMF",2398},
{""}, {""}, {""},
+ {"extractAreaLatitudeRank",818},
+ {"windGustTrend1",2490},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"TYPE_FX",245},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfPointsAlongYAxisInCouplingArea",1493},
+ {""}, {""}, {""},
+ {"endYearTrend2",776},
+ {"ceilingAndVisibilityOKTrend4",401},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsBase2",464},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"FMULTE",64},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"isCavokTrend4",1032},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode3Trend3",512},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"rootGroupSymbolTableEntry",1887},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"scaledValueOfUpperWavePeriodLimit",2006},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ICEFieldsUsed",85},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"TYPE_OR",247},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfBitsUsedForTheScaledGroupLengths",1414},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"endYearTrend1",775},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_grid3_1",1631},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"setBitsPerValue",2126},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"Ensemble_Combinat_Number_0_none_E4",48},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"cfNameLegacyECMF",419},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"beginMonthTrend3",355},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"RVR3_1",225},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded2",484},
+ {""}, {""}, {""},
+ {"Minute_E3",161},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBaseCoded2Trend2",486},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"experimentVersionNumber2",807},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Time_Range_One_E3",252},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsBaseCoded2Trend1",485},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"padding_loc17_2",1647},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"beginYearTrend3",359},
+ {""}, {""}, {""},
+ {"numberOfVGridUsed",1525},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"TYPE_PF",248},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"experimentVersionNumber1",806},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"cloudsCode2Trend4",508},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc14_2",1644},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"LSTCUM",99},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc13_4",1641},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"FMULTM",65},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"typicalYear2",2379},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CCCC",20},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"windGustTrend3",2492},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"Ensemble_Combinat_Number_0_none_E2",46},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc192_1",1654},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_grid50_1",1633},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"runwayExtentOfContaminationCodeState4",1923},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"extractDateTimeDayEnd",823},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"HourOfModelVersion",81},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"Hour_E2",82},
+ {""}, {""}, {""},
+ {"oneMinuteMeanMaximumRVR2",1588},
+ {""}, {""}, {""},
+ {"cloudsBase4Trend4",478},
+ {"oneMinuteMeanMinimumRVR4",1594},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"padding_sec2_2",1694},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"HDF5",79},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc14_1",1643},
+ {""}, {""},
+ {"cloudsBaseCoded2Trend3",487},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_loc191_1",1651},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"listOfUsedTileAttributesInCombination",1164},
+ {""},
+ {"padding_loc2_2",1672},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc29_2",1669},
+ {""}, {""}, {""}, {""}, {""},
+ {"ceilingAndVisibilityOKTrend2",399},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"numberOfTensOfThousandsOfYearsOfOffset",1512},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"numberOfPointsAlongTheYAxis",1489},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"cloudsBase1Trend4",463},
+ {""}, {""},
+ {"isCavokTrend2",1030},
+ {""}, {""},
+ {"endYearTrend3",777},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc37_2",1676},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"oneMinuteMeanMaximumRVR1",1587},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_sec2_1",1693},
+ {""}, {""}, {""}, {""},
+ {"cloudsCode2Trend2",506},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extremeValuesRVR4",854},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"padding_loc2_1",1671},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc29_1",1668},
+ {""}, {""}, {""}, {""}, {""},
+ {"ceilingAndVisibilityOKTrend1",398},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_loc28_1",1667},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsCode2Trend1",505},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"At_least__Or_Distribut_Proportion_Of",14},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"isCavokTrend1",1029},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"padding_loc37_1",1675},
+ {""}, {""}, {""}, {""},
+ {"padding_grid5_1",1634},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Ensemble_Combinat_Number_0_none_E3",47},
+ {""}, {""}, {""},
+ {"beginMonthTrend2",354},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"padding_loc20_1",1656},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"runwayExtentOfContaminationCodeState2",1921},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase4Trend2",476},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"padding_loc12_1",1637},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"DIAG",25},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather3PresentTrend4",1739},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsCode4Trend1",513},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"Ensemble_Combinat_Number_0_none_E2",47},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfBitsUsedForTheScaledGroupLengths",1392},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"presentWeather2PresentTrend4",1734},
- {""}, {""}, {""}, {""},
- {"cloudsBase1Trend4",461},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Original_Parameter_Iden_CodeTable2",209},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ceilingAndVisibilityOKTrend1",396},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"cloudsBase1Trend3",460},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc16_1",1646},
+ {"octetAtWichPackedDataBegins",1546},
+ {""}, {""},
+ {"runwayExtentOfContaminationCodeState1",1920},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfBitsContainingEachPackedValue",1389},
- {"presentWeather3PresentTrend3",1738},
+ {"Local_Number_Members_Used_E4",141},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"cloudsBase1Trend2",459},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"isCavokTrend1",1013},
- {"numberOfTensOfThousandsOfYearsOfOffset",1489},
- {""}, {""},
- {"presentWeather2PresentTrend3",1733},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"padding_loc27_1",1634},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"numberOfVGridUsed",1499},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"P_TACC",218},
- {""}, {""}, {""},
- {"runwayExtentOfContaminationCodeState4",1887},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"presentWeather3PresentTrend2",1737},
- {""}, {""}, {""}, {""},
- {"scaledValueOfUpperWavePeriodLimit",1970},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"X1InGridLengths",267},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeDayEnd",813},
- {""}, {""}, {""},
- {"presentWeather2PresentTrend2",1732},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayExtentOfContaminationCodeState3",1886},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"padding_loc37_1",1644},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayExtentOfContaminationCodeState2",1885},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase4Trend1",475},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather1PresentTrend4",1729},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"cloudsBase2Trend4",466},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"ECMWF_s",46},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"cloudsBase2Trend3",465},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfPointsAlongTheYAxis",1466},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"cloudsBase3Trend4",471},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"cloudsBase1Trend1",458},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBase2Trend2",464},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather1PresentTrend3",1728},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"TYPE_AN",240},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"cloudsBase3Trend3",470},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"extremeValuesRVR4",844},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"YearOfModelVersion",282},
- {""}, {""}, {""}, {""},
- {"cloudsBase3Trend2",469},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather1PresentTrend2",1727},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"lastMonthUsedToBuildClimateMonth2",1069},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
{"Missing_Model_LBC",163},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase1Trend2",461},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"X2InGridLengths",270},
+ {""},
+ {"cloudsBase3Trend4",473},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"cloudsBase1Trend1",460},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsCode2Trend3",507},
+ {""},
+ {"extremeValuesRVR2",852},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_loc13_2",1639},
+ {""}, {""}, {""}, {""}, {""},
+ {"X1InGridLengths",268},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"extremeValuesRVR1",851},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayExtentOfContaminationCodeState3",1922},
+ {""}, {""}, {""}, {""},
+ {"padding_loc191_3",1653},
+ {""}, {""}, {""},
+ {"oneMinuteMeanMinimumRVR2",1592},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase4Trend3",477},
+ {""}, {""}, {""}, {""}, {""},
+ {"TYPE_AN",241},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"Hour_E3",83},
+ {""}, {""},
+ {"padding_loc13_1",1638},
+ {"oneMinuteMeanMaximumRVR3",1589},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_sec2_3",1695},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"indexingTimeHH",997},
+ {""},
+ {"TYPE_CF",242},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Original_Parameter_Iden_CodeTable2",210},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc29_3",1670},
+ {""}, {""}, {""}, {""}, {""},
+ {"ceilingAndVisibilityOKTrend3",400},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extremeValuesRVR3",843},
+ {"cloudsBase1Trend3",462},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase3Trend2",471},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeYearRank",841},
+ {"isCavokTrend3",1031},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"oneMinuteMeanMinimumRVR1",1591},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"offsetBSection5",1554},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"extremeValuesRVR3",853},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase3Trend1",470},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeHourRank",828},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"LBC_Initial_Conditions",96},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"YearOfModelVersion",283},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"presentWeather2PresentTrend4",1768},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfUsefulPointsAlongYAxis",1524},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Local_Number_Members_Used_E2",139},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather1PresentTrend4",1763},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"bitsPerValueAndRepack",376},
+ {""}, {""}, {""},
+ {"gts_CCCC",947},
+ {""}, {""}, {""}, {""},
+ {"padding_loc27_2",1666},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"runwayExtentOfContaminationCodeState1",1884},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extremeValuesRVR2",842},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase3Trend3",472},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
+ {"Time_Range_Two_E4",256},
+ {""}, {""},
+ {"extractDateTimeMinuteRank",831},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeMonthRank",834},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"genVertHeightCoords",910},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"padding_loc13_3",1640},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc27_1",1665},
+ {""}, {""}, {""}, {""},
+ {"precisionOfTheUnpackedSubset",1750},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"extractDateTimeSecondRank",837},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc191_2",1652},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"oneMinuteMeanMinimumRVR3",1593},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather3PresentTrend4",1773},
+ {""}, {""}, {""}, {""}, {""},
+ {"padding_loc15_1",1645},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"lastMonthUsedToBuildClimateMonth2",1087},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesRVR4",63},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"cloudsBase2Trend4",468},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Time_Range_Two_E2",254},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"lastMonthUsedToBuildClimateMonth1",1086},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"extractDateTimeDayRank",824},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesInMaximumRVR4",59},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"GG",68},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather2PresentTrend2",1766},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"lBB",1080},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc26_1",1664},
+ {"Model_LBC_Member_Identifier",169},
+ {""}, {""}, {""}, {""},
+ {"Local_Number_Members_Used_E3",140},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"presentWeather1PresentTrend2",1761},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesRVR2",61},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"padding_loc21_1",1657},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase2Trend2",466},
+ {""},
+ {"P_TAVG",220},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"indexingTimeHHMM",998},
+ {""}, {""}, {""}, {""},
+ {"swapScanningY",2239},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Time_Range_Two_E3",255},
{"NINT_RITZ_EXP",185},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather2PresentTrend1",1765},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesRVR1",60},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"ccsdsBlockSize",391},
{""},
- {"Time_Range_Two_E4",255},
- {""}, {""}, {""}, {""}, {""},
- {"indexingTimeHHMM",982},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"TYPE_CF",241},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Time_Range_Two_E3",254},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"7777",5},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"Time_Range_Two_E2",253},
- {""}, {""}, {""},
- {"GG",69},
- {""}, {""}, {""}, {""},
- {"octetAtWichPackedDataBegins",1520},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBase4Trend4",476},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBase2Trend1",463},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"cloudsBase2Trend1",465},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7189,35 +7576,97 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"cloudsBase4Trend3",475},
+ {"presentWeather1PresentTrend1",1760},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"presentWeather3PresentTrend1",1736},
+ {"presentWeather3PresentTrend2",1771},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"padding_loc23_1",1658},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"TYPE_FC",243},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"GRIBEditionNumber",73},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"extractDateTimeYearRank",831},
+ {"extremeCounterClockwiseWindDirection",850},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesRVR3",62},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"extractDateTimeHourRank",818},
- {""},
- {"cloudsBase4Trend2",474},
- {""}, {""}, {""}, {""},
- {"cloudsBase3Trend1",468},
+ {""}, {""},
+ {"padding_loc244_1",1659},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather2PresentTrend1",1731},
+ {"cloudsBase2Trend3",467},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"lastMonthUsedToBuildClimateMonth1",1068},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"presentWeather3PresentTrend1",1770},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ExtremeValuesInMaximumRVR2",57},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayBrakingActionState4",1895},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"meanValueRVR4",1319},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"YpInGridLengths",286},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7226,133 +7675,13 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"extremeValuesRVR1",841},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"numberOfUsefulPointsAlongYAxis",1498},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeMinuteRank",821},
- {""}, {""},
- {"CCCC",20},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeMonthRank",824},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"swapScanningY",2200},
- {""}, {""},
- {"cloudsBase4Trend1",473},
- {""}, {""},
- {"genVertHeightCoords",897},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"presentWeather1PresentTrend1",1726},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeDayRank",814},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayBrakingActionState4",1859},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"P_TAVG",219},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"precisionOfTheUnpackedSubset",1716},
+ {"ExtremeValuesInMaximumRVR1",56},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"ExtremeValuesInMaximumRVR4",60},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"bitsPerValueAndRepack",374},
+ {"presentWeather2PresentTrend3",1767},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7365,54 +7694,27 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"runwayBrakingActionState3",1858},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"meanValueRVR4",1300},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"extractDateTimeSecondRank",827},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"ExtremeValuesInMaximumRVR3",59},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"YpInGridLengths",285},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"runwayBrakingActionState2",1857},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
{"Missing_Model_LBC_E4",166},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"LBC_Initial_Conditions",97},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ExtremeValuesInMaximumRVR2",58},
+ {"presentWeather1PresentTrend3",1762},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"meanValueRVR3",1299},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Show_Combination_Ensem_E4_0_no_1_yes",233},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7424,17 +7726,103 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"ExtremeValuesRVR4",64},
+ {"padding_loc13_5",1642},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"Missing_Model_LBC_E3",165},
+ {"YY",282},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Model_LBC_Member_Identifier",169},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"presentWeather3PresentTrend3",1772},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"padding_loc244_3",1661},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Show_Combination_Ensem_E2_0_no_1_yes",231},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"meanValueRVR2",1298},
+ {"runwayBrakingActionState2",1893},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"meanValueRVR2",1317},
+ {""}, {""}, {""},
+ {"ExtremeValuesInMaximumRVR3",58},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"GRIB",69},
+ {""}, {""}, {""}, {""},
+ {"numberOfUnusedBitsAtEndOfSection3",1518},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"runwayBrakingActionState1",1892},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"meanValueRVR1",1316},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7444,17 +7832,10 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"ExtremeValuesRVR3",63},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"Missing_Model_LBC_E2",164},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ExtremeValuesRVR2",62},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7466,37 +7847,39 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"lBB",1062},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Show_Combination_Ensem_E4_0_no_1_yes",232},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"Show_Combination_Ensem_E3_0_no_1_yes",231},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"Show_Combination_Ensem_E2_0_no_1_yes",230},
+ {"Show_Combination_Ensem_E3_0_no_1_yes",232},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7508,20 +7891,8 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"YY",281},
{""}, {""}, {""},
- {"gts_CCCC",932},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"TYPE_FC",242},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"GRIBEditionNumber",74},
- {""}, {""}, {""}, {""}, {""},
- {"numberOfUnusedBitsAtEndOfSection3",1494},
+ {"padding_loc244_2",1660},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7535,38 +7906,8 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"ExtremeValuesRVR1",61},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"extremeCounterClockwiseWindDirection",840},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"runwayBrakingActionState1",1856},
+ {"padding_loc245_1",1662},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7577,10 +7918,15 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"runwayBrakingActionState3",1894},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"ExtremeValuesInMaximumRVR1",57},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Y2InGridLengths",278},
+ {"meanValueRVR3",1318},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7603,8 +7949,38 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"GRIBEXSection1Problem",70},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"meanValueRVR1",1297},
+ {"Y2InGridLengths",279},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Missing_Model_LBC_E3",165},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"AEC_PAD_RSI_OPTION_MASK",11},
+ {""}, {""}, {""}, {""},
+ {"Y1InGridLengths",277},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7626,8 +8002,125 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"GRIB",70},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"Used_Model_LBC",260},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"INGRIB",89},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7657,7 +8150,7 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Y1InGridLengths",276},
+ {"padding_loc245_2",1663},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7670,175 +8163,21 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"BUDG",17},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"numberOfBitsUsedForTheGroupWidths",1413},
+ {""},
+ {"BBB",16},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"GRIBEXSection1Problem",71},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"NINT_LOG10_RITZ",184},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7848,8 +8187,6 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"AEC_PAD_RSI_OPTION_MASK",11},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7885,10 +8222,6 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"BUDG",17},
- {""}, {""},
- {"INGRIB",90},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -7963,189 +8296,8 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"Used_Model_LBC",259},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"numberOfBitsUsedForTheGroupWidths",1391},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"BBB",16},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
- {"GRIBEX_boustrophedonic",73},
+ {"GRIBEX_boustrophedonic",72},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8318,102 +8470,10 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"GRIBEXShBugPresent",72},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"GRIB_DEPTH",75},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"Used_Model_LBC_E4",262},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"Used_Model_LBC_E3",261},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"Used_Model_LBC_E2",260},
+ {"GRIBEXShBugPresent",71},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8454,7 +8514,48 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
{"AEC_DATA_SIGNED_OPTION_MASK",10},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8602,6 +8703,69 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"Used_Model_LBC_E4",263},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"GRIB_DEPTH",74},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"Used_Model_LBC_E2",261},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8664,6 +8828,71 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"Used_Model_LBC_E3",262},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"GRIB_LATITUDE",75},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8683,124 +8912,6 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"AEC_DATA_3BYTE_OPTION_MASK",7},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"GRIB_LATITUDE",76},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
{"AEC_RESTRICTED_OPTION_MASK",12},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8849,6 +8960,8 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+ {"AEC_DATA_3BYTE_OPTION_MASK",7},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -8884,22 +8997,7 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"AEC_DATA_MSB_OPTION_MASK",8},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -9105,59 +9203,269 @@ static const struct grib_keys_hash wordlist[] =
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"GRIB_LONGITUDE",76},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"AEC_DATA_PREPROCESS_OPTION_MASK",9},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"GRIB_LONGITUDE",77}
+ {"AEC_DATA_PREPROCESS_OPTION_MASK",9}
};
const struct grib_keys_hash *
-grib_keys_hash_get (const char *str, size_t len)
+grib_keys_hash_get ( const char *str, size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash_keys (str, len);
+ {
+ unsigned int key = hash_keys (str, len);
if (key <= MAX_HASH_VALUE)
if (len == lengthtable[key])
{
- const char *s = wordlist[key].name;
+ const char *s = wordlist[key].name;
if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
return &wordlist[key];
}
- }
+ }
return 0;
}
/*
diff --git a/src/grib_iarray.cc b/src/grib_iarray.cc
index 50d16bcaa..f69adfffd 100644
--- a/src/grib_iarray.cc
+++ b/src/grib_iarray.cc
@@ -46,8 +46,7 @@ grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize)
v = (grib_iarray*)grib_context_malloc(c, sizeof(grib_iarray));
if (!v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_iarray_new unable to allocate %zu bytes", sizeof(grib_iarray));
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_iarray));
return NULL;
}
v->context = c;
@@ -57,8 +56,7 @@ grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize)
v->v = (long*)grib_context_malloc(c, sizeof(long) * size);
v->number_of_pop_front = 0;
if (!v->v) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_iarray_new unable to allocate %zu bytes", sizeof(long) * size);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(long) * size);
return NULL;
}
return v;
@@ -98,8 +96,7 @@ static grib_iarray* grib_iarray_resize_to(grib_iarray* v, size_t newsize)
newv = (long*)grib_context_malloc_clear(c, newsize * sizeof(long));
if (!newv) {
- grib_context_log(c, GRIB_LOG_ERROR,
- "grib_iarray_resize unable to allocate %zu bytes", sizeof(long) * newsize);
+ grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate %zu bytes", __func__, sizeof(long) * newsize);
return NULL;
}
diff --git a/src/grib_index.cc b/src/grib_index.cc
index ca6e0defc..211b30cb5 100644
--- a/src/grib_index.cc
+++ b/src/grib_index.cc
@@ -9,6 +9,8 @@
*/
#include "grib_api_internal.h"
+#include